※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ざびたん導入手順

0.前提条件

構築済みのZabbixサーバ(1.8.3以上)があること。

Zabbixを導入済みでない場合は、Zabbix関連のページからリンクされているZabbix-JPサイトにあるインストール手順にしたがって、Zabbixサーバの構築を行ってください。

Zabbixサーバと通信できるWindowsマシンがあること。

この導入手順で使用するSSPはWindowsアプリケーションであるため、Windows環境が必須です。(他のプラットフォームへの対応は今後の課題となっています)

1.Windows上へのZabbix Agentの導入

Zabbix-JPのサイトからWindows用のエージェントをダウンロードして、ざびたんを構築するWindows PCにインストールします。
導入の際、「リモートコマンドを使用する」のチェックを入れてください。

2.ZabbixサーバへのWindows PCの登録

Zabbixサーバ上に管理対象ホストとしてWindows PCを登録します。監視アイテムの設定は特に必要ありませんが、Template_Windowsのテンプレートを適用して、そこに含まれる項目程度は監視しておくとよいでしょう。
ホストの登録後、Zabbixサーバ上で監視データが取得されていることを確認し、サーバ・エージェント間の通信ができていることを確認して下さい。
※ここで監視データが取得できていない場合は、ホスト設定やWindows側、Zabbixサーバ側のFirewallの設定などを確認して通信ができるようにしてください。

3.SSPのインストール

ばぐとら研究所からSSPの最新パッケージをダウンロードして、インストールしてください。

4.ざびたんパッケージのインストール

ざびたんのパッケージは、 https://github.com/sechiro/Zabbitan_nar_file で配布しています。ここにある「zabbi_tan.nar」ファイルをRAWでダウンロードし、起動中のSSPゴーストにドラッグアンドドロップしてください。
インストールはこれだけで終了です。
※開発中の最新版は、https://github.com/sechiro/zabbi_tanにあります。内容を確認したい方は、こちらで中身をみることができます。

5.Zabbixサーバ上でのアクション設定

Zabbixで上がったアラートがざびたんに送信されるように設定を行います。
ZabbixのWebフロントエンドから「設定」>「アクション」と辿り、新規のアクションとして、「"{HOSTNAME}:{TRIGGER.NAME}:{TRIGGER.SEVERITY}:{TRIGGER.VALUE}"」を引数として、ざびたんスクリプトメッセージスクリプト「zabbi_msg.py」を実行するリモートコマンドを設定してください。
ざびたんスクリプトは、SSPのインストールフォルダ>ghost>zabbi_tanにあります。そのフルパスをZabbix上のリモートコマンドとして指定してください。また、スクリプトを実行する条件となる「アクションのコンディション」には「トリガーの値="障害"」、「トリガーの値="回復"」の2つを指定してください。
設定方法は、おれのZabbixがこんなに可愛いわけがない(おかわり)にある、「今回の設定~障害通知~」が参考になると思います。
最低限のアクション設定はこれだけですが、引数の最後に「:{ITEM.VALUE}」を加えておくと、ざびたんからの通知にトリガー発動時のアイテムの値も含まれるようになるので、より幸せになれるかも知れません。

6.Python 2.5以上のインストール

ざびたんは、ざびたんパッケージ内のPythonスクリプトをリモートコマンドで実行することでセリフを話すことができます。
そのために、Python 2.5以上のPython実行環境をWindows PCにインストールしてください。また、.pyのファイルがそのまま実行出来るようにPythonのインタプリタにパスを通しておいてください。
※ほかの言語でもいいのですが、たまたま私(@sechiro)がPython勉強中だったのでPythonを使っています。

7.動作確認

ここまでの準備が整ったら、動作確認を行います。
SSPを起動し、ざびたんゴーストに切り替えてください。

7.1.ローカルでの動作確認

ざびたんはZabbixのトリガーの種類に応じたセリフを話します。Zabbixの障害は、致命的障害(Disaster)、重大な障害(High)、軽度の障害(Average)、警告(Warning)、情報(Information)、未分類(Not classified)の6つに分類されていて、それぞれに障害時・回復時のメッセージが割り当てられています。(ただし、警告・情報の回復メッセージは共通です。また未分類は障害時・回復時ともに同じメッセージを出します)

これらのトリガーは、"{HOSTNAME}:{TRIGGER.NAME}:{TRIGGER.SEVERITY}:{TRIGGER.VALUE}"という形式でPythonスクリプトで渡されるので、ローカルでの試験の際は、これらに対応する値をスクリプトに渡して動作確認を行います。例えば以下のようにコマンドを実行していきます。
※トリガーの値には{TRIGGER.STATUS}というものもありますが、Zabbixのドキュメントを見たところ、「deprecated」になっていたので{TRIGGER.VALUE}を採用しました。

【障害時・最後の値が1】
zabbi-msg.py "untan01:Test Trigger:Not classified:1"
zabbi-msg.py "untan01:Test Trigger:Information:1"
zabbi-msg.py "untan01:Test Trigger:Warning:1"
zabbi-msg.py "untan01:Test Trigger:Average:1"
zabbi-msg.py "untan01:Test Trigger:High:1"
zabbi-msg.py "untan01:Test Trigger:Disaster:1"

【回復時・最後の値が0】
zabbi-msg.py "untan01:Test Trigger:Not classified:0"
zabbi-msg.py "untan01:Test Trigger:Information:0"
zabbi-msg.py "untan01:Test Trigger:Warning:0"
zabbi-msg.py "untan01:Test Trigger:Average:0"
zabbi-msg.py "untan01:Test Trigger:High:0"
zabbi-msg.py "untan01:Test Trigger:Disaster:0"

また、ホスト名にkanaもしくはkayoが入っている姉妹構成(Heartbeatクラスタ)の場合は、masterプロセスの障害の際に特別なメッセージが出るので、それについても試験します。(回復メッセージは姉妹共通の1種類のみです)

zabbi-msg.py "kana01:Heartbeat Master is not running on kana01:Disaster:1"
zabbi-msg.py "kayo01:Heartbeat Master is not running on kayo01:Disaster:1"
zabbi-msg.py "kana01:Heartbeat Master is not running on kana01:Disaster:0"
zabbi-msg.py "kayo01:Heartbeat Master is not running on kayo01:Disaster:0"

以上で正しくメッセージが送られることを確認して下さい。


7.2.障害試験

それぞれの障害に対応するトリガーを発生させて正しく動作することを確認して下さい。

以上で設定は完了です。

8.カスタマイズ

現状では、最低限の設定しか入っておらず複雑な分岐はしていません。
zabbi_msg.py は、単純なif分岐になっているので、伺か(SSTP)関連のページにある資料を見て適宜作り替えてもらえるとうれしいです。