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.6. 通知テンプレート(共通)利用手順¶
作業フロー詳細と参照先
- 通知テンプレート(共通)のメンテナンス(閲覧/更新)OASE管理の通知テンプレート(共通)メニュー画面から、OASEの通知で使用するテンプレートをメンテナンス(閲覧/更新)できます。詳細は 通知テンプレート(共通) を参照してください。
- (通知先がメールの方のみ)メール送信サーバの設定Exastro システムにオーガナイゼーション管理者でログインし、メニューよりから登録します。詳細は メール送信サーバーの設定 を参照してください。
注釈
2.7. 機能メニュー操作説明¶
2.7.1. メニューについて¶
2.7.2. エージェント¶
- では、(エージェントに設定する)イベント収集対象の、接続方式・認証方式・TTL等をメンテナンス(閲覧/登録/更新/廃止)できます。
- エージェント※1 画面の入力項目は以下のとおりです。
¶ 項目
説明
入力必須
入力方法
制約事項
イベント収集設定名
任意のイベント収集設定名を入力します。
〇
自動入力
最大長255バイト
接続方式
イベント収集対象への接続方法を選択します。
・Bearer認証
・パスワード認証
・任意の認証
・IMAP パスワード認証
・エージェント不使用
〇
リスト選択
※2
リクエストメソッド
イベント収集対象へのリクエストメソッドを選択します。
・接続方式がBearer認証、パスワード認証、任意の認証の場合
- GET
- POST
・接続方式がIMAP パスワード認証の場合
- IMAP: Plaintext
ー
リスト選択
※2
接続先
イベント収集対象の接続先を入力します。
・メールサーバの場合はホスト名を入力します。
・APIの場合はURLを入力します。
〇
手動入力
最大長1024バイト
ポート
イベント収集対象のポートを入力します。
ー
手動入力
0~65535
認証情報
リクエストヘッダー
リクエストヘッダーを入力します。
ー
手動入力
最大長4000バイト
プロキシ
イベント収集対象のプロキシURIを入力します。
ー
手動入力
最大長255バイト
認証トークン
Bearer認証の認証トークンを入力します。
ー
手動入力
最大長1024バイト
ユーザー名
イベント収集対象へログインするユーザー名を入力します。
ー
手動入力
最大長255バイト
パスワード
イベント収集対象へログインするパスワードを入力します。
ー
手動入力
最大長4000バイト
メールボックス名
イベント収集対象のメールボックス名を入力します。
デフォルトでINBOXを参照します。
ー
手動入力
最大長255バイト
パラメータ
JSON形式で入力します。
・リクエストメソッドがGETの場合、クエリパラメータ(接続先に追加される、"?"以降の値)として使用されます。
・リクエストメソッドがPOSTの場、リクエストのペイロードとして使用されます。
・2.4.2以降のバージョンでは、下記の予約変数をイベントの前回取得日(時)として設定することができます。
EXASTRO_LAST_FETCHED_YY_MM_DD (例)2024/01/10 01:23:45
EXASTRO_LAST_FETCHED_DD_MM_YY (例)10/01/24 01:23:45
EXASTRO_LAST_FETCHED_TIMESTAMP (例)1704817434
ー
手動入力
最大長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の通知機能で使用するテンプレートをメンテナンス(閲覧/更新)できます。
- 通知テンプレート(共通)画面の入力項目は以下のとおりです。
項目 |
説明 |
入力必須 |
入力方法 |
制約事項 |
---|---|---|---|---|
テンプレート |
通知で使用するテンプレートを編集できます。下記4種類が存在します。
・新規.j2
・既知(判定済み).j2
・既知(時間切れ).j2
・未知.j2
|
〇 |
手動入力 |
最大サイズ2MB |
備考 |
自由記述欄です。 |
ー |
手動入力 |
最大長4000バイト |
1 [TITLE]
2 新規イベントが発生しました。
3
4 [BODY]
5 詳細
6 イベントID :{{ _id }}
7 イベント収集設定:{{ labels._exastro_event_collection_settings_id }}
8 イベント取得日時:{{ labels._exastro_fetched_time }}
9 イベント有効日時:{{ labels._exastro_end_time }}
10 イベント種別 :{{ labels._exastro_type }}
11
12 再評価
13 評価ルール名 :{{ labels._exastro_rule_name }}
14 利用イベント :{{ exastro_events }}
15
16 ラベル:
17 {% for key, value in labels.items() %}
18 ・{{ key }}:{{ value }}
19 {% endfor %}
1[TITLE]
2既知(判定済)イベントが発生しました。
3
4[BODY]
5詳細
6 イベントID :{{ _id }}
7 イベント収集設定:{{ labels._exastro_event_collection_settings_id }}
8 イベント取得日時:{{ labels._exastro_fetched_time }}
9 イベント有効日時:{{ labels._exastro_end_time }}
10 イベント種別 :{{ labels._exastro_type }}
11
12 再評価
13 評価ルール名 :{{ labels._exastro_rule_name }}
14 利用イベント :{{ exastro_events }}
15
16 ラベル:
17 {% for key, value in labels.items() %}
18 ・{{ key }}:{{ value }}
19 {% endfor %}
1[TITLE]
2既知(時間切れ)イベントが発生しました。
3
4[BODY]
5詳細
6 イベントID :{{ _id }}
7 イベント収集設定:{{ labels._exastro_event_collection_settings_id }}
8 イベント取得日時:{{ labels._exastro_fetched_time }}
9 イベント有効日時:{{ labels._exastro_end_time }}
10 イベント種別 :{{ labels._exastro_type }}
11
12 再評価
13 評価ルール名 :{{ labels._exastro_rule_name }}
14 利用イベント :{{ exastro_events }}
15
16 ラベル:
17 {% for key, value in labels.items() %}
18 ・{{ key }}:{{ value }}
19 {% endfor %}
1[TITLE]
2未知イベントが発生しました。
3
4[BODY]
5詳細
6 イベントID :{{ _id }}
7 イベント収集設定:{{ labels._exastro_event_collection_settings_id }}
8 イベント取得日時:{{ labels._exastro_fetched_time }}
9 イベント有効日時:{{ labels._exastro_end_time }}
10 イベント種別 :{{ labels._exastro_type }}
11
12 再評価
13 評価ルール名 :{{ labels._exastro_rule_name }}
14 利用イベント :{{ exastro_events }}
15
16 ラベル:
17 {% for key, value in labels.items() %}
18 ・{{ key }}:{{ value }}
19 {% endfor %}
2.8. 付録¶
2.8.1. OASE Agentの処理フローと.envの設定値¶
パラメータ |
説明 |
---|---|
AGENT_NAME |
起動する OASEエージェントの名前および、内部データベースのファイル名として使用されます。 |
EXASTRO_URL |
ITAに対してAPIリクエストをする際に、リクエスト先として使用されます。 |
EXASTRO_ORGANIZATION_ID |
ITAに対してAPIリクエストをする際に、Organizationを識別するために使用されます。 |
EXASTRO_WORKSPACE_ID |
ITAに対してAPIリクエストをする際に、ワークスペースを識別するために使用されます。 EXASTRO_ORGANIZATION_IDで設定したオーガナイゼーションと紐づいたワークスペースである必要があります。 |
EXASTRO_USERNAME |
ITAに対してAPIリクエストをする際に、Basic認証のユーザー名として使用されます。 |
EXASTRO_PASSWORD |
ITAに対してAPIリクエストをする際に、Basic認証のパスワードとして使用されます。 |
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.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 をクリックし,認証トークンがクリップボードに貼り付けられます。
- クリップボードの認証トークンを、の に貼り付けます。