差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
management:centreon:hddtemp:start [2011/03/15 16:19] yuki |
management:centreon:hddtemp:start [2021/09/04 20:44] yuki 削除 |
||
---|---|---|---|
ライン 16: | ライン 16: | ||
- CentreonのWebUIでcommandを登録。 | - CentreonのWebUIでcommandを登録。 | ||
- 同様に監視対象となるホストを選択して、Servicesを登録。 | - 同様に監視対象となるホストを選択して、Servicesを登録。 | ||
- | - 終わり。 | + | - Nagios再起動して終わり。 |
===== 詳細 ===== | ===== 詳細 ===== | ||
ライン 28: | ライン 28: | ||
case $1 in | case $1 in | ||
name) echo $dev;; | name) echo $dev;; | ||
- | temprature) smartctl -A $dev | awk '$1=="194" {print $10}';; | + | temprature) /usr/local/sbin/smartctl -A $dev | awk '$1=="194" {print $10}';; |
esac | esac | ||
done</code> | done</code> | ||
ライン 34: | ライン 34: | ||
* snmpd.confにextend行を記載(今回は最終行に2行追加)。 | * snmpd.confにextend行を記載(今回は最終行に2行追加)。 | ||
* <code># cat snmpd.conf | tail -2 | * <code># cat snmpd.conf | tail -2 | ||
- | extend ataDevice /usr/local/share/snmp/ata_device_temperature.sh name | + | extend ataDevice /usr/local/share/snmp/ata_device_temprature.sh name |
- | extend ataDeviceTemperature /usr/local/share/snmp/ata_device_temperature.sh temprature</code> | + | extend ataDeviceTemperature /usr/local/share/snmp/ata_device_temprature.sh temprature</code> |
- | * snmpdの再起動 | + | * snmpdの再起動 |
- | * <code># /usr/local/etc/rc.d/snmpd restart</code> | + | * <code># /usr/local/etc/rc.d/snmpd restart</code> |
- | ==== MIB値の確認 ==== | + | ==== 2.MIB値の確認 ==== |
* nsExtensionsは1.3.6.1.4.1.8072.1.3なので、snmpwalkで一通り見てみる。 | * nsExtensionsは1.3.6.1.4.1.8072.1.3なので、snmpwalkで一通り見てみる。 | ||
* http://www.oidview.com/mibs/8072/NET-SNMP-AGENT-MIB.html | * http://www.oidview.com/mibs/8072/NET-SNMP-AGENT-MIB.html | ||
- | * snmpwalk -v 1 -c private 127.0.0.1 .1.3.6.1.4.1.8072.1.3 | + | * コマンド結果を一部抜粋 |
- | * 一部抜粋 | + | * <code># snmpwalk -v 1 -c private 127.0.0.1 .1.3.6.1.4.1.8072.1.3 |
- | * <code>NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."ataDevice" = INTEGER: 4 | + | NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."ataDevice" = INTEGER: 4 |
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."ataDeviceTemperature" = INTEGER: 4 | NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."ataDeviceTemperature" = INTEGER: 4 | ||
NET-SNMP-EXTEND-MIB::nsExtendResult."ataDevice" = INTEGER: 0 | NET-SNMP-EXTEND-MIB::nsExtendResult."ataDevice" = INTEGER: 0 | ||
ライン 59: | ライン 59: | ||
* 値にシェルスクリプトのエラー値が入っている場合は、スクリプトを見直します。 | * 値にシェルスクリプトのエラー値が入っている場合は、スクリプトを見直します。 | ||
* その後、-Onオプションを付与してOIDを数値形式で出力し、Centreon用のスクリプトに記載します。 | * その後、-Onオプションを付与してOIDを数値形式で出力し、Centreon用のスクリプトに記載します。 | ||
- | * <code>snmpwalk -v 1 -On -c private 127.0.0.1 .1.3.6.1.4.1.8072.1.3</code> | + | * <code># snmpwalk -v 1 -On -c private 127.0.0.1 .1.3.6.1.4.1.8072.1.3</code> |
- | ==== Centreon用のシェルスクリプト作成 ==== | + | ==== 3.Centreon用のシェルスクリプト作成 ==== |
* 参考文献 | * 参考文献 | ||
ライン 74: | ライン 74: | ||
* パイプの後ろ側はグラフを描画するときに使用。グラフの要素名=値となるように記述。複数ある場合は半角スペースで区切る。 | * パイプの後ろ側はグラフを描画するときに使用。グラフの要素名=値となるように記述。複数ある場合は半角スペースで区切る。 | ||
* 今回作成したスクリプト | * 今回作成したスクリプト | ||
- | * <code>#!/usr/bin/perl -w | + | * <code># cat check_snmp_hddtemp.pl |
+ | #!/usr/bin/perl -w | ||
################################################################# | ################################################################# | ||
# | # | ||
ライン 172: | ライン 173: | ||
if ( isnnum($o_warn) || isnnum($o_crit)) | if ( isnnum($o_warn) || isnnum($o_crit)) | ||
{ print "Numeric value for warning or critical !\n"; print_usage(); exit $ERRORS{"UNKNOWN"}} | { print "Numeric value for warning or critical !\n"; print_usage(); exit $ERRORS{"UNKNOWN"}} | ||
- | if (($o_crit!= 0) && ($o_warn > $o_crit)) | + | if ($o_warn > $o_crit) |
{ print "warning <= critical ! \n"; print_usage(); exit $ERRORS{"UNKNOWN"}} | { print "warning <= critical ! \n"; print_usage(); exit $ERRORS{"UNKNOWN"}} | ||
if (!defined($o_timeout)) {$o_timeout=5;} | if (!defined($o_timeout)) {$o_timeout=5;} | ||
ライン 266: | ライン 267: | ||
print "$output \n"; | print "$output \n"; | ||
exit $ERRORS{$n_status};</code> | exit $ERRORS{$n_status};</code> | ||
+ | |||
+ | * CentreonにCommand登録する前に、手元で動作確認しておいたほうがいいよ。 | ||
+ | * <code>./check_snmp_hddtemp.pl -H 127.0.0.1 -C private -w 46 -c 50 -f</code> | ||
+ | |||
+ | ==== 4.CentreonにCommandの登録 ==== | ||
+ | |||
+ | * 言葉だけ。 | ||
+ | * Configuration -> Commands -> Add | ||
+ | * Command Name(自由に) | ||
+ | * <code>hddtemp</code> | ||
+ | * Command Line(動作確認用のコマンドと同じになるように) | ||
+ | * <code>$USER1$/check_snmp_hddtemp.pl -H $HOSTADDRESS$ -C $USER2$ -w $ARG1$ -c $ARG2$ -f</code> | ||
+ | * $USER1$,$USER2$は、Configure -> Nagios -> resourcesに設定されてる。 | ||
+ | * $HOSTADDRESS$は、Centreonの設定項目から自動的に引っ張ってくる。 | ||
+ | * 異なるホストを監視するのに、Command2つ作るのは面倒でゲソ。 | ||
+ | * $ARG1$,$ARG2$は、下記のArgument Exampleに示す値を、Services設定時に入れる。 | ||
+ | * 監視ホストによって値を変えたくなるでゲソ? | ||
+ | * Argument Example | ||
+ | * 空でもいいけど、$ARGn$に入る値の書き方を示すので書いていたほうがいい。 | ||
+ | * "!"で区切って、順次$ARGn$($ARG1$,$ARG2$...)に代入されるよ。 | ||
+ | * <code>!46!50</code> | ||
+ | * $HOSTADDRESS$ | ||
+ | * 空でいい | ||
+ | * Command Type | ||
+ | * とりあえず"Check" | ||
+ | * Graph template | ||
+ | * 空でいい | ||
+ | |||
+ | ==== 5.Centreonに監視Servicesの登録 ==== | ||
+ | |||
+ | * Configuration -> Services -> Add | ||
+ | * Description : 適当な名前 | ||
+ | * Service Template : generic-service | ||
+ | * 別にこれでなくてもいいけど。 | ||
+ | * Check Command : hddtemp | ||
+ | * さっき作った名前 | ||
+ | * Args : 青い矢印クリック | ||
+ | * さっき作った"!46!50"が入力されるよ。 | ||
+ | * Relations(上のタブにあるでゲソ) | ||
+ | * Linked with Hosts : 対象ホストを選択してAdd | ||
+ | * Saveして終わり。 | ||
+ | |||
+ | ==== 6.Nagiosの再起動 ==== | ||
+ | |||
+ | * Configuration -> Nagios | ||
+ | * 下記2つにチェックを追加して、"Export" | ||
+ | * Move Export Files | ||
+ | * Restart Nagios | ||
+ | |||
+ | ==== 7.動いてる図 ==== | ||
+ | |||
+ | {{:image:centreon:centreon_hddtemp_02.png|}} | ||
+ |