例:アラーム
モニターには、アラームを関連付けることができます。このセクションでは、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',
})