目次~
#contents
*概要 [#b0990e59]
シェル・スクリプトを使用した方式は「3ware製RAIDコントローラの監視」として公開しているが、ZABBIXがSSH経由での監視機能を提供していることに気がついたので、こちらの方式も試してみた。~
結論からすると、注意点は幾つかあるもののこちらの方式の方が良さそうである。~
*前提 [#h11a56e4]
**ZABBIXサーバ [#rda4c9b8]
ZABBIXのSSH監視を行うには、libssh2が必要となる。~
また、SSH監視を鍵認証で行うには、ZABBIXサーバ内の所定位置に鍵ファイルの設置が必要となる。~
**監視対象 [#t589816e]
tw_cli経由で情報を取得するため、tw_cliは必須となる。~
また、tw_cliを実行するにはroot権限が必要となるため、ZABBIXからSSH接続に使用するユーザが実行出来るようにするためのsudoの設定も必要となる。~
当然ながら鍵認証をするためには、SSH鍵の交換をしておく必要がある。~
**監視設定 [#v2c8e290]
監視設定をテンプレート化するためには、ホストマクロを多用する必要がある。~
*設定 [#nbc47f85]
**ZABBIXサーバ [#r3ecfe76]
zabbix_server.confのSSHKeyLocation行を有効化し、SSH鍵を指定したパスに配置する必要がある。~
-zabbix_server.conf
SSHKeyLocation=/etc/zabbix/sshkeys
**監視対象 [#g16fdfac]
SSH鍵交換については割愛。~
~
一般ユーザがtw_cliを実行できるようにするため、sudoの設定を行う。
-zabbixユーザに権限を付与する例
# visudo
【末尾に追加】zabbix ALL=(root) NOPASSWD: /usr/sbin/tw_cli
**監視設定 [#j4e8af38]
Linuxサーバ、ESXiを対象とした場合の設定例。
***Linux向けホスト設定 [#h751d7cd]
以下のホストマクロを定義する。~
|マクロ|値|説明|
|{$SSH.USER}|zabbix|SSH接続に使用するユーザ|
|{$SSH.PASSWD}|zabbix|SSH接続に使用するユーザのパスワード|
|{$SSH.COMMAND}|sudo|tw_cliを実行する前に付けるコマンド|
|{$RAID.HBA01}|c1|監視対象のHBA番号|
|{$RAID.ARRAY01}|u0|監視対象のアレイ番号|
***ESXi向けホスト設定 [#q1c603c3]
以下のホストマクロを定義する。~
ESXiはSSH鍵を使用するため、若干設定が異なる。~
|{$SSH.USER}|root|SSH接続に使用するユーザ。sudoは使えないため、rootとなる|
|{$SSH.PASSWD}|なし|SSH鍵認証を使用するため、パスワードは不要|
|{$SSH.COMMAND}|なし|tw_cliを実行する前に付けるコマンドはなし|
|{$RAID.HBA01}|c1|監視対象のHBA番号|
|{$RAID.ARRAY01}|u0|監視対象のアレイ番号|
***アイテム設定 [#dc3b263b]
アレイの状態(tw_cli /c1/u0 show)の結果を取得するアイテムは以下のように作成する。~
~
-Linux用アイテム
|名前|アレイ情報(/{$RAID.HBA01}/{$RAID.ARRAY01})|
|タイプ|SSHエージェント|
|キー|ssh.run[3ware-hba_hba1-array1-show]|
|認証方式|パスワード|
|ユーザ名|{$SSH.USER}|
|パスワード|{$SSH.PASSWD}|
|実行するスクリプト|{$SSH.COMMAND} /usr/sbin/tw_cli /{$RAID.HBA01} show | grep {$RAID.ARRAY01} | head -1|
|データ型|ログ|
|更新間隔|3600|
~
-ESXi用アイテム
|名前|アレイ情報(/{$RAID.HBA01}/{$RAID.ARRAY01})|
|タイプ|SSHエージェント|
|キー|ssh.run[3ware-hba_hba1-array1-show]|
|認証方式|公開鍵|
|ユーザ名|{$SSH.USER}|
|公開鍵ファイル|ファイル名|
|秘密鍵ファイル|ファイル名|
|キーのパスフレーズ|なし|
|実行するスクリプト|{$SSH.COMMAND} /usr/sbin/tw_cli /{$RAID.HBA01} show | grep {$RAID.ARRAY01} | head -1|
|データ型|ログ|
|更新間隔|3600|
~
Linux用、ESXi用として分けているが差異はSSH認証部分のみであるため、どちらか片方のみ設定し、テンプレート適用後にホスト単位で認証方式を変更する運用も可能である。~
~
***トリガー設定 [#yc61abfd]
アイテムの取得結果は文字列として記録されるため、文字列マッチで障害条件を定義することとなる。~
以下の例はアレイのデグレードを検知するトリガーとなる。~
~
-トリガー設定~
|名前|アレイのデグレードを検知(/{$RAID.HBA01}/{$RAID.ARRAY01})|
|条件式|{Template_H_3wareRAID-HBA:ssh.run[3ware-hba_hba1-array1-show].iregexp(DEGRADED)}=1|
|深刻度|重度の障害|
***監視結果 [#t958833f]
アイテムにより取得される内容は以下の様な形となる。~
実行するコマンドを調整することにより、tw_cliより取得できる情報は全て取り込むことが可能。~
~
-正常時
u0 RAID-10 OK - - 64K 931.303 ON ON
-ベリファイ中
u0 RAID-10 VERIFYING - 80% 64K 931.303 ON ON
-ベリファイ停止中
u0 RAID-5 VERIFY-PAUSED - 95% 256K 9313.17 ON ON
-スペアディスク
u2 SPARE OK - - - 1863.01 - OFF