0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Exastro OASE メッセージ抽出機能を使ってみた

Last updated at Posted at 2021-11-30

##はじめに
Zabbixなどの監視ツールで障害発生アラートが出た際に、前もってExastro OASE・Exastro ITAと連携しておくと「メッセージ抽出機能」によってアラートのピックアップから対処実行までを自動で行ってくれるそうです。
サーバの運用などで同じケースの障害が頻発する場合、人手をかけず・手間をかけずに行える策になりそうなので、ためしにやってみました。

Exastro OASEとは OASE:Operation Autonomy Support Engine 「システム運用の自律化・効率化・省力化を支援するためのOSS」 [OASEコミュニティサイト](https://exastro-suite.github.io/oase-docs/index_ja.html) [Exastro OASE を最速でインストールする](https://qiita.com/wreath-vine/items/46b3838ce845bba9ae4e) [Exastro OASE クイックスタート (v1.3.0)](https://qiita.com/tak_paddy/items/733b3c411b5ec6ecf0dd)
Exastro ITAとは ITA:IT Automation 「システム設定をデジタル化して一元管理するためのオープンソースのフレームワーク」 [ITAコミュニティサイト](https://exastro-suite.github.io/it-automation-docs/index_ja.html) [Exastro IT Automationをインストールしてみた(v1.8.0)](https://qiita.com/standsetx/items/53553a0f78edc3097812) [Exastro IT Automation クイックスタート (ver1.8.0)](https://qiita.com/y-masaya3210/items/68920237c03e5d4f4776)

##メッセージ抽出機能とは
以下の課題があるとします。

課題
監視ツールの障害メッセージを受け取り、当該ホストへの対処実行までを自動で行いたい。

これにITAとOASEを使用すると、下図のような連携プレーが可能になります。
図69.png
役割

  • 監視ツール(Zabbixなど) :障害を検知してメッセージを発出
  • OASE :監視ツールから障害メッセージをピックアップし、ITAが対処実行できる形に「メッセージ抽出」してITAに必要データを渡す
  • ITA :対処実行

ここで「メッセージ抽出」が出てきます。
役割からすると、監視ツール(Zabbixなど)で発出された障害メッセージからITAが対処実行するために必要なデータを抽出するOASEの機能ということですね。

抽出するデータとはつまり具体値なので、変数に代入する具体値を連携できる機能と思えば良さそうです。

これを使うメリットとしては、以下が挙げられます。

メリット

  • 可変の情報(変数)をITAに連携できる。
  • 特にホストが何台もある場合は、設定する量が飛躍的に減ったり自由度が増したりする。例えばサーバが5台あったとしたら、通常は5台分の登録がOASEとITAに必要だが、メッセージ抽出でホスト名を連携出来れば登録は1台分で済む、など。

今回は以下のシナリオでこのメッセージ抽出機能(を使った連携プレー)を実行してみます。

##シナリオ
こういうシナリオを設定しました。
下図は前出の図を詳細にしたものです。
図48_r3.png

シナリオ
監視対象サーバ1のデータファイル[datafile.txt]はデータ集計用に定期追記作成されているが、あるときデータが貯まって容量が肥大化してしまい、サーバのDisk使用率を圧迫するようになってしまった**(1)。そのサーバを監視しているZabbixにはDisk使用率80%を超えると障害メッセージが発出される設定がされており、今はその障害メッセージが発出されている(2)**。

Zabbixに連携しているOASEは障害メッセージをピックアップして**(3)、ディシジョンテーブル(ルールリスト)にかける(4)。登録済みの既知事象だったのでメッセージ抽出が行われ(5)、データをITAに渡す(6)。ITAはあらかじめ登録されていたファイル圧縮用Conductorを実行し(7)**、対象サーバに接続して[datafile.txt]をzip圧縮しサーバのDisk使用率を下げる。

条件
・監視対象サーバは2台用意し、障害が起きた方にのみITAが作業実行するように設定する。

このシナリオが実行できるような設定を行っていき、実際に最後に容量の大きい[datafile.txt]を作成して動作確認してみます。

##1. 各種インストール
こちらの記事がわかりやすいので参考にしてください。

OASEのインストール [Exastro OASE を最速でインストールする](https://qiita.com/wreath-vine/items/46b3838ce845bba9ae4e)
ITAのインストール [Exastro IT Automationをインストールしてみた(v1.8.0)](https://qiita.com/standsetx/items/53553a0f78edc3097812)
Zabbixのインストール [Exastro OASE でマッチポンプした話(Web+Zabbix構築編)](https://qiita.com/wreath-vine/items/d916764885ea8169cdda#12-zabbix-%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89) 「1.2. Zabbix 環境構築」に記載

##2. Zabbixの設定
まずはZabbixまわりの設定を行っていきます。図で言うとこちら。
※ Linux版の操作説明となります。
図49.png

###2-1 ホスト登録
監視対象サーバ×2台を登録します。

①左メニューから 設定 > ホスト をクリック。
②画面右上の[ホストの作成]ボタンをクリック。
図10.png

③ホストの登録画面が出るので、下記の項目を入力します。それ以外はデフォルトでOKです。
図11.png

※ お使いの環境に応じて入力してください。

項目 1台目 2台目
ホスト名 oase-learn-target-1 oase-learn-target-2
グループ Linux servers Linux servers
インターフェース タイプ エージェント エージェント
インターフェース IPアドレス 192.0.2.1 192.0.2.2
インターフェース DNS名 oase-learn-target-1 oase-learn-target-2
インターフェース 接続方法 IP IP
インターフェース ポート 10050 10050

④上メニューから テンプレート をクリック。
下記のテンプレートにチェックを入れます。
図12.png

ホストグループ テンプレート名
Templates/Operating systems Linux by Zabbix agent

⑤画面下の[追加]ボタンをクリックしてホスト登録完了。

###2-2 トリガー登録
Disk監視設定のしきい値80%をトリガーとしてアラートが発出されるよう設定します。
またトリガーはOASEが拾える形に少しカスタムします。

①左メニュー 設定 > ホストからホスト名をクリック。
図2.png

②上部メニュー トリガー をクリック。
図3.png

③Disk使用率のトリガーである**/: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"/"}%)**があるのでクリック。
図4.png

④[複製]ボタンをクリック。
図54.png

⑤複製したトリガーは、[名前][条件式][説明][依存関係]を変更します。
図79.png

名前 条件式(※) 説明
Disk space is low last(/oase-learn-target-1/vfs.fs.size[/,pused])> 80 /work/data/datafile.txt

※ 複製元の条件式ではマクロでDisk容量が指定されていますが、今回は80%で直打ちにします。

:paperclip:**TIPS メッセージ抽出のポイント** 下図は各ツールのメッセージ抽出に関わる設定を示しています(赤矢印が連携項目、オレンジ枠は本記事の章番号)。 今やっているのは右側の「トリガー」のところで、[名前][説明]はトリガーを引いた[ホスト名]とともに以下のように連携されます。 今回は[説明]に圧縮対象ファイルのパスを記入しました。この値は最終的にITAのパラメータシートに登録され、ITAの作業実行が行われます。 ![図75.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/794820/9051d1cf-148d-de32-e627-d0b92e64d8c3.png)

[依存関係]タブへ移り、[Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"/"}%)]トリガーを削除。
(削除しないでおくと、アラート発出時にここに表示されたトリガーが優先表示され、複製したトリガーが表示されなくなってしまうため)
図80.png
下部の[追加]ボタンをクリックして完了。

⑥トリガーの一覧画面に戻ると、複製したトリガーが表示されています。
図52.png
これで完了!今回は同じ手順でサーバ2台分登録しました。

##3. ITAの設定
ITAまわりの設定を行っていきます。図で言うとこちら。
図50.png

###3-1 ホスト登録
監視対象サーバ×2台を登録します。

メニュー 基本コンソール > 機器一覧 から
図13.png

以下の部分を入力。
図14.png
※ お使いの環境に合わせて入力してください。

HW機器種別 ホスト名 IPアドレス ログインユーザID ログインパスワード > 管理 ログインパスワード > ログインパスワード Ansible利用情報 > Legacy/Role利用情報 > 認証方式
SV oase-learn-target-1 192.0.2.1 root xxxxxx パスワード認証
SV oase-learn-target-2 192.0.2.2 root xxxxxx パスワード認証

[登録]ボタンをクリックして完了。

###3-2 Conductorの作成
MovementにPlaybookを紐付けて、そのMovementを内包するConductorを作成します。

MovementとはITAで作成できる自動作業の最小単位。ジョブ。 今回は1つだけ作成します。 ![図63.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/794820/08a7da75-6665-96ef-a5ef-d937c0a7f620.png)
Conductorとは1つ以上のMovementの組み合わせから成るジョブフロー。ひとつのMovementが実行完了したら自動的に次のMovementを実行する、汎用手順書のようなものです。 今回のようにMovement1つの場合、ITA上ではConductorを作成せずにMovement単体で実行することが可能ですが、OASEと連携する場合はOASE側でITAのConductorIDを指定するため、Conductorの作成はマストとなります。 ![図62.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/794820/03c2e1e6-d859-ea16-622a-04c6dd40572a.png)

①Movementの登録
メニュー Ansible-Legacy > Movement一覧 から

図15.png
以下の部分を入力。
図16.png

Movement名 Ansible利用情報 > ホスト指定形式
file_compression IP

[登録]ボタンをクリックして完了。

②Playbookの登録
以下Playbookをテキストエディタで作成します。
(変数でパスを指定されたファイルのzipを作成し、その後元ファイルを削除するという内容)

compress.yml
- name: Compress regular file and remove it
  archive:
    path: "{{ VAR_path }}"
    format: zip
    remove: yes

メニュー Ansible-Legacy > Playbook素材集 から
図18.png
以下の部分を入力。
図17.png

Playbook素材名 Playbook素材
file_compression compress.yml

Playbook素材の[事前アップロード]ボタンをクリックしてから[登録]ボタンをクリックして完了。

③MovementとPlaybookの紐付け
①②で登録したMovementとPlaybookを紐付けます。

メニュー Ansible-Legacy > Movement-Playbook紐付 から
図19.png
以下の部分を入力。
図20.png

Movement Playbook素材 インクルード順序
file_compression compress.yml 1
インクルード順序とは今回のシナリオでは1つのMovementに対して1つのPlaybookを紐付けましたが、1つのMovementに対して複数のPlaybookを紐付けることもできます。その場合、処理が実行される順番をインクルード順序で指定します。 ![図23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/794820/255f1cda-cb50-c2c4-cbc1-bc877c9bdc75.png)

[登録]ボタンをクリックして完了。

④Conductorクラス編集
Movementを実行するConductorを作成します。

メニュー Conductor > Conductorクラス編集 から
図21.png
右下に表示されているMovementをキャンバスにドラッグ&ドロップしし、各ノードのOUT-INをドラッグしてつなげる。
図22.png

Conductor名称を入力して[登録]ボタンをクリックして完了。

Conductor名称
file_compression

###3-3 パラメータシートの作成と代入値自動登録設定
パラメータシートを作成して、Movementの変数{{ VAR_path }}と紐づけていきます。

:paperclip:**TIPS メッセージ抽出のポイント** 今は上部の「パラメータシート」のところです。 ![図75.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/794820/9051d1cf-148d-de32-e627-d0b92e64d8c3.png) 拡大してみるとこんな感じで、 ![図77.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/794820/e78c0c94-39cd-598a-a41b-9b406fc878fb.png) 具体的には[path]カラムと変数が紐づいています。 いざZabbixのトリガーが引かれた時、値[work/data/datafile.txt]がOASEから渡され、[path]カラムに格納されます。その[path]カラムは変数{{ VAR_path }}と紐づいているので、Conductorの準備が整い作業実行が可能になる、というわけです。

それではやっていきます。

①パラメータシートの作成
メニュー作成 > メニュー定義・作成 から
図24.png
以下の部分を入力します。
図25.png

メニュー名 作成対象 表示順序 項目名 入力方式 最大バイト数
ディレクトリ名 パラメータシート(ホスト/オペレーションあり) 1 path 文字列(単一行) 256

※ 他はデフォルトのままでOKです。

[作成]ボタンをクリックして完了。

作成できているか確認します。
入力用メニューグループの中に「ディレクトリ名」メニューが作成されていて、
図26.png
[登録開始]ボタンをクリックすると[path]項目が作成されています。
図27.png
これでOKです。

②代入値自動登録設定
Ansible-Legacy > 代入値自動登録設定 から
図29.png
以下の部分を入力。
図28.png

パラメータシート(From) > メニューグループ:メニュー パラメータシート(FROM) > 項目 認証方式 IaC変数(To) > Movement IaC変数(To) > Value変数 > 変数名 IaC変数(To) > Value変数 > 代入順序
代入値自動登録用:ディレクトリ名 パラメータ/Path Value型 file_compression VAR_path 1

上の行に書いてある**パラメータシート(From)→IaC変数(To)**を見ればわかりやすいです。どのメニューのどのカラムを → どのMovementのどの変数に代入するか ということですね。

[登録]ボタンをクリックして完了。

###3-4 ロール・ユーザ紐付け
ITAにはoaseアクションというロールがデフォルト登録されており、OASEとの連携で使用するメニューへのアクセス権が色々と付与されています。
図60.png
ただし、そのoaseアクションロールにユーザが紐付いていないので、まずoaseユーザを新規登録し、その後oaseアクションロールにoaseユーザを紐付けます。
それから、先ほど新規で作成したディレクトリ名メニューへの、oaseアクションロールのアクセス権がデフォルトでは閲覧になっているので、メンテナンス可に変更します。

oaseユーザの登録
管理コンソール > ユーザ管理 から
図31.png
以下の部分を入力。
図30.png

ログインID ログインPW ユーザ名
oase ******(任意) oase

[登録]ボタンをクリックして完了。

oaseユーザとoaseアクションロールの紐付け
管理コンソール > ロール・ユーザ紐付管理 から
図32.png
以下のように選択。
図33.png

ロール ユーザID:ログインID
oase oase

[登録]ボタンをクリックして完了。

oaseアクションロールからディレクトリ名メニューへのアクセス権変更
管理コンソール > ロール・メニュー紐付管理から
図57.png
一覧/更新でこの行を探します**(1)**。

ロール/名称 メニューグループ/名称 メニュー/名称
oaseアクション 入力用 ディレクトリ名
oaseアクション 代入値自動登録用 ディレクトリ名

図58.png

それぞれ[更新]ボタンをクリックすると**(2)、[紐付]カラムで権限が選べるので[メンテナンス可]を選択(3)**。

[登録]ボタンをクリックして完了。
これでITAの設定ができました!

###補足 メニューID・ConductorクラスIDの確認
OASEがITAにデータ受け渡しする際、ITAのメニューIDとConductorクラスIDを指定する必要があります。後ほどOASE設定の際に必要になってくるので、この時点でIDナンバーをメモしておくといいです。

メニューIDの確認**管理コンソール > メニュー管理**から[フィルタ]をクリックして[一覧/更新]を表示。 [メニューID]カラムの番号を確認します。 ![図73.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/794820/d76d522e-a6d7-2f51-c630-daf626eb7f3c.png)
ConductorクラスIDの確認**Conductor > Conductorクラス一覧** から[一覧]を表示。 [ConductorクラスID]カラムの番号を確認します。 ![図74.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/794820/8faedb92-71d3-416c-06f4-c184c027f0bd.png)

##4. OASEの設定
OASEまわりの設定を行っていきます。図で言うとこちら。
図82.png
ディシジョンテーブルを作成

Zabbixアダプタの設定

ITAドライバの設定

ディシジョンテーブルにルールを登録
という流れになります。

###4-1 ディシジョンテーブルの作成
ディシジョンテーブルを作成します。
ITAでパラメータシートを作ったときのように、まずはテーブル自体を作る作業です。

上部メニュー ルール > ディシジョンテーブル から、右上の[新規追加]ボタンをクリックして
図34.png
以下の部分を入力。
図35.png

基本情報・権限

項目名 入力内容
ディシジョンテーブル名 OASEメッセージ抽出機能検証
権限の設定 システム管理者 すべて更新可能にする(※)

※ うっかり「権限なし」にすると、せっかく作ったディシジョンテーブルが表示されなくなるので注意。

条件式

条件名 条件式
アラート 正規表現に一致する
ホスト 正規表現に一致する
メッセージ連携用 正規表現に一致する

未知事象通知

項目名 入力内容
未知事象通知  通知しない

[保存]ボタンをクリックして完了。

:paperclip:**TIPS メッセージ抽出のポイント** 今やっているのは左下の「ディシジョンテーブル 条件式」のところで、ルールを登録するための[アラート][ホスト][メッセージ連携用]カラムを作った状態です。 ![図75.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/794820/9051d1cf-148d-de32-e627-d0b92e64d8c3.png)

###4-2 Zabbixアダプタの設定
Zabbixへの接続設定です。

上部メニュー ルール > ディシジョンテーブル から右上の[監視先の追加]ボタンをクリックして
図36.png
[ZABBIX Adapter ver1]を選択し以下の部分を入力。
図37.png
※ お使いの環境に応じて入力してください。

項目名 入力内容
名前 oase-learn-monitoring
プロトコル http
ホスト/IP oase-learn-monitoring
ポート 80
ユーザ名 Admin(ZabbixのWeb画面のログインユーザ名)
パスワード ********(上記ユーザのパスワード)
ディシジョンテーブル名 OASEメッセージ抽出機能検証

突合情報
先ほどディシジョンテーブルに登録した条件名が表示されるので、それぞれ対応するZabbixの項目名を指定します。

条件名 Zabbix項目
アラート description
ホスト hosts
メッセージ連携用 comments
:paperclip:**TIPS メッセージ抽出のポイント** 中央下の「ZABBIX Adapter 突合情報」で、Zabbixの[トリガー項目名]とディシジョンテーブルの[条件名]を対応させているところです。

ちなみに右側「トリガー」の表の真ん中に[Trigger objectの項目名]とありますが、OASEがAPIでZabbixのトリガーをピックアップしに行く際、この名称で引っ張ってくるようです(下記URL参照)。

そのため「ZABBIX Adapter 突合情報」の[Zabbix項目]に表示されるのはこの[Trigger objectの項目名]になります。
参考:Zabbix documentation Trigger object
図75.png

[保存]ボタンをクリックして完了。

###4-3 ITAドライバの設定
ITAの接続設定です。

上部メニュー システム > アクション設定 から、右上の[アクション先の追加]ボタンをクリックして
図38.png
「ITA Driver ver1」を選択し以下の部分を入力。
図39.png
※ お使いの環境に応じて入力してください。

項目名 入力内容
名前 oase-learn-ita
バージョン 1.8.1
プロトコル http
ホスト/IP oase-learn-ita
ポート 80
ユーザ名 oase(ITAに登録したユーザ)
ユーザ名 ********(上記ユーザのパスワード)
権限 システム管理者 新規追加 更新可能

[保存]ボタンをクリックして完了。

###4-4 メッセージ抽出定義の登録
同じくシステム > アクション設定 から[メッセージ抽出定義]ボタンをクリック。
[メッセージ抽出定義]画面になるので[編集]ボタンをクリック。
図76.png
右上の[追加]ボタンをクリックして2行追加。以下内容を入力します。

ドライバ名 メニューグループ:メニュー パラメータ名 抽出対象条件名 抽出方法1
oase-learn-ita 入力用:ディレクトリ名 対象ホスト ホスト .*
oase-learn-ita 入力用:ディレクトリ名 path メッセージ連携用 .*
:paperclip:**TIPS メッセージ抽出のポイント** 左上「メッセージ抽出定義」を登録しているところです。 ディシジョンテーブルの条件式にメッセージがマッチングした場合、抽出されたメッセージがここへ送られてきます。 この表左側をTO(ITA側)、右側をFROM(OASE側)として見るとわかりやすいです。 **TO(ITAのメニューとパラメータ名) ← FROM(OASEの条件名と抽出されたメッセージ)**

FROMの[抽出方法1]に「.*」と入れますが、ここにメッセージ抽出結果となる具体値が入ります。
図75.png

右上の[保存]ボタンをクリックして完了。

###4-5 トークン払い出し
「4-6 ディシジョンテーブルのテスト」で必要となるトークンを払い出します。
図68.png
上部メニュー システム > アクション設定 から、右上の[新規トークン払い出し]ボタンをクリック。
図41.png
以下のように入力。
図42.png

項目名 入力内容
トークン名 learn-token
グループ別権限 システム管理者 権限あり

クリップボードにはコピーしなくてOKです。[閉じる]をクリックして完了。

###4-6 ディシジョンテーブルにルールを登録
作成したディシジョンテーブルにルールを登録します。

上部メニュー ルール > デシジョンテーブル から、作成したデシジョンテーブルの左側にあるダウンロードボタンをクリック。
図64.png
Excelがダウンロードされるので、以下の部分を記入。
図40.png
各項目の入力内容と説明は以下の通り。
(Excelと行/列が入れ変わって少し見にくいですが…)

項目名 入力内容 説明 下記参照
ルール説明 test ルールの説明(任意の文章)
アラート(正規表現可一致) Markdownで表示が崩れるので下に書きました Zabbixトリガーの[名前]を抽出 ※1
ホスト(正規表現可一致) oase-learn-target-. Zabbixから対象ホスト名を抽出 ※1
メッセージ連携用(正規表現可一致) .* Zabbixトリガーの[説明]を抽出 ※1
ルール名(必須) FileCompress 一意となる名称
アクション種別(必須) ITA(ver1) 実行したいアクションを選択
アクションパラメータ情報(必須) ITA_NAME=oase-learn-ita,CONDUCTOR_CLASS_ID=2,MENU_ID=1,CONVERT_FLG=FALSE ITAのConductor IDと[ディレクトリ名]のメニューIDを記述 ※2
承認メールパラメータ情報(必須) X 不要なのでX
リトライ間隔(必須) 1 アクションのリトライ間隔(単位:秒)
リトライ回数(必須) 1 アクションのリトライ回数
抑止間隔(必須) 1 アクションの抑止間隔(単位:秒)
抑止回数(必須) 1 アクションの抑止回数
条件回数(必須) X アクションの条件回数。不要なのでX
条件期間(秒)(必須) X アクションの条件期間。不要なのでX
大グループ(必須) X グルーピングしたいルールに対してグループ名を記述。不要なのでX
優先順位(必須) X 大グループでグルーピングしたルールの優先順位を記述。不要なのでX
小グループ(必須) X 大グループからさらにグルーピングしたいルールに対してグループ名を記述。不要なのでX
優先順位(必須) X 小グループでグルーピングしたルールの優先順位を記述。不要なのでX

アラート(正規表現可一致)

^.*Disk space is.*$

※1 ディシジョンテーブル[条件式]
先ほど作成したディシジョンテーブルに条件式を登録しています。

:paperclip:**TIPS メッセージ抽出のポイント** 左下「ディシジョンテーブル 条件式」で、表の右側「条件式」(ルール)を登録しているところです。 ![図75.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/794820/9051d1cf-148d-de32-e627-d0b92e64d8c3.png)

※2 メニューID・ConductorクラスID
この部分には、「3.ITAの設定」末尾の「補足」でメモしたIDナンバーを記入します。
CONDUCTOR_CLASS_ID=ConductorクラスID
MENU_ID=メニューID

ITA_NAME=oase-learn-ita,CONDUCTOR_CLASS_ID=2,MENU_ID=1,CONVERT_FLG=FALSE

Excelファイル名は任意です。
入力完了したら、次の章でアップロードしていきます。

###4-7 ディシジョンテーブルのテスト
ルール > ルール より、[ファイルを選択]ボタンをクリックして今作成したExcelを選択し、[アップロード]ボタンをクリック。
図44.png
[テストリクエスト]ボタンをクリック。
図65.png

テストでは、「Zabbixからこういうメッセージをピックアップした」という仮定でテストを行います。なので、設定画面でメッセージ内容を手入力します。
図66.png

ディシジョンテーブル

ディシジョンテーブル名選択
OASEメッセージ抽出機能検証

設定

項目 入力内容
アラート Disk space is low
ホスト oase-learn-target-1
メッセージ連携用 /work/data/datafile.txt

入力したら[実行]ボタンをクリック。
成功すると、ログにこういう画面が出ます。
図67.png
「正常に処理されました」と表示されたらOK。
[プロダクション適用]ボタンがアクティブになるのでクリッすると、ルール画面下段の[プロダクション適用ルール]にディシジョンテーブル名が表示されます。

これでOASEの設定は完了です!

##5. 動作確認
それでは実際に容量の大きい[datafile.txt]を監視対象サーバに作成してみます。

その前にファイル作成前のDisk容量を確認。
監視対象サーバ1(oase-learn-target-1)にTerratermで入って、dfコマンドを打ちます。

# df -h --total
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        866M     0  866M   0% /dev
tmpfs           909M     0  909M   0% /dev/shm
tmpfs           909M   17M  893M   2% /run
tmpfs           909M     0  909M   0% /sys/fs/cgroup
/dev/vda1        20G  5.2G   15G  26% /
tmpfs           182M     0  182M   0% /run/user/0
total            24G  5.2G   19G  22% -

/dev/vda1を見ると、26%しか使ってません。

では、ddコマンドでファイルを作成してみます。
(bs=1024k count=11000 の部分はお使いの環境に合わせて設定してください)

# cd /work/data
# dd if=/dev/zero of=datafile.txt bs=1024k count=13000

dfコマンドで再度Disk容量を確認。90%になったことが確認できました。

# df -h --total
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        866M     0  866M   0% /dev
tmpfs           909M     0  909M   0% /dev/shm
tmpfs           909M   17M  893M   2% /run
tmpfs           909M     0  909M   0% /sys/fs/cgroup
/dev/vda1        20G   18G  2.2G  90% /
tmpfs           182M     0  182M   0% /run/user/0
total            24G   18G  5.9G  76% -

これでZabbixのトリガーが引かれてITAの実行まで自動で行われるはずなので、少し待機。
しばらく経って(私の場合は1~2分ほどかかりました)からlsコマンドで確認すると、zipファイルが作成&元のtxtファイルが削除されていました。

# ls
datafile.txt.zip

これで成功です!!

OASEではどう表示されてるか見てみます。
ルール > アクション履歴から、表示されたアクション詳細へ。
図45.png
ログが確認できます。
図46.png
下部のアクション情報 > 連携項目 を確認すると、2台あったターゲットホストのうち、oase-learn-target-1が指定されていることがわかります。
図81.png
これで一連の動作確認ができました。

##まとめ
一番初めに設定することは色々とあるようですが、一度やってしまえばあとは自動ですべて対処してくれるので、実運用ではかなり重宝するのではないかと思いました。

ポイントはZabbixのトリガーがOASEのディシジョンテーブルの条件式に対応しているところかなと思います。この部分がメッセージ抽出の本丸のようでした。

下記の関連リンクでOASE関係の記事を載せてみたので、合わせて見ていただければわかりやすいと思います。

##関連リンク
Exastro OASE Base (v1.3.1) ハンズオン
Exastro OASE でマッチポンプした話(Web+Zabbix構築編)
Exastro OASE でマッチポンプした話(活用編)
Exastro コミュニティサイト OASEドキュメント一覧
【随時更新】Exastroの参考になる記事をまとめてみた

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?