UserParameter の設定

Zabbix のデフォルトのテンプレートにない情報を取得したり,監視たりする場合には,zabbix-agent 側で shellscript 等を実行することで欲しい情報を取得したり,監視したりすることが可能です.

Ruby のバージョンを取得する場合

zabbix-agent 側の設定

/etc/zabbix/zabbix_agentd.conf

## コマンドの実行を許可(デフォルト: disabled)
EnableRemoteCommands=1

## 実行するコマンド(キー,コマンド)
UserParameter=ruby.version,/opt/ruby/bin/ruby -v
zabbix-server 側の設定
  • アイテムの追加
  1. [設定] - [ホスト] で [アイテムの作成] をクリック
  2. [説明] を適当に入力
  3. [キー] に ruby.version を入力
  4. [データ型] を文字に列に指定
  5. [保存]

f:id:Hexa:20120128150117p:plain

これで,[監視データ] - [最新データ] の [その他] に UserParameter で指定したコマンドの結果が表示されます.

プロセスの監視をする場合

zabbix-agent 側の設定

/etc/zabbix/zabbix_agentd.conf

## コマンドの実行を許可(デフォルト: disabled)
EnableRemoteCommands=1

## example.rb の実行と停止
## 実行するコマンド(キー,コマンド)
UserParameter=ruby.process,ps aux | grep ruby | grep -v grep | wc -l
zabbix-server 側の設定
  • アイテムの追加
  1. [設定] - [ホスト] で [アイテム] をクリック
  2. [アイテムの作成] をクリック
  3. [説明] を適当に入力
  4. [キー] に ruby.process を入力
  5. [保存]
  • トリガーの追加
  1. [設定] - [ホスト] で [トリガー] をクリック
  2. [トリガーの作成] をクリック
  3. [名前] を適当に入力
  4. [条件式] に {centos-5:ruby.process.last(0)}<1 を入力
    • 条件式は「ホスト centos-5 の ruby.process のコマンドを実行した最新の結果が 1 未満の場合」を意味しています
    • {ホスト名:キー.関数}条件(演算子 + 値)
  5. [深刻度] を適当に設定
  6. [保存]

f:id:Hexa:20120128151828p:plain

これで設定は完了です.
[監視データ] - [トリガー] で状態が確認できます.

今回の場合は,プロセスが確認できれば [ステータス] に 正常 と表示され,プロセスが確認できなければ [ステータス]に 障害 と表示されます.

  • 正常

f:id:Hexa:20120128151901p:plain

  • 障害

f:id:Hexa:20120128151910p:plain