採用情報 お問い合わせ

BLOG

Job Arranger による MIRACLE ZBX に対する連携の解説

Job Arranger を使用することにより、タスクの自動化や Zabbix / MIRACLE ZBX のホストなどの有効化・無効化切り替えなどを行えます。本記事では、Job Arranger を使用した Zabbix / MIRACLE ZBX への連携方法や操作を説明します。

本記事内での表記・用語について

                                                                                   
表記・用語解説
ZabbixZabbix LLC 社が提供しているオープンソースの統合監視ソフトウェアを指します。
Zabbix として実装されている機能全般を指す場合にも本表記をします。
MIRACLE ZBXサイバートラスト株式会社が提供している Zabbix をベースとした監視ソフトウェアを指します。
Job Arranger大和総研が提供するジョブ管理ツールを指します。
Job Arranger として実装されている機能全般を指す場合にも本表記をします。
Zabbix ServerZabbix / MIRACLE ZBX のサーバ機能がインストールされ稼働しているサーバおよびその機能を指します。
Zabbix Agent / Zabbix Agent 2Zabbix / MIRACLE ZBX のエージェント機能がインストールされ稼働しているサーバおよびその機能を指します。
特に指定がない場合は、Zabbix Agent 2 を含め「Zabbix Agent」と表記します。
Zabbix SenderZabbix / MIRACLE ZBX サーバへ監視データを送信するツール機能がインストールされ稼働しているユーティリティおよびその機能を指します。

Job Arranger とは

Job Arranger とは大和総研が提供する Zabbix / MIRACLE ZBX 用のアドオン(モジュール)であり、ユーザが定義したタスクを Zabbix Agent のホストか SSH を通して自動的に実行します。その定義したタスクの定期スケジューリングもできます。タスクの定義およびスケジューリングは Web UI 上でできます。

Job Arranger のより詳しい情報は下記の URL をご参照ください。

ここでは Job Arranger 各コンポーネントの概要を説明します。

Job Arranger Manager とは

Job Arranger Manager は Job Arranger を操作するための Web UI です。 この UI で 3 つのオブジェクトの作成と管理ができます。Job Arranger Manager には「ジョブネット」というものがありますが、UI の画面の「ジョブネット」と、「ジョブネット」というオブジェクトがあります。ジョブネット画面でジョブネットオブジェクトを作成または修正します。以下にジョブネットというのはジョブネットオブジェクトを示します。 ジョブネットは様々な機能を持ったノードを繋げたフローチャートの状態で管理できます。 ジョブネットのスケジューリングは「カレンダー」と「スケジュール」の組み合わせでできます。カレンダーとスケジュールもオブジェクトと同じく UI の画面とそれを使用して管理するオブジェクトの2つの意味がありますが、本記事では両方ともオブジェクトとしての意味で使用します。カレンダーは日付を設定するもので、スケジュールは設定したカレンダーの日付とジョブネットに時刻を合わせて設定するものです。また、ジョブネットの実行情報を表示する機能があり、実行中のジョブネットや実行済みのジョブネットの実行結果などの情報を表示できます。ジョブネットの実行タイムアウトや Zabbix に対する通知の設定もできます。

Job Arranger Server とは

Job Arranger Server は Job Arranger Manager で定義したジョブネットを実行します。Job Arranger Agent に対してジョブネットの中にあるコマンドやスクリプトなどの実行を指示したり、その結果を受け取ったりします。ジョブネットが実行できないなどの何か異常が発生した時は Zabbix Server に異常通知を送ります。また、Job Arranger Server は Job Arranger Manager で定義したスケジュールを処理します。

Job Arranger Monitor とは

Job Arranger Monitor は予定時間に実行できないなどのスケジュール異常の状況を検知して Zabbix へ通知します。スケジュールには 2 つの時間があり、Job Arranger Server が実行前にジョブネットを預かる開始時間とそのジョブネットを実行に移す時間です。ジョブネットを預かることを「事前展開」といいます。事前展開をする時間は分単位で最短 1 分から設定 できます。スケジュール異常は時間通りにジョブネットの事前展開ができない場合もしくは時間通りにジョブネットの実行ができない場合の 2 種類に分けられます。具体的な例だと Job Arranger Server が一時的に停止してしまい、事前展開やジョブネットの実行が時間通りに実行できないことや、多重起動不可のジョブネットが完了しないうちに同じジョブネットを実行しようとして実行できないなどです。

Job Arranger Agent とは

Job Arranger Agent は Job Arranger Server から送られてきたコマンドやスクリプトを Job Arranger Agent が起動しているホスト上で実行し、結果を返します。コマンドは UNIX や Windows 上で実行するコマンドで、スクリプトは UNIX だと Bash や Windows だと PowerShell などで使用するスクリプトだけでなく、インストールしていれば Python などのスクリプト言語も使用できます。Job Arranger Agent の機能は他にもログを残すこと 、 ハングアップが起きた際にプロセスの強制停止と 再起動を行うこと などがあります。

もし Job Arranger Agent が使用できなくても SSH 経由でコマンドやスクリプトを実行できます。ただし、SSH のポート番号は 22 に固定されます。

使用環境

本記事では以下の環境を使用します。

  • AlmaLinux 9.6
  • MIRACLE ZBX 7.0.18
  • MySQL 8.0.41
  • Google Chrome 140.0.7339.81 (Windows)

また、本記事では MIRACLE ZBX の Server・Agent と Job Arranger の Server・Agent および MySQL サーバは全て同一のマシン上で動かします。MIRACLE ZBX のフロントエンドには Apache を使用しています。Job Arranger Manager は MIRACLE ZBX モジュールとしてアクセスしますのでブラウザで開きます。

MIRACLE ZBX の準備

Job Arranger の導入にあたって正しく通知されるように MIRACLE ZBX 側で必要な設定をします。本記事の MIRACLE ZBX の環境は以下のリンクの目次の #2、#3、#4、#5.1、#5.3、#9、#10 の項目を実行して構築をしています。ただし、Zabbix Agent 2 は起動していません。(Zabbix Agentは障害通知を防ぐために起動していますが、無くても問題はありません。)

また、上記の手順に加え、通知のために「miracle-zbx-sender」パッケージも以下のコマンドを使用し、追加でインストールしています。

 # dnf install miracle-zbx-sender

ホスト

今回ホストはすでにある「Zabbix server」を使用します。別のホストを使用しても問題ありません。

アイテム

Job Arranger から送られた異常通知を受け取るためのアイテムを作成します。

上記のリンクの「Zabbix 側受信 Item 設定」という項目を参考にアイテムを設定します。本記事では下図の例の設定で進めます。

 アイテム設定画面

トリガー

上記のアイテムに通知が来た時に警告を発するためのトリガーを設定します。本記事は下図の例の設定で進めます。

 トリガー設定画面

Job Arranger の導入

事前準備

Job Arranger を導入する前に SELinux の設定を無効にします。

# setenforce 0

Job Arranger Server のインストール

下記のリンクの (Version 7.0)→(インストールマニュアル)→(Job Arranger Server) の 1~6 番の手順を実行します。(7~10 の作業は本記事では必須ではないが、通知などの設定を行いたい場合は適宜参照してください。)

本記事で変更した「jobarg_server.conf」の設定は以下の通りであり、その他はデフォルト値です。「jobarg_monitor.conf」の設定はそのままにします。

DBName zabbix
DBUser zabbix
DBPassword <DB のパスワード>

Job Arranger Agent のインストール

下記のリンクの(Version 7.0)→(インストールマニュアル)→(Job Arranger Agent)の 1~4 番の手順を実行します。(5~6 の作業は本記事では必須ではないが、必要に応じて適宜参照してください。)

変更した「jobarg_agentd.conf」の設定は以下の通りです。

Hostname Zabbix server

上記の設定は絶対に必須というわけではないが、未設定のままだとデフォルト値として OS のホストネームが入るため、MIRACLE ZBX のホストネームを変更していないと後述するジョブアイコンが実行できません。

Job Arranger Manager のインストール

下記のリンクの(Version 7.0)→(インストールマニュアル)→(Job Arranger Manager)の 1~3 番の手順を実行します。

本記事の環境では MIRACLE ZBX と Job Arranger の web コンソールにアクセスする PC とサーバが別であるため、
/usr/share/zabbix/modules/JazManager/config/jam.module.config.php の「localhost」をサーバの IP アドレスに変更しました。

※注意:モジュールのコピー後にディレクトリスキャンをしないとモジュールが認識されません。

ジョブネット

ジョブネットの中にそれぞれのタスク実行を設定するためにジョブネットアイコンを使います。ジョブネットアイコンとは、ジョブネットにおける様々な機能を持ったノードのことを指します。ただし、本記事では以下に「アイコン」と省略します。これから「ジョブアイコン」と「Zabbix 連携アイコン」を使用した 2 種類のジョブネットを作成し、実行して MIRACLE ZBX との連携を確認します。

ジョブアイコン編

ジョブアイコンを使用することにより、Job Arranger Agent を使用してコマンドを実行することができます。 ジョブアイコンの詳細は以下のリンクを参照してください。

この項目では片方が成功してもう片方が失敗するジョブを並列で実行し、Job Arranger Agent がきちんと動作していること、エラーになった方の通知が正しく送られることを確認することを目標としたジョブネットを作成します。

ジョブネットの作成

MIRACLE ZBX に表示された [ Jaz Manager ] ボタンを押下すると Job Arranger のホーム画面に遷移します。 [ 公開ジョブネット ] を押下し、[ ジョブネット作成 ] を押下します。すると、ジョブネットの編集画面に遷移します。今回はジョブネット名を「blog_test」、その他の設定はデフォルト値とします。その後、下図のようにアイコンを並べます。

 ジョブネットの編集画面

「JOB-False」と「JOB-True」のアイコンをダブルクリックし、上では失敗の返値( 1~255 )を得るために、下では成功の返値( 0 )を得るために以下のように設定します。

 ジョブネットの編集画面

 ジョブネットの編集画面

それぞれのアイコンの [ 適用 ] を押下し、右下の [ 保存 ] を押下してジョブネットを保存します。

ジョブネットの実行

先ほど作成したジョブネットの [ × ] ボタンを押下してから [ はい ] を押下するとジョブネットが有効になります。次に、上にある [ 実行 ] を押下してから [ はい ] を押下して実行します。すると以下のようなウィンドウがポップアップします。

 ウィンドウがポップアップ

 このジョブネットは「JOB-False」がエラー

このウィンドウでは実行した後の各アイコンの実行後の結果を確認することができます。このジョブネットは「JOB-False」がエラーとなっており、MIRACLE ZBX の左側ペインで [ 監視データ ] → [ 障害 ] を選択することで障害として通知されていることが確認できます。

 障害として通知されている画面

ジョブネットの解説

このジョブネットは各ジョブアイコンがコマンドを実行し、その返値が 1~255 の場合エラーを出力するように設定しています。今回の場合は「false」コマンド(返値は 1)を実行したジョブアイコンがエラーになっており、「true」コマンド(返値は 0)を実行したジョブアイコンは正常状態です。

Zabbix 連携アイコン編

Zabbix 連携アイコンを使用すると、ホストグループ・ホスト・アイテム・トリガーなどの有効・無効の切り替えや状態取得などの動作ができます。 Zabbix 連携アイコンの詳細は以下のリンクを参照してください。

この項目では MIRACLE ZBX のホストの状態を確認し、有効ならば無効に、無効ならば有効に切り替えるジョブネットを作成することで、MIRACLE ZBX との連携が正しく行えているかを確認します。

ジョブネットの作成

再びジョブネット作成画面へ遷移します。 今回はジョブネット名を「blog_if_test」、その他の設定はデフォルト値とします。 その後、下図のようにアイコンを並べます。

※注意:「条件分岐アイコン」の「True」/「False」は矢印をつなげる際に設定します。(本記事では上を True・下を False にしています。)

 アイコンを並べた図

「ZABBIX-live-check」及び 「ZABBIX-enable」、 「ZABBIX-disable」と「IF-Zabbix-server-is-disable」の各アイコンを以下のように設定します。

 アイコンの設定

ジョブネットの実行

先ほど作成したジョブネットを実行する前に Zabbix server の状態を確認します。 MIRACLE ZBX の左側ペインで [ 監視データ ] → [ ホスト ] を選択することで障害として通知されていることが確認できます。

 通知の確認画面

ステータスが有効になっています。

そして、先ほど作成したジョブネットを実行します。

 実行ジョブ詳細画面

元のステータスが有効だったので、「ZABBIX-disable」の方に正しく流れていることが確認できます。

その後 Zabbix server の状態を確認します。

Zabbix server の状態を確認

すると、今度は無効となっており、再度ジョブネットを実行すると、

 実行ジョブ詳細画面

元のステータスは無効なので、今度は「ZABBIX-enable」の方に正しく流れていることが確認できます。

Zabbix server の状態を確認すると、

Zabbix server の状態を確認

有効になっています。

ジョブネットの解説

このジョブネットは「Zabbix-live-check」で Zabbix server の状態を取得し、「IF-Zabbix-server-is-disable」で分岐します。条件は「ZBX_LAST_STATUS」が「1」(ホストの状態が無効)かどうかです。その後、無効だった場合有効に、有効だった場合は無効にします。
また、本記事ではホストの状態取得・有効化と無効化の切り替えしかしていませんが、先ほど述べたようにホスト以外にもホストグループやアイテム、トリガーなどとも連携ができるので、設定を変更して試してみてください。

まとめ

Job Arranger を用いた MIRACLE ZBX の連携について解説しました。 本記事では Job Arranger Agent を使用したコマンド実行と Zabbix Server の有効化と無効化の切り替えという 2 種類のジョブネットを作成して直接実行しましたが、2 つの内容の組み合わせや、その他様々なジョブネットアイコンを使用して、多様なタスクを実行できます。また、今回は実行しませんでしたが、スケジュールを使うとジョブネットを自動実行できるため、MIRACLE ZBX との連携が自動化できるので、試してみてください。

本記事に関連するリンク
CentOS 7 延長サポートサービス
デジタルトランスフォーメーションのための電子認証基盤 iTrust
iTrust SSL/TLS サーバー証明書