ネットワークのトラフィック監視ではMRTGが有名ですが
Nagiosのcheck_snmpプラグインでもトラフィック監視が出来るので
Nagiosに一本化を考えている方にむけてご紹介します。
OIDを調べるのにはsnmptranslateコマンドが使えます。
snmptranslateコマンドが使えない場合はnet-snmp及びnet-snmp-utilsがインストールされていません。
記事下部にインストール設定を書いておきましたので
出来なかった方は参考にしてみてください。
.1.3.6.1.2.1.2.2.1.10
[/bash] [bash] # snmptranslate -On -IR ifOutOctets
.1.3.6.1.2.1.2.2.1.16
[/bash]
取得したOIDを使ってsnmpwalkコマンドで戻り値を測定できます。
※オブジェクト名を使っても出来ます。
[bash]
# snmpwalk -v 2c -c public localhost .1.3.6.1.2.1.2.2.1.10
IF-MIB::ifInOctets.1 = Counter32: 8372230
IF-MIB::ifInOctets.2 = Counter32: 256664540
IF-MIB::ifInOctets.3 = Counter32: 0
IF-MIB::ifInOctets.4 = Counter32: 0
[/bash]
ここで取得できない場合はsnmpdの設定がおかしくなっています。
NagiosはOIDの識別番号を把握してなくてもIF-MIB::ifHCInOcets.2などオプションとして用意されているので調べなくても大丈夫です。
IF-MIB::ifInOctets.1はloなのでIF-MIB::ifInOctets.2を使います。
check_snmpを使ってトラフィックを取得するコマンドが通るか試してみます。
[bash]
# /usr/local/nagios/libexec/check_snmp -H 127.0.0.1 -C public -P 2c -o IF-MIB::ifHCInOctets.2 -o IF-MIB::ifHCOutOctets.2 -w 80000000 -c 90000000 –rate –rate-multiplier 60
[/bash]
データベースにないので1度目はエラーが出ますが、2度目はエラーが出なくなったので大丈夫のようですね!
Nagiosのtraffic監視サービスの定義を行います。
[bash]
# vi /usr/local/nagios/etc/objects/localhost.cfg
#traffic
define service{
use generic-service
host_name localhost
service_description TrafficUsage
check_command check_snmp!-H 127.0.0.1 -C public -P 2c -o IF-MIB::ifHCInOctets.2 -o IF-MIB::ifHCOutOctets.2 -w 80000000 -c 90000000 –rate –rate-multiplier 60
}
[/bash]
コマンドの定義を行います。
[bash]
# vi /usr/local/nagios/etc/objects/commands.cfg
define command{
command_name TrafficUsage
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -C public -P 2c -o $ARG1$ -o $ARG2$ -w 80000000 -c 90000000 –rate –rate-multiplier 60
}
[/bash]
snmpデータが格納されるフォルダのパーミッションを緩くします。
[bash]
# chmod 777 -R /usr/local/nagios/var/check_snmp
[/bash]
NagiosとPNP4nagiosを再起動させて読み込ませます。
[bash]
# service nagios restart
# service npcd restart
[/bash]
これでNagiosでトラフィックを監視できるようになりました。
PNP4nagiosもあれば綺麗なグラフがとれるようになります☆
死活監視だけでなく日頃のグラフやログチェックで
システムのトラブルを未然に防ぐ事ができます。
********************************************************************
サーバーやネットワーク機器の監視など承ります。
補足 net-snmp及びnet-snmp-utilsのインストール
net-snmp及びnet-snmp-utilsをインストール
[bash]
# yum -y install net-snmp
# yum -y install net-snmp-utils
[/bash]
[bash]
# vi /etc/snmp/snmpd.conf
# First, map the community name “public” into a “security name”
# sec.name source community
com2sec notConfigUser default public
com2sec local localhost private
com2sec mynetwork 192.168.11.0/24 public←自分のネットワークを合わせる。
# Second, map the security name into a group name:
# groupName securityModel securityName
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
group MyROGroup any mynetwork
# Third, create a view for us to let the group have rights to:
# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
view systemview included .1
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view all included .1 80
# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
access notConfigGroup “” any noauth exact systemview none none
access MyROGroup “” any noauth exact all none none
access MyRWGroup “” any noauth exact all all none
access MyROGroup “” any noauth 0 all none none
[/bash]
再起動させて設定を読み込ませます。
[bash]
# service snmpd restart
[/bash]
これでsnmp関連のコマンドが使えるようになったはずです。
※現在配布されているcheck_snmpとはファイルの中身が変わっているようで記事内のコマンドが通らなくなりました。
古いバージョンのcheck_snmpを入手してください。