3ware製RAIDコントローラの監視 SSH監視版
http://extstrg.asabiya.net/pukiwiki/index.php?3ware%C0%BDRAID%A5%B3%A5%F3%A5%C8%A5%ED%A1%BC%A5%E9%A4%CE%B4%C6%BB%EB%20SSH%B4%C6%BB%EB%C8%C7目次
概要 †
シェル・スクリプトを使用した方式は「3ware製RAIDコントローラの監視」として公開しているが、ZABBIXがSSH経由での監視機能を提供していることに気がついたので、こちらの方式も試してみた。
結論からすると、注意点は幾つかあるもののこちらの方式の方が良さそうである。
前提 †
ZABBIXサーバ †
ZABBIXのSSH監視を行うには、libssh2が必要となる。
また、SSH監視を鍵認証で行うには、ZABBIXサーバ内の所定位置に鍵ファイルの設置が必要となる。
監視対象 †
tw_cli経由で情報を取得するため、tw_cliは必須となる。
また、tw_cliを実行するにはroot権限が必要となるため、ZABBIXからSSH接続に使用するユーザが実行出来るようにするためのsudoの設定も必要となる。
当然ながら鍵認証をするためには、SSH鍵の交換をしておく必要がある。
監視設定 †
監視設定をテンプレート化するためには、ホストマクロを多用する必要がある。
設定 †
ZABBIXサーバ †
zabbix_server.confのSSHKeyLocation行を有効化し、SSH鍵を指定したパスに配置する必要がある。
- zabbix_server.conf
SSHKeyLocation=/etc/zabbix/sshkeys
監視対象 †
SSH鍵交換については割愛。
一般ユーザがtw_cliを実行できるようにするため、sudoの設定を行う。
- zabbixユーザに権限を付与する例
# visudo 【末尾に追加】zabbix ALL=(root) NOPASSWD: /usr/sbin/tw_cli
監視設定 †
Linuxサーバ、ESXiを対象とした場合の設定例。
Linux向けホスト設定 †
以下のホストマクロを定義する。
マクロ | 値 | 説明 |
{$SSH.USER} | zabbix | SSH接続に使用するユーザ |
{$SSH.PASSWD} | zabbix | SSH接続に使用するユーザのパスワード |
{$SSH.COMMAND} | sudo | tw_cliを実行する前に付けるコマンド |
{$RAID.HBA01} | c1 | 監視対象のHBA番号 |
{$RAID.ARRAY01} | u0 | 監視対象のアレイ番号 |
ESXi向けホスト設定 †
以下のホストマクロを定義する。
ESXiはSSH鍵を使用するため、若干設定が異なる。
{$SSH.USER} | root | SSH接続に使用するユーザ。sudoは使えないため、rootとなる |
{$SSH.PASSWD} | なし | SSH鍵認証を使用するため、パスワードは不要 |
{$SSH.COMMAND} | なし | tw_cliを実行する前に付けるコマンドはなし |
{$RAID.HBA01} | c1 | 監視対象のHBA番号 |
{$RAID.ARRAY01} | u0 | 監視対象のアレイ番号 |
アイテム設定 †
アレイの状態(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認証部分のみであるため、どちらか片方のみ設定し、テンプレート適用後にホスト単位で認証方式を変更する運用も可能である。
トリガー設定 †
アイテムの取得結果は文字列として記録されるため、文字列マッチで障害条件を定義することとなる。
以下の例はアレイのデグレードを検知するトリガーとなる。
- トリガー設定
名前 アレイのデグレードを検知(/{$RAID.HBA01}/{$RAID.ARRAY01}) 条件式 {Template_H_3wareRAID-HBA:ssh.run[3ware-hba_hba1-array1-show].iregexp(DEGRADED)}=1 深刻度 重度の障害
監視結果 †
アイテムにより取得される内容は以下の様な形となる。
実行するコマンドを調整することにより、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