2. OASE管理¶
2.1. はじめに¶
2.2. メニュー構成¶
2.2.1. メニュー/画面一覧¶
No |
メニューグループ |
メニュー・画面 |
説明 |
|---|---|---|---|
1 |
OASE管理 |
イベント収集 |
イベント収集対象の情報を管理します。 |
2 |
通知テンプレート(共通) |
OASEの通知で使用する情報を管理します。 |
2.3. エージェント概要¶
2.3.1. エージェントについて¶
2.4. エージェント利用手順¶
2.4.1. 作業フロー¶
作業フロー詳細と参照先
- エージェントのインストール・起動エージェントを起動し、イベント収集を開始します。詳細は インストールガイド(Docker Compose) を参照してください。詳細は インストールガイド(Kubernetes) を参照してください。
2.5. 通知テンプレート(共通)概要¶
図 2.71 通知テンプレート(共通)概要¶
図 2.72 通知テンプレートのイベント種別¶
2.6. 通知テンプレート(共通)利用手順¶
図 2.73 通知テンプレート(共通)作業フロー¶
作業フロー詳細と参照先
- 通知テンプレート(共通)のメンテナンス(閲覧/更新)OASE管理の通知テンプレート(共通)メニュー画面から、OASEの通知で使用するテンプレートをメンテナンス(閲覧/更新)できます。詳細は 通知テンプレート(共通) を参照してください。
- (通知先がメールの方のみ)メール送信サーバの設定Exastro システムにオーガナイゼーション管理者でログインし、メニューより から登録します。詳細は メール送信サーバーの設定 を参照してください。
注釈
2.7. 機能メニュー操作説明¶
2.7.1. メニューについて¶
2.7.2. イベント収集¶
- では、(エージェントに設定する)イベント収集対象の、接続方式・認証方式・TTL等をメンテナンス(閲覧/登録/更新/廃止)できます。
図 2.74 サブメニュー画面(イベント収集)¶
- イベント収集※1 画面の入力項目は以下のとおりです。
表 2.93 イベント収集画面 入力項目一覧¶ 項目
説明
入力必須
入力方法
制約事項
イベント収集設定名
任意のイベント収集設定名を入力します。
〇
自動入力
最大長255バイト
接続方式
イベント収集対象への接続方法を選択します。
・Bearer認証
・パスワード認証
・任意の認証
・IMAP パスワード認証
・エージェント不使用
〇
リスト選択
※2
リクエストメソッド
イベント収集対象へのリクエストメソッドを選択します。
・接続方式がBearer認証、パスワード認証、任意の認証の場合
- GET
- POST
・接続方式がIMAP パスワード認証の場合
- IMAP: Plaintext
ー
リスト選択
※2
接続先
イベント収集対象の接続先を入力します。
・メールサーバの場合はホスト名を入力します。
・APIの場合はURLを入力します。
・Jinja2形式で予約変数を使用できます。
使用可能な予約変数の詳細は利用可能な予約変数一覧 を参照してください。
〇
手動入力
最大長1024バイト
ポート
イベント収集対象のポートを入力します。
ー
手動入力
0~65535
認証情報
リクエストヘッダー
リクエストヘッダーを入力します。
・JSON形式で入力します。
・Jinja2形式で予約変数を使用できます。
使用可能な予約変数の詳細は利用可能な予約変数一覧 を参照してください。
ー
手動入力
最大長4000バイト
プロキシ
イベント収集対象のプロキシURIを入力します。
ー
手動入力
最大長255バイト
認証トークン
Bearer認証の認証トークンを入力します。
ー
手動入力
最大長1024バイト
ユーザー名
イベント収集対象へログインするユーザー名を入力します。
ー
手動入力
最大長255バイト
パスワード
イベント収集対象へログインするユーザーのパスワードを入力します。
ー
手動入力
最大長4000バイト
メールボックス名
イベント収集対象のメールボックス名を入力します。
デフォルトでINBOXを参照します。
ー
手動入力
最大長255バイト
パラメータ
・JSON形式で入力します。
・Jinja2形式で予約変数を使用できます。
・リクエストメソッドがGETの場合、クエリパラメータ(接続先に追加される、"?"以降の値)として使用されます。
・リクエストメソッドがPOSTの場、リクエストのペイロードとして使用されます。
・使用可能な予約変数の詳細は利用可能な予約変数一覧 を参照してください。
ー
手動入力
最大長255バイト
レスポンスキー
レスポンスのペイロードから、OASEのイベントとして受け取るプロパティの、親となるキーを指定します。
レスポンスのペイロードの階層をJSONのクエリ言語(JMESPath)で指定します。
ー
手動入力
最大長255バイト ※3
レスポンスリストフラグ
レスポンスキーで取得した値が配列かどうかを選択します。
・Trueの場合、レスポンスキーで取得した値を配列に分割し、その単位をイベントとして処理します。
ー
リスト選択
※3
イベントIDキー
受け取ったイベントをユニークに判別するIDとなるキーがある場合に入力します。
・レスポンスのペイロードの階層をJSONのクエリ言語(JMESPath)で指定します。
・レスポンスキーの指定やレスポンスリストフラグの指定を考慮した、それ以下の階層を指定します。
ー
手動入力
最大長255バイト ※3
TTL
TTL(Time To Live)とは、エージェンが取得したイベントが、ルールの評価対象として扱われる期間(秒)のことです。
〇
手動入力
最小値10(秒)
最大値2147483647(秒)
デフォルトの値:3600(秒)
備考
自由記述欄です。
ー
手動入力
最大長4000バイト
接続方式 |
リクエストメソッド |
認証情報 |
|---|---|---|
IMAP パスワード認証 |
・IMAP: Plaintext |
・ユーザー名
・パスワード
|
Bearer認証 |
・GET
・POST
|
・認証トークン |
パスワード認証 |
・GET
・POST
|
・ユーザー名
・パスワード
|
任意の認証 |
・GET
・POST
|
・パラメータに記述 |
警告
2.7.3. 通知テンプレート(共通)¶
- では、OASEの通知機能で使用するテンプレートをメンテナンス(閲覧/登録/更新/廃止)できます。
Tip
図 2.75 サブメニュー画面(通知テンプレート(共通))¶
- 通知テンプレート(共通)画面の入力項目は以下のとおりです。
項目 |
説明 |
入力必須 |
入力方法 |
制約事項 |
|---|---|---|---|---|
イベント種別 |
テンプレートを使用するイベント種別を選択します。
・1.新規イベント(受信時)
・2.新規イベント(統合時)
・3.新規イベント(判定前)
・4.既知イベント(判定時)
・5.既知イベント(TTL有効期限切れ)
・6.未知イベント(判定時)
|
〇 |
リスト選択 |
ー |
テンプレート |
通知で使用するテンプレートを編集できます。
下記6種類はデフォルトで使用するテンプレートになります。
・New(received).j2
・New(consolidated).j2
・New.j2
・Known(evaluated).j2
・Known(timeout).j2
・Undetected.j2
|
〇 |
手動入力 |
最大サイズ2MB |
通知先 |
テンプレートを使用する通知先を選択します。
デフォルトのテンプレートには通知先を設定することはできません。
デフォルト以外のテンプレートでは、イベント種別内でユニークな通知先を選択する必要があります。
|
ー |
リスト選択 |
ー |
デフォルト |
イベント種別に対して、レコードにない通知先に送信する場合にはデフォルトのテンプレートが使用されます。 |
ー |
ー |
ー |
備考 |
自由記述欄です。 |
ー |
手動入力 |
最大長4000バイト |
Tip
1 [TITLE]
2 Event Received;
3
4 [BODY]
5 Event Received;
6 Detailed information
7 Event Factor : {% if exastro_edit_count == 1 %}Primary Event{% else %}Consolidated Event{% endif %} ({{ exastro_edit_count }})
8 Event collection settings: {{ labels._exastro_event_collection_settings_id }}
9 Event fetch time : {{ labels._exastro_fetched_time }}
10 Event end time : {{ labels._exastro_end_time }}
11 Event type : {{ labels._exastro_type }}
12
13 Re-evaluation
14 Event : {{ exastro_events }}
15
16 Label:
17 {% for key, value in labels.items() %}
18 ・{{ key }}: {{ value }}
19 {% endfor %}
20
21 Agent:
22 {% for key, value in exastro_agents.items() %}
23 ・{{ key }}: {{ value }}
24 {% endfor %}
1 [TITLE]
2 Event Consolidated by Deduplication {% if labels._exastro_timeout == 1 %} (ttl expired) {% endif %};
3
4 [BODY]
5 Event Consolidated by Deduplication {% if labels._exastro_timeout == 1 %} (ttl expired) {% endif %};
6 Detailed information
7 Event Factor : {% if exastro_edit_count == 1 %}Primary Event{% else %}Consolidated Event{% endif %} ({{ exastro_edit_count }})
8 Event collection settings: {{ labels._exastro_event_collection_settings_id }}
9 Event fetch time : {{ labels._exastro_fetched_time }}
10 Event end time : {{ labels._exastro_end_time }}
11 Event type : {{ labels._exastro_type }}
12
13 Re-evaluation
14 Event : {{ exastro_events }}
15
16 Label:
17 {% for key, value in labels.items() %}
18 ・{{ key }}: {{ value }}
19 {% endfor %}
20
21 Agent:
22 {% for key, value in exastro_agents.items() %}
23 ・{{ key }}: {{ value }}
24 {% endfor %}
1 [TITLE]
2 A new event has occured.
3
4 [BODY]
5 Detailed information
6 Event ID : {{ _id }}
7 Event collection settings: {{ labels._exastro_event_collection_settings_id }}
8 Event fetch time : {{ labels._exastro_fetched_time }}
9 Event end time : {{ labels._exastro_end_time }}
10 Event type : {{ labels._exastro_type }}
11
12 Re-evaluation
13 Evaluation rule name : {{ labels._exastro_rule_name }}
14 Event : {{ exastro_events }}
15
16 Label:
17 {% for key, value in labels.items() %}
18 ・{{ key }}: {{ value }}
19 {% endfor %}
1 [TITLE]
2 A known(evaluated) event has occured.
3
4 [BODY]
5 Detailed information
6 Event ID : {{ _id }}
7 Event collection settings: {{ labels._exastro_event_collection_settings_id }}
8 Event fetch time : {{ labels._exastro_fetched_time }}
9 Event end time : {{ labels._exastro_end_time }}
10 Event type : {{ labels._exastro_type }}
11
12 Re-evaluation
13 Evaluation rule name : {{ labels._exastro_rule_name }}
14 Event : {{ exastro_events }}
15
16 Label:
17 {% for key, value in labels.items() %}
18 ・{{ key }}: {{ value }}
19 {% endfor %}
1 [TITLE]
2 A known(timeout) event has occured.
3
4 [BODY]
5 Detailed information
6 Event ID : {{ _id }}
7 Event collection settings: {{ labels._exastro_event_collection_settings_id }}
8 Event fetch time : {{ labels._exastro_fetched_time }}
9 Event end time : {{ labels._exastro_end_time }}
10 Event type : {{ labels._exastro_type }}
11
12 Re-evaluation
13 Evaluation rule name : {{ labels._exastro_rule_name }}
14 Event : {{ exastro_events }}
15
16 Label:
17 {% for key, value in labels.items() %}
18 ・{{ key }}: {{ value }}
19 {% endfor %}
1 [TITLE]
2 An unknown event has occured.
3
4 [BODY]
5 Detailed information
6 Event ID : {{ _id }}
7 Event collection settings: {{ labels._exastro_event_collection_settings_id }}
8 Event fetch time : {{ labels._exastro_fetched_time }}
9 Event end time : {{ labels._exastro_end_time }}
10 Event type : {{ labels._exastro_type }}
11
12 Re-evaluation
13 Evaluation rule name : {{ labels._exastro_rule_name }}
14 Event : {{ exastro_events }}
15
16 Label:
17 {% for key, value in labels.items() %}
18 ・{{ key }}: {{ value }}
19 {% endfor %}
Tip
Jinja2テンプレート利用の注意点
Jinja2テンプレートを用いて通知設定を行う際は、以下の点にご注意ください。
必須要素の定義: テンプレートには、通知のタイトルと本文を定義する [TITLE] および [BODY] 要素が 必須 です。
構文不足による通知失敗: 必須要素([TITLE]または[BODY])が不足している場合や、要素の記述に誤りがある場合、通知の実行は 失敗します。
編集箇所: 出力内容を変更する場合は、 [TITLE] および [BODY] の要素内部のみ を編集してください。これらの要素自体を削除したり変更したりしないでください。
Jinja2構文の参照: テンプレート内で使用する変数や制御構文の詳細については、Jinja2の公式ドキュメントを参照してください。
2.8. 付録¶
2.8.1. OASE Agentの処理フローと.envの設定値¶
図 2.76 OASE Agent処理フロー図¶
パラメータ |
説明 |
|---|---|
AGENT_NAME |
起動する OASEエージェントの名前および、内部データベースのファイル名として使用されます。 |
EXASTRO_URL |
ITAに対してAPIリクエストをする際に、リクエスト先として使用されます。 |
EXASTRO_ORGANIZATION_ID |
ITAに対してAPIリクエストをする際に、Organizationを識別するために使用されます。 |
EXASTRO_WORKSPACE_ID |
ITAに対してAPIリクエストをする際に、ワークスペースを識別するために使用されます。
EXASTRO_ORGANIZATION_IDで設定したオーガナイゼーションと紐づいたワークスペースである必要があります。
|
EXASTRO_REFRESH_TOKEN |
ITAに対してAPIリクエストをする際に、Bearer認証の認証トークンとして使用されます。
※ユーザーのロールが、OASE - イベント - イベント履歴メニューをメンテナンス可能である必要があります。
|
EXASTRO_USERNAME |
ITAに対してAPIリクエストをする際に、Basic認証のユーザー名として使用されます。
※ユーザーのロールが、OASE - イベント - イベント履歴メニューをメンテナンス可能である必要があります。
※EXASTRO_REFRESH_TOKENを使わない場合(非推奨)
|
EXASTRO_PASSWORD |
ITAに対してAPIリクエストをする際に、Basic認証のパスワードとして使用されます。
※EXASTRO_REFRESH_TOKENを使わない場合(非推奨)
|
EVENT_COLLECTION_SETTINGS_NAMES |
このパラメータで設定されている値から、イベント収集設定をITAから取得し、設定ファイルを生成します。 |
ITERATION |
上記フロー図にて緑色の矢印で示されているループ処理を、このパラメータで設定している数だけ行います。 |
EXECUTE_INTERVAL |
上記フロー図にて緑色の矢印で示されているループ処理の実行間隔です。 |
2.8.2. イベント収集設定の即時反映について¶
- OASE Agentのbashシェルを開始します。
docker exec -it <OASE Agentのコンテナ名> bash
- 設定ファイル「event_collection_settings.json」を削除します。
rm /tmp/<EXASTRO_ORGANIZATION_ID>/<EXASTRO_WORKSPACE_ID>/<AGENT_NAME>/event_collection_settings.json
Tip
2.8.3. エージェントのデコード処理について¶
動作確認済み文字コード¶
送信方法 |
メールのHeader |
||
|---|---|---|---|
形式 |
言語 |
Content-Transfer-Encoding |
Content-Type |
plaintext |
英語 |
7bit |
text/plain; charset=US-ASCII |
plaintext |
日本語 |
8bit |
text/plain; charset=UTF-8 |
plaintext |
英語 |
8bit |
text/plain; charset="ANSI_X3.4-1968" |
html |
英語 |
・plaintext: 7bit ・html: quoted-printable |
multipart/alternative ・plaintext: text/plain; charset=US-ASCII ・html: text/html; charset=UTF-8 |
html |
日本語 |
・plaintext: 8bit ・html: quoted-printable |
multipart/alternative ・plaintext: text/plain; charset=UTF-8 ・html: text/html; charset=UTF-8 |
- 送信するメール
- 形式:plaintextContent-Transfer-Encoding:8bitContent-Type:text/plain; charset="ANSI_X3.4-1968"件名:障害内容:障害:Server01\r\n
- ITAの画面で見た場合
- 件名:障害内容:Server01\r\n
図 2.77 デコードできない文字を省いて収集イベントを行う例・結果(イベントフロー)¶
2.8.4. レスポンスキーとイベントIDキー¶
レスポンスキー¶
注釈
JMESPath¶
parent[].children
1{
2 "cost": 598,
3 "timespan": "2021-04-20T09:00:00Z/2021-04-20T14:00:00Z",
4 "interval": "PT1H",
5 "value": [
6 {
7 "id": "/subscriptions/1f3・・・c38/・・・/metrics/BlobCount",
8 "type": "Microsoft.Insights/metrics",
9 "name": {
10 "value": "BlobCount",
11 "localizedValue": "Blob Count"
12 },
13 "displayDescription": "The number of blob objects stored in the storage account.",
14 "unit": "Count",
15 "timeseries": [
16 {
17 "metadatavalues": [
18 {
19 "name": {
20 "value": "tier",
21 "localizedValue": "tier"
22 },
23 "value": "Hot"
24 }
25 ]
26 },
27 {
28 "metadatavalues": [
29 {
30 "name": {
31 "value": "tier",
32 "localizedValue": "tier"
33 },
34 "value": "Standard"
35 }
36 ]
37 },
38 {
39 "metadatavalues": [
40 {
41 "name": {
42 "value": "tier",
43 "localizedValue": "tier"
44 },
45 "value": "Cool"
46 }
47 ]
48 }
49 ],
50 "errorCode": "Success"
51 }
52 ],
53 "namespace": "microsoft.storage/storageaccounts/blobservices",
54 "resourceregion": "westus2"
55}
注釈
- 配列の値を取得するJMESPath
value
[
{
"id": "/subscriptions/1f3・・・c38/・・・/metrics/BlobCount",
"type": "Microsoft.Insights/metrics",
"name": {
"value": "BlobCount",
"localizedValue": "Blob Count"
},
"displayDescription": "The number of blob objects stored in the storage account.",
"//" : "・・・Sample Responseの14行~49行まで省略・・・",
"errorCode": "Success"
}
]
- オブジェクトを取得するJMESPath
value[].name
[
{
"value": "BlobCount",
"localizedValue": "Blob Count"
}
]
- 深い階層で、複数の値を取得するJMESPath
value[].timeseries[].metadatavalues[].name
[
"//" : "19行の metadatavalues.name"
{
"value": "tier",
"localizedValue": "tier"
},
"//" : "30行の metadatavalues.name"
{
"value": "tier",
"localizedValue": "tier"
},
"//" : "41行の metadatavalues.name"
{
"value": "tier",
"localizedValue": "tier"
}
]
レスポンスリストフラグ¶
イベントIDキー¶
項目名 |
設定値 |
|---|---|
レスポンスキー |
value |
レスポンスリストフラグ |
True |
1[
2 {
3 "id": "/subscriptions/1f3・・・c38/・・・/metrics/BlobCount",
4 "type": "Microsoft.Insights/metrics",
5 "name": {
6 "value": "BlobCount",
7 "localizedValue": "Blob Count"
8 },
9 "displayDescription": "The number of blob objects stored in the storage account.",
10 "unit": "Count",
11 "timeseries": [
12 {
13 "metadatavalues": [
14 {
15 "name": {
16 "value": "tier",
17 "localizedValue": "tier"
18 },
19 "value": "Hot"
20 }
21 ]
22 },
23 "//": "・・・(metadatavaluesの繰り返しなので省略)・・・"
24 ],
25 "errorCode": "Success"
26 }
27]
項目名 |
設定値 |
|---|---|
レスポンスキー |
value |
レスポンスリストフラグ |
True |
イベントIDキー |
id |
警告
項目名 |
設定値 |
|---|---|
レスポンスキー |
value |
レスポンスリストフラグ |
True |
イベントIDキー |
value[].id |
2.8.5. 監視ソフト毎のイベント収集設定例¶
警告
Zabbix¶
- cURLコマンドで、 Zabbix から、イベント取得
curl --request POST \
--url http://<ZabbixのIP Address か Domain>/zabbix/api_jsonrpc.php \
--header 'content-type: application/json-rpc' \
--data "{\"jsonrpc\": \"2.0\",\"method\": \"problem.get\",\"id\": 1,\"params\": {},\"auth\": \"<Zabbix APIトークン>"}"
1{
2 "jsonrpc": "2.0",
3 "result": [
4 {
5 "eventid": "89",
6 "source": "0",
7 "object": "0",
8 "objectid": "16046",
9 "clock": "1709636653",
10 "ns": "906955445",
11 "r_eventid": "0",
12 "r_clock": "0",
13 "r_ns": "0",
14 "correlationid": "0",
15 "userid": "0",
16 "name": "High CPU utilization (over 90% for 5m)",
17 "acknowledged": "0",
18 "severity": "2",
19 "opdata": "Current utilization: 100 %",
20 "suppressed": "0",
21 "urls": []
22 }
23 ],
24 "id": 1
25}
注釈
- Zabbix からイベントを取得する、イベント収集の設定例
項目名 |
設定値 |
|---|---|
イベント収集名 |
<Zabbix障害取得と分かる名称> |
接続方式 |
任意の認証 |
リクエストメソッド |
POST |
接続先 |
http://<ZabbixのIP Address か Domain>/zabbix/api_jsonrpc.php
|
リクエストヘッダー |
{ "content-type" : "application/json-rpc" }
|
パラメータ |
{
"jsonrpc":"2.0",
"method":"problem.get",
"id":1,
"params":{
"time_from": "{{ EXASTRO_LAST_FETCHED_TIMESTAMP }}"
},
"auth":"<Zabbix APIトークン>"
}
|
レスポンスキー |
result |
レスポンスリストフラグ |
True |
イベントIDキー |
eventid |
注釈
- ブラウザで、Zabbix に管理者でサイイン初期状態の管理者のログイン情報は、・ユーザー名: Admin・パスワード: zabbix
- サイドメニュー > ユーザー > ユーザー を選択
- ユーザーの右端上の ユーザーの作成 をクリック
- ユーザー名、パスワードなどを入力
- 権限 タブをクリックし
- ユーザーの役割 で、選択 をクリックし、APIへのアクセスが、有効な役割を持つ、"User role"か、それ以上の役割を選択
- その他の必要な項目を入力し
- 追加 をクリック
curl --request POST \
--url http://<ZabbixのIP Address か Domain>/zabbix/api_jsonrpc.php \
--header "Content-Type: application/json-rpc" \
--data "{\"auth\":null,\"method\":\"user.login\",\"id\":1,\"params\":{\"user\":\"<ユーザー名>\",\"password\":\"<パスワード>\"},\"jsonrpc\":\"2.0\"}" \
1{
2 "jsonrpc": "2.0",
3 "result": "<Zabbix APIトークン>",
4 "id": 1
5}
Grafana¶
- cURLコマンドで、 Grafana から、イベント取得
curl --request GET \
--url 'http://<GrafanaのIP addres か Domain>:3000/api/prometheus/grafana/api/v1/alerts' \
--header 'authorization: Bearer <認証トークン>' \
--header 'Content-Type: application/json'
1{
2 "data": {
3 "alerts": [
4 {
5 "activeAt": "2018-07-04T20:27:12.60602144+02:00",
6 "annotations": {},
7 "labels": {
8 "alertname": "my-alert"
9 },
10 "state": "firing",
11 "value": "1e+00"
12 }
13 ]
14 },
15 "status": "success"
16}
注釈
- Grafana からイベントを取得する、イベント収集の設定例
項目名 |
設定値 |
|---|---|
イベント収集名 |
<Grafanaアラート取得と分かる名称> |
接続方式 |
Bearer認証 |
リクエストメソッド |
GET |
接続先 |
http://<GrafanaのIP addres か Domain>:3000/api/prometheus/grafana/api/v1/rules
|
リクエストヘッダー |
{ "Content-Type": "application/json" }
|
認証トークン |
<認証トークン> |
レスポンスキー |
data.alerts |
レスポンスリストフラグ |
True |
イベントIDキー |
activeAt |
注釈
- ブラウザで、Grafana にサインインします。初期設定では、・username: admin・Password: admin (但し、既にログインした場合、変更されている可能性があります)
- Home > Administration > Service accounts を選択
- service account をクリックして、サービスアカウントを作成します。
- サービス名を英数字の小文字で入力します。
- Add service account token をクリックして、認証トークンを作成します。
- Expirationで、"No expiation"(期限なし ※推奨)または、"Set expiation"(期限あり)を選択します。
- Generate token をクリックします。
- Copy to clipboard and close をクリックし,認証トークンがクリップボードに貼り付けられます。
- クリップボードの認証トークンを、 の に貼り付けます。
2.8.6. 利用可能な予約変数一覧¶
接続先
リクエストヘッダー
パラメータ
予約変数¶
変数名 |
説明 |
出力例 |
|---|---|---|
EXASTRO_LAST_FETCHED_TIMESTAMP |
前回取得時日時(UNIXタイムスタンプ) |
1704817434 |
EXASTRO_LAST_FETCHED_DD_MM_YY |
前回取得時日時(DD/MM/YY HH:MM:SS形式) |
10/01/24 01:23:45 |
EXASTRO_LAST_FETCHED_YY_MM_DD |
前回取得時日時(YYYY/MM/DD HH:MM:SS形式) |
2024/01/10 01:23:45 |
EXASTRO_LAST_FETCHED_EVENT_IS_EXIST |
前回取得イベントの存在フラグ |
True、False |
EXASTRO_LAST_FETCHED_EVENT |
前回取得イベントのrawデータのオブジェクト |
(例: Zabbixの場合)
{"eventid": "xxx", "souce": "xxx", "object": ...}
使用方法については EXASTRO_LAST_FETCHED_EVENTで参照できる項目 を参照
|
EXASTRO_EVENT_COLLECTION_SETTING |
イベント収集設定の項目のオブジェクト |
|
EXASTRO_LAST_FETCHED_TIME |
前回取得時日時(YYYY-MM-DD HH:MM:SS形式)
※文字列orオブジェクト
|
2025-09-19 10:45:34 |
EXASTRO_CURRENT_TIME |
現在時刻(YYYY-MM-DD HH:MM:SS形式)
※文字列orオブジェクト
|
2025-09-19 10:45:34 |
EXASTRO_LAST_FETCHED_EVENTで参照できる項目¶
〇使用例
{
"eventid": "12345",
"clock": "1704817434",
"source": "0",
"object": "0",
"objectid": "10001",
"value": "1"
}
{
"jsonrpc": "2.0",
"method": "event.get",
"params": {
"output": "extend",
"time_from": "{{ EXASTRO_LAST_FETCHED_EVENT.clock }}",
},
"id": 1
}
EXASTRO_EVENT_COLLECTION_SETTINGで参照できる項目一覧¶
項目名 |
変数名.属性 |
|---|---|
イベント収集設定名 |
EXASTRO_EVENT_COLLECTION_SETTING.EVENT_COLLECTION_SETTINGS_NAME |
接続先 |
EXASTRO_EVENT_COLLECTION_SETTING.URL |
ポート |
EXASTRO_EVENT_COLLECTION_SETTING.PORT |
リクエストヘッダー |
EXASTRO_EVENT_COLLECTION_SETTING.REQUEST_HEADER |
プロキシ |
EXASTRO_EVENT_COLLECTION_SETTING.PROXY |
認証トークン |
EXASTRO_EVENT_COLLECTION_SETTING.AUTH_TOKEN |
ユーザー名 |
EXASTRO_EVENT_COLLECTION_SETTING.USERNAME |
パスワード |
EXASTRO_EVENT_COLLECTION_SETTING.PASSWORD |
メールボックス名 |
EXASTRO_EVENT_COLLECTION_SETTING.MAILBOXNAME |
パラメータ |
EXASTRO_EVENT_COLLECTION_SETTING.PARAMETER |
レスポンスキー |
EXASTRO_EVENT_COLLECTION_SETTING.RESPONSE_KEY |
レスポンスリストフラグ |
EXASTRO_EVENT_COLLECTION_SETTING.RESPONSE_LIST_FLAG |
イベントIDキー |
EXASTRO_EVENT_COLLECTION_SETTING.EVENT_ID_KEY |
TTL |
EXASTRO_EVENT_COLLECTION_SETTING.TTL |
設定例¶
接続先での使用例¶
http://monitor.example.com/api/org_name/workspaces/ws_name/ita/menu/event_collection/filter?token={{ EXASTRO_EVENT_COLLECTION_SETTING.AUTH_TOKEN | urlencode() }}
リクエストヘッダーでの使用例¶
{
"Content-Type": "application/json",
"Authorization": "Bearer {{ EXASTRO_EVENT_COLLECTION_SETTING.AUTH_TOKEN }}"
}
パラメータでの使用例¶
- イベント収集時に、現在日時や前回取得日時をフィルター条件として指定現在日時を指定
{ "discard": { "NORMAL": "0" }, "last_update_date_time": { "RANGE": { "START": "{{ EXASTRO_CURRENT_TIME }}" } } }
前回取得日時(YYYY/MM/DD形式)を指定
{ "discard": { "NORMAL": "0" }, "last_update_date_time": { "RANGE": { "START": "{{ EXASTRO_LAST_FETCHED_YY_MM_DD }}" } } }
- Zabbix連携での使用イベント取得時の条件分岐(前回取得イベントの有無による処理の切り替え)
前回取得イベントが存在する場合 :前回取得イベントIDの次のイベントから取得
前回取得イベントが存在しない場合:前回取得時刻以降のイベントを取得
{ "jsonrpc": "2.0", "method": "problem.get", "params": { "output": "extend", {% if EXASTRO_LAST_FETCHED_EVENT_IS_EXIST %} "eventid_from": "{{ EXASTRO_LAST_FETCHED_EVENT.eventid|int + 1 }}", {% else %} "time_from": "{{ EXASTRO_LAST_FETCHED_TIMESTAMP }}", {% endif %} }, "auth": "{{ EXASTRO_EVENT_COLLECTION_SETTING.AUTH_TOKEN }}", "id": 1 }
2.8.7. 通知テンプレート(共通)の設定例¶
ServiceNow(レコード登録)の設定例¶
ServiceNow(レコード登録)を行う通知テンプレート(共通)の設定例を以下に示します。
ServiceNowのインシデントテーブルにレコード登録を行う設定例
ここでは、デフォルトのテンプレートの内容から、TITLE の内容をServiceNowの short_description に、BODY に、イベントRAWデータ, エージェント の内容をServiceNowの description に設定する例を示します。イベントRAWデータ(raw_event_data), エージェント(exastro_agents) の内容は、Jinjaテンプレートのループ処理を使用して、動的に設定しています。- 1.新規イベント(受信時)のテンプレート例: New(received).j2
[TITLE] Event Received. {% if exastro_edit_count == 1 %}Primary Event{% else %}Consolidated Event{% endif %} ({{ exastro_edit_count }}) [BODY] { "short_description": "Event Received. {% if exastro_edit_count == 1 %}Primary Event{% else %}Consolidated Event{% endif %} ({{ exastro_edit_count }}) ", "description": "RAW Event Data: {% for key, value in raw_event_data | default({}) | items() %}\n {{ key }}:{{ value }}{% if not loop.last %},{% endif %}{% endfor %},\n Agent: {% for key, value in exastro_agents | default({}) | items() %}\n {{ key }}:{{ value }}{% if not loop.last %},{% endif %}{% endfor %}", "caller_id": "", "impact": "2", "urgency": "2", "category": "Software", "contact_type": "Phone", "state": "1", "subcategory": "Email", "priority": "3", "service": "Email Service" }
- 1.新規イベント(受信時)の通知例
- 2.新規イベント(統合時)のテンプレート例: New(consolidated).j2
[TITLE] Event Consolidated by Deduplication {% if exastro_dup_notification_queue | default('0') == '1' %} (ttl expired) {% endif %} [BODY] { "short_description": "Event Consolidated by Deduplication {% if exastro_dup_notification_queue | default('0') == '1' %}(ttl expired){% else %} {% endif %}", "description": "RAW Event Data: {% for key, value in raw_event_data | default({}) | items() %}\n {{ key }}:{{ value }}{% if not loop.last %},{% endif %}{% endfor %},\n Agent: {% for key, value in exastro_agents | default({}) | items() %}\n {{ key }}:{{ value }}{% if not loop.last %},{% endif %}{% endfor %}", "caller_id": "", "impact": "2", "urgency": "2", "category": "Software", "contact_type": "Phone", "state": "1", "subcategory": "Email", "priority": "3", "service": "Email Service" }
- 2.新規イベント(統合時)の通知例
Tip
Tip
テンプレート例はあくまで一例です。実際の運用に合わせて、適宜カスタマイズしてください。
使用するパラメータについては、ServiceNow の 利用するアプリケーションに応じて、 マニュアルや、REST API リファレンスを参照してください。
ServiceNowテーブルAPIマニュアル 参照してください
REST APIエクスプローラー
https://<instance-name>.service-now.com/$restapi.do
REST APIエクスプローラーの利用については、ServiceNowのマニュアル を参照してください