例:アラーム
モニターには、アラームを関連付けることができます。このセクションでは、REST API を使用して次の操作を行う方法について説明します。
- アラームテンプレートの作成
- SNMPマネージャーとメール受信者リストの設定、アラームがトリガーされたときの送信先の指定
アラーム受信者は、アラームテンプレートを定義する際の前提条件であるため、これらから始めます。次に、アラームのトリガー条件を保持するテンプレートの作成方法を示します。
アラームのインスタンスは、REST API を使用して個別に作成することはできません。むしろ、アラームインスタンスは、「 アラーム付きモニターの作成」セクションで説明されているように、モニターを作成する過程で作成されます(アラームテンプレートを参照することで最も便利ですが、オプションで参照する必要はありません)。ただし、API を使用してアラームインスタンスに対していくつかの操作を実行できます。
- アラームインスタンスの一覧表示
- 個々のアラームインスタンスの取得
- アラームインスタンスを抑制して、しきい値を超えた場合でもトリガーされないようにする
- アラームインスタンスを削除します。
アラームメーリングリスト
アラーム E メール リストの作成
# Request settings url = '%s/accounts/%s/alarm_emails/' % (args.ncc_url, args.account) # Parameter settings for alarm email list json_data = json.dumps({ "addresses": [ # Email addresses to include in list "a@a.com" ], "name": "Email list 1" }) # Create alarm email list response = requests.post(url=url, data=json_data, headers={ 'API-Token': args.token, 'Accept': 'application/json; indent=4', 'Content-Type': 'application/json', })
すべてのアラームメーリングリストの取得
ここでは、すべてのアラームメーリングリストのリストを取得し、それらに割り当てられているIDを確認する方法を紹介します。
# Request settings # NOTE: User is able to pass additional parameters as a query string ?limit=100&offset=111: # limit: Changes number of elements returned from API # offset: Changes element from which results will be returned url = '%s/accounts/%s/alarm_emails/%s' % (args.ncc_url, args.account, args.query_params) # Get list of alarm emails response = requests.get(url=url, headers={'API-Token': args.token})
SNMP マネージャー
SNMP マネージャーの作成
URL は次のように定義する必要があります。
# Request settings url = '%s/accounts/%s/snmp_managers/' % (arg.ncc_url, args.account)
バージョン 2c SNMP マネージャを作成するには、次の設定を使用します。
# Parameter settings for SNMP version 2c json_data = json.dumps({ "community": "Community string", "ip": "8.8.8.8", "version": "2c" })
バージョン 3 の SNMP マネージャーを作成するには、以下の設定を使用します。
# Parameter settings for SNMP Manager in version 3 json_data = json.dumps({ "auth_password": "12345678", "engine_id": "080005f85050000001", "ip": "8.8.8.8", "priv_password": "12345678", "security": "no_auth_no_priv", "user_name": "my_user_name", "version": "3", "name": "SNMP manager" }) # Create SNMP manager response = requests.post(url=url, data=json_data, headers={ 'API-Token': args.token, 'Accept': 'application/json; indent=4', 'Content-Type': 'application/json', })
すべての SNMP マネージャの取得
ここでは、すべてのSNMPマネージャーのリストを取得し、それらに割り当てられているIDを確認する方法について説明します。
# Request settings # NOTE: User is able to pass additional parameters as a query string ?limit=100&offset=111: # limit: Changes number of elements returned from API # offset: Changes element from which results will be returned url = '%s/accounts/%s/snmp_managers/%s' % (args.ncc_url, args.account, args.query_params) # Get list of SNMP managers response = requests.get(url=url, headers={'API-Token': args.token})
アラームテンプレート
アラームテンプレートの作成
実際には、おそらく email
と snmp
のうちの 1 つだけが使用されます。
# Request settings url = '%s/accounts/%s/alarm_templates/' % (args.ncc_url, args.account) # Parameter settings for alarm template json_data = json.dumps({ "action": "", "email": 1, # ID of email list previously defined "interval": 300, "name": "Alarm template", "snmp": 1, # ID of SNMP manager previously defined "thr_es_critical": 10, "thr_es_critical_clear": 9, "thr_es_major": 8, "thr_es_major_clear": 7, "thr_es_minor": 6, "thr_es_minor_clear": 5, "thr_es_warning": 4, "thr_es_warning_clear": 3, "window_size": 60, "send_only_once": False, "no_data_timeout": 1800, "snmp_trap_per_stream": False, # Set this to True to send SNMP traps per stream "no_data_severity": 1 # CLEAR = 0 | WARNING = 1 | MINOR = 2 | MAJOR = 3 | CRITICAL = 4 }) # Create alarm template response = requests.post(url=url, data=json_data, headers={ 'API-Token': args.token, 'Accept': 'application/json; indent=4', 'Content-Type': 'application/json', })
すべてのアラームテンプレートの取得
# Request settings # NOTE: User is able to pass additional parameters as a query string ?limit=100&offset=111: # limit: Changes number of elements returned from API # offset: Changes element from which results will be returned url = '%s/accounts/%s/alarm_templates/%s' % (args.ncc_url, args.account, args.query_params) # Get list of alarm templates response = requests.get(url=url, headers={'API-Token': args.token}) print 'Status code: %s' % response.status_code print json.dumps(response.json(), indent=4)
既存のアラームテンプレートの変更
アラームテンプレートの一部の設定を調整する必要がある場合は、次のように調整できます。
# Request settings url = '%s/accounts/%s/alarm_templates/%s/' % (args.ncc_url, args.account, args.alarm_template_id) # JSON content json_data = json.dumps({ # Same list of parameters as when creating the template "action": "", "email": 2, # ID of email list "interval": 600, "name": "Alarm template", "snmp": 2, # ID of SNMP manager "thr_es_critical": 20, "thr_es_critical_clear": 9, "thr_es_major": 8, "thr_es_major_clear": 7, "thr_es_minor": 6, "thr_es_minor_clear": 5, "thr_es_warning": 4, "thr_es_warning_clear": 3, "window_size": 60, "send_only_once": False, "no_data_timeout": 1800, "snmp_trap_per_stream": False, "no_data_severity": 1 }) # Update alarm template response = requests.put(url=url, data=json_data, headers={ 'API-Token': args.token, 'Accept': 'application/json; indent=4', 'Content-Type': 'application/json', })