2. OASE管理

2.1. はじめに

本書では、OASE管理の機能および操作方法について説明します。

2.2. メニュー構成

本章では、OASE管理で利用するメニュー構成について説明します。

2.2.1. メニュー/画面一覧

OASE管理のメニュー一覧を以下に記述します。
表 2.89 OASE管理 メニュー/画面一覧

No

メニューグループ

メニュー・画面

説明

1

OASE管理

エージェント

イベント収集対象の情報を管理します。

2

通知テンプレート(共通)

OASEの通知で使用する情報を管理します。

2.3. エージェント概要

本章では、エージェント(Exastro OASE Agent)について説明します。

2.3.1. エージェントについて

エージェントは、Exastro IT Automation(以下、ITA)とは独立しており、ITA OASEと外部サービスの仲介役として機能します。
エージェントは、対象とする外部サービスのイベント収集設定をITAから取得し、その設定を用いて外部サービスからイベントを取得します。このプロセスを経て、取得したイベントをITAに送信します。
OASEエージェント概要

2.4. エージェント利用手順

本章では、エージェント(Exastro OASE Agent)の利用手順について説明します。

2.4.1. 作業フロー

エージェントを利用するための作業を含めた、OASEの作業フローは以下のとおりです。
エージェント利用のための作業の詳細は次項に記載しています。
OASE作業フロー
  • 作業フロー詳細と参照先

    1. イベント収集設定
      OASE管理のエージェントメニュー画面から、イベント収集対象サービスに関する設定を登録します。
      詳細は エージェント を参照してください。
    2. ラベル設定
      OASEのラベル作成/ラベル付与メニュー画面から、ラベルを付与するための設定を行います。
      詳細は ラベル作成 および ラベル付与 を参照してください。
    3. エージェントのインストール・起動
      エージェントを起動し、イベント収集を開始します。
      詳細は インストールガイド(Docker Compose) を参照してください。
      詳細は インストールガイド(Kubernetes) を参照してください。

2.5. 通知テンプレート(共通)概要

OASEの通知機能の概要図を以下に示します。
通知テンプレート(共通)概要

図 2.72 通知テンプレート(共通)概要

2.6. 通知テンプレート(共通)利用手順

OASEの通知機能を利用するために必要な作業フローは以下のとおりです。
各作業の詳細は次項に記載しています。
通知テンプレート(共通)作業フロー

図 2.73 通知テンプレート(共通)作業フロー

  • 作業フロー詳細と参照先

    1. 通知テンプレート(共通)のメンテナンス(閲覧/更新)
      OASE管理の通知テンプレート(共通)メニュー画面から、OASEの通知で使用するテンプレートをメンテナンス(閲覧/更新)できます。
      詳細は 通知テンプレート(共通) を参照してください。
    2. 通知先設定の登録
      Exastro システムにオーガナイゼーション管理者でログインし、メニューより 通知管理 から登録します。
      詳細は 通知先設定の登録 を参照してください。
    3. (通知先がメールの方のみ)メール送信サーバの設定
      Exastro システムにオーガナイゼーション管理者でログインし、メニューより メール送信サーバ設定 から登録します。
      詳細は メール送信サーバーの設定 を参照してください。

注釈

通知テンプレート(共通)は、変更しなくても利用可能です。

2.7. 機能メニュー操作説明

本章では、OASE管理機能のメニュー操作説明について説明します。

2.7.1. メニューについて

本節では、OASE管理をインストールした状態で表示されるメニューの操作について記載します。

2.7.2. エージェント

  1. OASE管理 ▶ エージェント では、(エージェントに設定する)イベント収集対象の、接続方式・認証方式・TTL等をメンテナンス(閲覧/登録/更新/廃止)できます。
サブメニュー画面(エージェント)

図 2.74 サブメニュー画面(エージェント)

  1. エージェント※1 画面の入力項目は以下のとおりです。
    表 2.90 エージェント画面 入力項目一覧

    項目

    説明

    入力必須

    入力方法

    制約事項

    イベント収集設定名

    任意のイベント収集設定名を入力します。

    自動入力

    最大長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バイト

※1 イベント収集対象への設定です。
※2 接続方式・認証情報・リクエストメソッドについて、必要な組み合わせは以下のとおりです。

接続方式

リクエストメソッド

認証情報

IMAP パスワード認証

・IMAP: Plaintext

・ユーザー名
・パスワード

Bearer認証

・GET
・POST

・認証トークン

パスワード認証

・GET
・POST
・ユーザー名
・パスワード

任意の認証

・GET
・POST

・パラメータに記述

※3 レスポンスキー、レスポンスリストフラグ 、イベントIDキーについては、 レスポンスキーとイベントIDキー を参照してください。

警告

収集先がメールの場合、文字コードの種類によりデコードできない文字を省いて収集イベントを保存する場合があります。
詳細は エージェントのデコード処理について を参照してください。

2.7.3. 通知テンプレート(共通)

  1. OASE管理 ▶ 通知テンプレート(共通) では、OASEの通知機能で使用するテンプレートをメンテナンス(閲覧/更新)できます。
サブメニュー画面(通知テンプレート(共通))

図 2.75 サブメニュー画面(通知テンプレート(共通))

  1. 通知テンプレート(共通)画面の入力項目は以下のとおりです。

項目

説明

入力必須

入力方法

制約事項

テンプレート

通知で使用するテンプレートを編集できます。下記4種類が存在します。
・新規.j2
・既知(判定済み).j2
・既知(時間切れ).j2
・未知.j2

手動入力

最大サイズ2MB

備考

自由記述欄です。

手動入力

最大長4000バイト

テンプレートの初期設定値は下記のとおりです。
リスト 2.49 新規.j2
 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.50 既知(判定済).j2
 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.51 既知(時間切れ).j2
 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.52 未知.j2
 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の設定値

本項では、以下について示します。
- OASE Agentの処理フロー
- OASE Agentのインストール時、.envに設定した、一部の設定値について
OASE Agent フロー図

図 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_USERNAME

ITAに対してAPIリクエストをする際に、Basic認証のユーザー名として使用されます。

EXASTRO_PASSWORD

ITAに対してAPIリクエストをする際に、Basic認証のパスワードとして使用されます。

EVENT_COLLECTION_SETTINGS_NAMES

このパラメータで設定されている値から、イベント収集設定をITAから取得し、設定ファイルを生成します。

ITERATION

上記フロー図にて緑色の矢印で示されているループ処理を、このパラメータで設定している数だけ行います。

EXECUTE_INTERVAL

上記フロー図にて緑色の矢印で示されているループ処理の実行間隔です。

2.8.2. イベント収集設定の即時反映について

本項では、イベント収集設定を変更した際に、OASE Agentに即時反映させる方法について説明します。
  1. OASE Agentのbashシェルを開始します。
    docker exec -it <OASE Agentのコンテナ名> bash
    
  2. 設定ファイル「event_collection_settings.json」を削除します。
    rm /tmp/<EXASTRO_ORGANIZATION_ID>/<EXASTRO_WORKSPACE_ID>/<AGENT_NAME>/event_collection_settings.json
    

Tip

OASE Agentでは、設定ファイル「event_collection_settings.json」が存在しない場合、ITAからイベント収集設定を取得し、設定ファイルを作成します。
設定ファイルを削除することで最新の設定を反映させることができます。
※この操作を行わない場合、前項 で示した「ITERATION」の数だけループする処理が終了するまで、変更後の設定が反映されません。

2.8.3. エージェントのデコード処理について

収集先がメールの場合の、収集イベントに対するエージェントのデコード処理に関しては以下のとおりです。

動作確認済み文字コード

表 2.91 動作確認済み文字コード

送信方法

メールの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

デコードできない文字を省いて収集イベントを保存する場合の処理の例に関しては、以下のとおりです。
送信するメール
形式:plaintext
Content-Transfer-Encoding:8bit
Content-Type:text/plain; charset="ANSI_X3.4-1968"
件名:障害
内容:障害:Server01\r\n
ITAの画面で見た場合
件名:障害
内容:Server01\r\n
デコードできない文字を省いて収集イベントを行う例・結果(イベントフロー)

図 2.77 デコードできない文字を省いて収集イベントを行う例・結果(イベントフロー)

2.8.4. レスポンスキーとイベントIDキー

本項では、 下記について説明します。
レスポンスキー
JMESPath
レスポンスリストフラグ
イベントIDキー

レスポンスキー

レスポンスのペイロードから、イベントを抽出すためのキーを レスポンスキー といいます。

注釈

・監視ソフトは、監視対象マシンで発出されたアラートやメトリックス(状態)をHTTP APIで取得できる機能があり、
・エージェントは、そのHTTP APIを利用して、アラートやメトリックスを取得します。
・但し、監視ソフトが返却するレスポンスのぺーロードが、JSON形式のみ、エージェントは処理対象とします。
レスポンスキー として指定できる項目は、
 ・レスポンスのペイロードで、イベントとして取り扱う項目を、子要素に格納していること。
 ・イベントとして取り扱う項目が、複数ある場合、子要素を配列で、格納していること。
レスポンスキー は、 JMESPath形式 で指定します。
JMESPath形式 については、次項を参照してください。

JMESPath

JMESPath は、JSONを対象としたクエリ言語です。
JSONから、指定した JMESPath に該当する値を抽出します。
書式は、JSONキーを、"."ドットで結合したパスで指定します。
また、JSONキーの値が配列の場合、"[]"をJSONキーの後ろに付けます。
 例) parent の値が配列で、配列の子要素のキー children の値を抽出する場合、
parent[].children
 と指定します。
JMESPathの指定方法について、
Azure RESET-API Get Metric for data のSample Responseの一部を利用して説明します。
 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 の詳細については、JMESPath Tutorial https://JMESPath.org/tutorial.html を参照してください。
また、上記JSONを、 JMESPath を試すことのできる、JMESPath Try it Out! https://JMESPath.org/ で試してください。
  1. 配列の値を取得するJMESPath
上記JSONで、5行目の value の値(配列)を取得する JMESPath を、
value
と指定すると、下記の結果が取得できます。
(コード中の "//" : "・・・Sample Responseの14行~49行まで省略・・・" はコメントです。実際の結果には含まれません。)
[
  {
    "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"
  }
]
  1. オブジェクトを取得するJMESPath
上記JSONで、9行目の value (配列) の name の値を取得する JMESPath を、
value[].name
と指定すると、下記の結果が取得できます。
[
  {
    "value": "BlobCount",
    "localizedValue": "Blob Count"
  }
]
  1. 深い階層で、複数の値を取得するJMESPath
value (配列)の timeseries (配列)の metadatavalues (配列)の name を取得する JMESPath を、
value[].timeseries[].metadatavalues[].name
と指定すると下記の結果が取得できます。
(コード中の "//" : "xx行の metadatavalues.name" はコメントです。実際の結果には含まれません。)
[
  "//" : "19行の metadatavalues.name"
  {
    "value": "tier",
    "localizedValue": "tier"
  },
  "//" : "30行の metadatavalues.name"
  {
    "value": "tier",
    "localizedValue": "tier"
  },
  "//" : "41行の metadatavalues.name"
  {
    "value": "tier",
    "localizedValue": "tier"
  }
]

レスポンスリストフラグ

レスポンスリストフラグ は、 レスポンスキー で抽出したイベントが、配列で格納されているかを指定します。
Trueレスポンスキー で抽出したイベントが、配列で格納されている場合
      上記の 1. 配列の値を取得するJMESPat や、3. 深い階層で、複数の値を取得するJMESPath の様な場合
Falseレスポンスキー で抽出したイベントが、配列以外(値や、子要素を持つオブジェクト)で格納されている場合
      上記の 2. オブジェクトを取得するJMESPath の様な場合

イベントIDキー

レスポンスキー を利用して抽出したイベントで、イベントをユニークに判別する値を取得するキーを イベントIDキー で指定します。
イベントIDキー は、 レスポンスキー で抽出した結果に存在するキーを指定します。
イベントIDキー も、 JMESPath形式 で指定します。
上記Azure RESET-APIのJSONで、 レスポンスキーレスポンスリストフラグ を、下記の通り指定した場合、

項目名

設定値

レスポンスキー

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]
となり、この結果から、イベントとして識別する値は、id の値が適しているため、
OASE管理 ▶ エージェント での設定値は、下記の設定が適切です。

項目名

設定値

レスポンスキー

value

レスポンスリストフラグ

True

イベントIDキー

id

警告

レスポンスキー で抽出した値に存在しないキーを指定すると、空の値を取得することになり、正しく動作しません。
例えば、上記 レスポンスキー で抽出した値に存在しないキー value を指定した場合、正しく動作しません。
表 2.92 正しくない、イベントIDキーの設定

項目名

設定値

レスポンスキー

value

レスポンスリストフラグ

True

イベントIDキー

value[].id

2.8.5. 監視ソフト毎のエージェント設定例

本項では、代表的な監視ソフト ZabbixGrafana をエージェントで利用する場合の、 OASE管理 ▶ エージェント での設定例について説明します。
また、本項では、まず、各監視ソフトのアラートを、cURLコマンドで取得する例を示し、
次に、cURLのパラメータを、 OASE管理 ▶ エージェント に設定する順番で説明します。

警告

監視ソフトののバージョンによって、HTTP APIの仕様が異なる場合があります。
利用するバージョンのHTTP APIの仕様を確認し、 OASE管理 ▶ エージェント の設定を行ってください。

Zabbix

Zabbix から、イベントを取得する、 OASE管理 ▶ エージェント での設定例について説明します。
以下の説明で使用した、Zabbix は、
・zabbix 6.4.12
  1. cURLコマンドで、 Zabbix から、イベント取得
下記は、 Zabbix から、障害(problem)を取得するcURLコマンドの例です。
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トークン>"}"
(コマンド・パラメータ中の <Zabbix APIトークン> の詳細は、後述します。)
上記cURLコマンドで、下記の様なレスポンスが返却されます。
 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 の、障害(problem)に関する詳細は下記URLをご参照ください。
  1. Zabbix からイベントを取得する、エージェントの設定例
上記のcURLコマンドを参考に、同等な取得を行う、 OASE管理 ▶ エージェント の設定値は、下記の様に設定します。
表 2.93 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 APIトークン>は、Zabbixユーザーの認証情報で、
下記のコマンドで、ユーザー情報を指定して取得できます。
但し、下記のコマンドを実行すると、既に存在するユーザーで作成済みの<Zabbix APIトークン>が使用できなる場合があります。
対応として、新しいユーザーを作成し、新しいユーザーで<Zabbix APIトークン>を作成することをお勧めします。
新しいユーザーの作成は、
  1. ブラウザで、Zabbix に管理者でサイイン
     初期状態の管理者のログイン情報は、
      ・ユーザー名: Admin
      ・パスワード: zabbix
  2. サイドメニュー > ユーザー > ユーザー を選択
  3. ユーザーの右端上の ユーザーの作成 をクリック
  4. ユーザー名、パスワードなどを入力
  5. 権限 タブをクリックし
  6. ユーザーの役割 で、選択 をクリックし、
    APIへのアクセスが、有効な役割を持つ、"User role"か、それ以上の役割を選択
  7. その他の必要な項目を入力し
  8. 追加 をクリック
以上の操作で、ユーザーが作成できます。
以降は、<APIトークン>を作成するコマンドの例です。
Zabbix へのログイン情報が、下記の場合の例です。
 ・ユーザー名 : 上記の操作で作成したユーザーの <ユーザー名>
 ・パスワード : 上記の操作で作成したユーザーの <パスワード>
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\"}" \
上記cURLコマンドで、下記の様なレスポンスが返却されます。
1{
2    "jsonrpc": "2.0",
3     "result": "<Zabbix APIトークン>",
4     "id": 1
5}
<Zabbix APIトークン>を、 OASE管理 ▶ エージェントパラメータ の <Zabbix APIトークン> の箇所に貼り付けます。
※ <Zabbix APIトークン>作成は、ブラウザでもを作成できます。
ブラウザでログイン後、サイドメニュー > ユーザー設定 > APIトークン の APIトークンの作成 で作成できます。

Grafana

Grafana で、イベントを取得するための、 OASE管理 ▶ エージェント での設定例について説明します。
以下の説明で使用した、Grafana は、
・Grafan 10.3
・データソースに、Prometheus 2.49 を使用
  1. cURLコマンドで、 Grafana から、イベント取得
下記は、Grafana から、アラート(alerts)を取得するcURLコマンドの例です。
curl --request GET \
--url 'http://<GrafanaのIP addres か Domain>:3000/api/prometheus/grafana/api/v1/alerts' \
--header 'authorization: Bearer <認証トークン>' \
--header 'Content-Type: application/json'
(コマンド・パラメータ中の <認証トークン> の詳細は、後述します。)
上記cURLコマンドで、下記の様なレスポンスが返却されます。
 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の、アラート(Alert)に関する詳細は下記URLをご参照ください。
  1. Grafana からイベントを取得する、エージェントの設定例
上記cURLコマンドを参考に、同等な取得を行う、 OASE管理 ▶ エージェント の設定値は、下記の様に設定します。
表 2.94 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の認証情報です。
下記の手順で取得できます。
  1. ブラウザで、Grafana にサインインします。
     初期設定では、
     ・username: admin
     ・Password: admin (但し、既にログインした場合、変更されている可能性があります)
  2. Home > Administration > Service accounts を選択
  3. service account をクリックして、サービスアカウントを作成します。
  4. サービス名を英数字の小文字で入力します。
  5. Add service account token をクリックして、認証トークンを作成します。
  6. Expirationで、
     "No expiation"(期限なし ※推奨)または、
     "Set expiation"(期限あり)を選択します。
  7. Generate token をクリックします。
  8. Copy to clipboard and close をクリックし,
    認証トークンがクリップボードに貼り付けられます。
  9. クリップボードの認証トークンを、 OASE管理 ▶ エージェント認証トークン に貼り付けます。