前回『NagiosでサーバのSNMP監視を行う方法』で紹介したSNMPで、サーバのトラフィック監視を行う。
前回もサーバのトラフィック監視を行ったが、今回はINとOUTの両方を監視する。
また、今回は、バイト/sではなく、おなじみのbps(ビット/s)で監視する。
今回の監視対象は、CentOS release 6.4 (Final)の64ビット版だ。
SNMPの32ビットカウンタと64ビットカウンタ
snmpwalkコマンドで、そのOSがMIBをカバーしているかを確認する必要があるが、IF-MIB::ifInOctetsとIF-MIB::ifOutOctetsは32ビットカウンタだ。
例えば、5分間隔で監視をしていたとして、その間に32ビット上限の数値を超えたとしたら、オーバーフローを起こして、数値は0に戻る。
グラフ化すると歯抜けのような歪なグラフになり、実際のトラフィックをきちんと取得できないことになる。
IF-MIB::ifHCInOctetsとIF-MIB::ifHCOutOctetsは64ビットカウンタだ。
もし、こちらが取得可能であれば、こちらの値を監視したほうがいい。
今回の監視対象であるCentOS release 6.4 (Final)の64ビット版では、IF-MIB::ifHCInOctetsとIF-MIB::ifHCOutOctetsが使えるため、この値で監視を行う。
snmpwalkコマンドで確認する方法は、前回のブログ『NagiosでサーバのSNMP監視を行う方法』を参照して欲しい。
check_snmpコマンドについて
今回check_snmp v1.4.16で確認を行った。
check_snmp は、複数のMIBを指定することが出来る。
# /usr/local/nagios/libexec/check_snmp -H 192.168.11.24 -C public -P 2c -o IF-MIB::ifHCInOctets.2 -o IF-MIB::ifHCOutOctets.2 --rate --rate-multiplier 60 SNMP RATE OK - 122670 110220 | IF-MIB::ifHCInOctets.2=122670 IF-MIB::ifHCOutOctets.2=110220 |
–rate オプションは、前回と今回の差分を取って秒単位の値として算出する。
check_snmp がファイル(/usr/local/nagios/var/check_snmp)に最後の状態情報を保存することにより、毎秒のレートを算出する。
初回の起動では、前回の値が存在しないため、以下のようなメッセージが出力されるが、監視結果としては[OK]を返す。
No previous data to calculate rate – assume okay
状態保存用のファイルは、引数ごとに作成されるため、引数を変更すると、新しい状態ファイルが作成される。
–rate-multiplier オプションは、毎秒レートを変換するのに使われる。
毎分レートに変換するためには60を設定してやればいい。
但し、このオプションで指定された値は、check_snmp内では、毎秒レートとして算出された値に掛け合わせているだけだ。
つまり、–rate-multiplier 60 のとき、算出される値=毎秒レートの値×60 となる。
これを応用すると、レート変換以外の使い方が出来る。
トラフィックをbpsで監視する方法
IF-MIB::ifHCOutOctets は、オクテット数であるため、普通にcheck_snmpコマンドで監視すると、バイト/sの毎秒レートで監視することになる。
これをbps(ビット/s)で監視するためには、IF-MIB::ifHCOutOctets のオクテット数を8倍する必要がある。
つまり、bps(ビット/s)=バイト/s × 8 とする必要がある。
このためには、–rate-multiplier オプションを利用できる。
check_snmpコマンドで、–rate-multiplier 8 とすればよい。
# /usr/local/nagios/libexec/check_snmp -H 192.168.11.24 -C public -P 2c -o IF-MIB::ifHCInOctets.2 -o IF-MIB::ifHCOutOctets.2 --rate --rate-multiplier 8 SNMP RATE OK - 1478.253045 801.1273356 | IF-MIB::ifHCInOctets.2=1478.253045 IF-MIB::ifHCOutOctets.2=801.1273356 |
Nagiosの監視コマンドの設定
次は、Nagiosの監視コマンドの設定を行う。
Nagiosでcheck_snmpを使った監視を行うための設定だ。
NagiosQLを使って以下のように設定する。
Command system-check-snmp Command line $USER1$/check_snmp -H $HOSTADDRESS$ -C public -P 2c -o $ARG1$ -o $ARG2$ --rate --rate-multiplier 8 Command type check command Access group Unrestricted access Registered チェック Active チェック |
Nagiosのサービス監視設定
次は、Nagiosのサービス監視の設定を行う。
ホストの設定は終わっているものとする。
NagiosQLを使って以下のように設定する。
以下のポイント以外は自由に設定して構わない。
Config name 監視対象ホスト名 Hosts 監視対象ホスト Service description TRAFFIC eth0 Display name TRAFFIC eth0 Registered チェック Active チェック Check command system-check-snmp $ARG1$ IF-MIB::ifHCInOctets.2 $ARG2$ IF-MIB::ifHCOutOctets.2 |
Nagiosの監視画面の確認
Nagiosのサービス監視画面の確認を行う。
ステータス情報とパフォーマンス情報がきちんと取れていれば問題ない。
Categories: CentOS ,Nagios ,Nagios Plugins ,SNMP