SNMP

ルータや AP 等のネットワーク機器の情報の取得や障害時の情報を取得する場合には,SNMP を使用すると便利です.

設定方法は,zabbix-agent を使用する場合とあまり違いはありませんが,とりあえずメモを残します.

今回は AirMac Express を使用しました.

zabbix-server 側の設定

  • アイテムの追加
  1. [設定] - [ホスト] で [アイテムの作成] をクリック
  2. [説明] を適当に入力
  3. [タイプ] で [SNMPv2エージェント] を選択
  4. [SNMP OID] に OID を入力
    • 例: interfaces.ifTable.ifEntry.ifInOctets.4
  5. [SNMPコミュニティ] に対象の SNMP エージェントに設定してある コミュニティ を入力
    • テンプレートを使用すると、public が設定されているので必ず変更すること
  6. [SNMPポート] を入力
  7. [キー] を入力
    • 使わないはずだけど必須項目なので適当に入力
    • trigger の [条件式] の {ホスト名:キー.関数}... のキーで使用する
  8. [保存]

f:id:Hexa:20120129003233p:plain

[監視データ] - [最新データ] で [その他] で取得した情報が表示されます.

f:id:Hexa:20120129001735p:plain

[グラフ]

f:id:Hexa:20120129001910p:plain

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

zabbix インストールしてみた

各設定の考え方が理解できなかったので,設定したサーバの情報を(たぶん)最小の設定で取得してみました.

 

もともと知りたかったのは,下記の 2 点でした.

  •  zabbix-agent を使用した情報の収集と監視
  •  テンプレートを使用しないアイテムの設定方法

 

インストールは下記を参考にしました.

 

監視対象の設定(zabbix-agent)

上記の URI の zabbix-agent の設定方法で設定します.

注意点は,Hostname は Zabbix Server で登録するホストの名前と同じにする点です.

Hostname=agent1

 

ホストの追加

1. [設定] - [ホスト] から [ホストの追加] をクリック

2. [名前] にホスト名を入力(zabbix-agent の Hostname と同じ名前)

3. [グループ] に Linux Servers を追加

4. IP アドレスを設定して[保存]

 

アイテムの追加

1. [設定] - [ホスト] から,上記で追加したホストの [アイテム] をクリック

2. [アイテムの作成] をクリック

3. [説明] を適当に入力

4. [キー] に vfs.fs.size[/] を入力(ディスク容量,/ は引数)して [保存]

 
以上が / のディスク容量を取得する設定です.
 
さらにアイテムを追加すれば,取得する情報を増やすこともできますし,テンプレートをリンクさせれば,すでに設定済みのアイテムを追加することも可能です.