前回『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		チェック

図1:check_snmpのコマンド設定

図1:check_snmpのコマンド設定

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

図2:SNMPサービス監視設定

図2:SNMPサービス監視設定

Nagiosの監視画面の確認

Nagiosのサービス監視画面の確認を行う。
ステータス情報とパフォーマンス情報がきちんと取れていれば問題ない。

図3:Nagiosのサービス監視画面(1)

図3:Nagiosのサービス監視画面(1)
図4:Nagiosのサービス監視画面(2)

図4:Nagiosのサービス監視画面(2)

Categories: CentOS ,Nagios ,Nagios Plugins ,SNMP


Leave a Reply