http://lists.zenoss.org/pipermail/zenoss-users/200...
の簡単な解説

要は、正常なときの /proc/mdstat をとっておき、問い合わせがあったときにdiffして現在のものと突き合わせ、差異があればエラーコードを返すという単純なもの。

1.まず、正常なときのmdstatを保存します。
cat /proc/mdstat > /etc/snmp/mdstat_correct

2.次に、以下の通りのコードを /etc/snmp/check_md.sh として保存します。

#!/bin/bash
## compares mdstat to previously recorded version. If no match is made, then return !=0. Ok return is 0
diff /proc/mdstat /etc/snmp/mdstat_correct > /dev/null
RET=$?
if [ $RET -ne 0 ]; then
  cat /proc/mdstat
fi
exit $RET

3.それから、実行権を与えます。
#chmod 755 /etc/snmp/check_md.sh

4.一回実行してみてください。
#/etc/snmp/check_md.sh
何も帰ってこなかったら正常です。
/etc/snmp/mdstat_correct ファイルをいじって内容を変えてから、再度実行してみてください。
#/etc/snmp/check_md.sh
何か帰ってきたら正常です。
いじった /etc/snmp/mdstat_correct ファイルを元に戻してください。

5./etc/snmp/snmp.conf に以下の一行を付け加えます。
exec md_check /etc/snmp/check_md.sh

6.snmpを再起動します。
#/etc/rc.d/snmpd restart

7.snmpで拾ってみます。
snmpwalk -v 1 -c public -On 該当ホスト名 1.3.6.1.4.1.2021.8

正常なときの例)
.1.3.6.1.4.1.2021.8.1.1.1 = INTEGER: 1
.1.3.6.1.4.1.2021.8.1.2.1 = STRING: md_check
.1.3.6.1.4.1.2021.8.1.3.1 = STRING: /etc/snmp/check_md.sh
.1.3.6.1.4.1.2021.8.1.100.1 = INTEGER: 0
.1.3.6.1.4.1.2021.8.1.101.1 = STRING:
.1.3.6.1.4.1.2021.8.1.102.1 = INTEGER: 0
.1.3.6.1.4.1.2021.8.1.103.1 = STRING:

異常なときの例)
.1.3.6.1.4.1.2021.8.1.1.1 = INTEGER: 1
.1.3.6.1.4.1.2021.8.1.2.1 = STRING: md_check
.1.3.6.1.4.1.2021.8.1.3.1 = STRING: /etc/snmp/check_md.sh
.1.3.6.1.4.1.2021.8.1.100.1 = INTEGER: 1
.1.3.6.1.4.1.2021.8.1.101.1 = STRING: Personalities :
unused devices: <none>
.1.3.6.1.4.1.2021.8.1.102.1 = INTEGER: 0
.1.3.6.1.4.1.2021.8.1.103.1 = STRING:

8.結論
つまり、.1.3.6.1.4.1.2021.8.1.100.1を監視すればよい、ということ。1だったら問題あり、と。

このページへのコメント

CbCOV6 Say, you got a nice blog post.Much thanks again. Will read on...

0
Posted by seo thing 2013年12月20日(金) 09:21:23 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

Menu

ここは自由に編集できるエリアです。

管理人/副管理人のみ編集できます