ざびたんを利用して監視を斜め上に楽しく

By | 16/07/2014

作業用PCでZabbixの監視画面を開いておくのは面倒…って事で、ざびたんというのを入れてみました。
一部躓いてしまったのでメモとして。

ざびたんって何よ?という話から。
単純に言ってしまうと、障害や回復のメッセージをデスクトップ上に設置したマスコットを通じて文字と音声でお知らせする様な感じです。
昔あった伺かと似た様な物だと思えばいいかと思います。

ではまず、ざびたんを利用するWindows端末での準備。
①Zabbixエージェントがインストールされている事
②Zabbixサーバに登録されていて、監視状態になっている事
③Windows Firewallの設定で9801番ポートの通信を許可
④”簡易ネットワーク管理プロトコル(SNMP)”を有効化
こちらからInformant Stdをダウンロードし、インストール
こちらからPythonをダウンロードし、インストール
こちらからSSPをダウンロードし、インストール
⑧zabbix_agentd.confを編集し、サービスを再起動

以下を追加
EnableRemoteCommands=1
LogRemoteCommands=1

なお、zabbix_agentd.conf内のHostname設定とZabbixサーバに登録したホスト名は同一にする必要があります。

次に、Zabbixサーバ側で通知する仕組みを作成します。
管理画面から”設定”→”アクション”と進み、アクションの作成を行います。
各項目は以下の様に設定しました。

■"アクション"タブ
・名前         :SSP Message
・デフォルトの件名   :{TRIGGER.STATUS}: {TRIGGER.NAME}
・デフォルトのメッセージ:{TRIGGER.STATUS}: {TRIGGER.NAME}
・リカバリメッセージ  :チェックオフ
・有効         :チェックオン

■"アクションの実行条件"タブ
・計算のタイプ     :OR
・アクションの実行条件①:"トリガーの値"="正常"
・アクションの実行条件②:"トリガーの値"="障害"

■"アクションの実行内容"タブ
・デフォルトのアクション実行ステップの間隔:60秒
・実行内容の詳細
  実行内容のタイプ:リモートコマンド
  ターゲットリスト:ざびたんを利用するホスト名
  タイプ     :カスタムスクリプト
  次で実行    :Zabbixエージェント
  コマンド    :C:\SSP\ghost\zabitan2-suzu\zabbi-msg.py "{HOSTNAME}:{TRIGGER.NAME}:{TRIGGER.NSEVERITY}:{TRIGGER.VALUE}:{ITEM.VALUE}"
   ※例としてzabitan2-suzuを選択
   ※フルパス指定

ここまで行うと障害アラートがSSPで受信され、ざびたんに喋らせる事が可能になります。
ただし、トリガー名に日本語を指定している場合はPythonスクリプトが動作しません。
これは、Windows端末にインストールしたPythonの文字コードが”ascii”である為です。
使いたいのはShift-JISですので、修正を行います。

以下のディレクトリに移動
  C:\Python27\Lib\site-packages\

新規でテキストファイルを作成し、中身を以下の様にする
  import sys
  sys.setdefaultencoding("shift-jis")

保存したテキストのファイル名を以下の名称に変更する
  sitecustomize.py

sitecustomize.pyをダブルクリックして実行

以上で日本語記載のあるメッセージが飛んで来てもざびたんに受け渡す事が出来ます。