muninでSRXのトラフィック監視

muninでSRXのトラフィックの監視を行ってみました。

設定環境

以前にmuninでモニタリングポストのプラグインを作っており、バージョンアップの検証が面倒だったため、少し古いバージョンを使っています。また、muninの基本的な設定が完了している前提で記載していますので、その点はご了承ください。

  • FreeBSD 8.2-RELEASE
  • munin-master-1.4.6
  • munin-node-1.4.6

SRXのSNMP設定

SNMPについては、192.168.40.2からのみRead-Onlyで許可して、それ以外は拒否する設定を入れています。「xxxxxxx」は、コミュニティー名です。

 
juniper@SRX100H> configure
Entering configuration mode
 
[edit]
juniper@SRX100H#set snmp community xxxxxxx authorization read-only
juniper@SRX100H#set snmp community xxxxxxx clients 192.168.40.2/32
juniper@SRX100H#set snmp community xxxxxxx clients 0.0.0.0/32 restrict
[edit]
juniper@SRX100H#commit
 

SNMPでトラフィックを取得するためには、SRXのインタフェースINDEXを調べる必要があります。今回はVLAN40とPPPoEインターフェースのpp0.0を調べました。以下の結果ではvlan40がindex番号501で、pp0.0がindex番号533であることが判ります。

juniper@SRX100H> show snmp mib walk 1
dot3adTablesLastChanged.0 = 18945
sysDescr.0    = Juniper Networks, Inc. srx100h internet router, kernel JUNOS 12.1R3.5, Build date: 2012-08-09 09:57:30 UTC Copyright (c) 1996-2012 Juniper Networks, Inc.
sysObjectID.0 = jnxProductNameSRX100
sysUpTime.0   = 8900938
     :
ifDescr.4     = lsi
ifDescr.6     = lo0
ifDescr.7     = tap
ifDescr.8     = gre
ifDescr.9     = ipip
ifDescr.10    = pime
ifDescr.11    = pimd
ifDescr.12    = mtun
ifDescr.21    = lo0.16384
ifDescr.22    = lo0.16385
ifDescr.248   = lo0.32768
ifDescr.501   = vlan.40
ifDescr.502   = pp0
ifDescr.503   = irb
ifDescr.504   = st0
ifDescr.505   = ppd0
ifDescr.506   = ppe0
ifDescr.507   = vlan
ifDescr.509   = fe-0/0/0
ifDescr.510   = fe-0/0/0.0
     :
ifDescr.523   = fe-0/0/7
ifDescr.524   = fe-0/0/7.0
ifDescr.525   = sp-0/0/0
ifDescr.526   = sp-0/0/0.0
ifDescr.527   = gr-0/0/0
ifDescr.528   = ip-0/0/0
ifDescr.529   = mt-0/0/0
ifDescr.530   = lt-0/0/0
ifDescr.531   = sp-0/0/0.16383
ifDescr.532   = vlan.50
ifDescr.533   = pp0.0
     :

muninの設定

まず、「munin.conf」と「plugins.conf」にSRX用の設定を追加します。「munin.conf」で記載されているアドレスはSRXではなくmunin-nodeのIPアドレスです。後、srx.or2.toをSRXのFQDNとしてDNSに設定しています。hostsファイルでも良いのでIPアドレスが引けるようにしておいて下さい。

/usr/local/etc/munin/munin.conf
最終行に以下の行を追加
[srx.or2.to]
    address 192.168.40.2
    use_node_name no
/usr/local/etc/munin/plugin-conf.d/plugins.conf
最終行に以下の行を追加
[snmp_srx.or2.to*]
env.community xxxxxxx
env.host srx.or2.to
env.version 2

続いて、pluginを設定を行います。リンクを作成する際にファイル名とindex番号を付けるだけです。

# ln -s /usr/local/share/munin/plugins/snmp__if_ /usr/local/etc/munin/plugins/snmp_srx.or2.to_if_501

ln -s /usr/local/share/munin/plugins/snmp__if_ /usr/local/etc/munin/plugins/snmp_srx.or2.to_if_533

本来、ここでmunin-nodeを再起動すれば良いのですが、自分の環境では「munin-update.log」に以下のエラーメッセージが出力されてグラフが表示出来ませんでした。エラーメッセージを見ればなんとく判りますが、ある値が取れていないことが判ります。

 
# tail -f /var/log/munin/munin-update.log
2012/11/12 01:30:03 [INFO] creating rrd-file for snmp_srx_or2_to_if_533->recv: '/var/munin/or2.to/srx.or2.to-snmp_srx_or2_to_if_533-recv-d.rrd'
2012/11/12 01:30:03 [ERROR] Unable to create '/var/munin/or2.to/srx.or2.to-snmp_srx_or2_to_if_533-recv-d.rrd': min must be less than max in DS definition
2012/11/12 01:30:03 [ERROR] In RRD: Error updating /var/munin/or2.to/srx.or2.to-snmp_srx_or2_to_if_533-recv-d.rrd: opening '/var/munin/or2.to/srx.or2.to-snmp_srx_or2_to_if_533-recv-d.rrd': No such file or directory
2012/11/12 01:30:03 [INFO] Reaping Munin::Master::UpdateWorker<or2.to;srx.or2.to>. Exit value/signal: 0/0
 

改めて、SRXのMIBを見てみるとVLAN40とpp0.0の回線帯域の値が0になっていました。どうやらこれがエラーの原因のようです。

juniper@SRX100H> show snmp mib walk 1
     

.1.3.6.1.2.1.2.2.1.5.4 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.6 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.7 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.8 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.9 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.10 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.11 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.12 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.21 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.22 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.248 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.501 = Gauge32: 0
     :
.1.3.6.1.2.1.2.2.1.5.528 = Gauge32: 800000000
.1.3.6.1.2.1.2.2.1.5.529 = Gauge32: 800000000
.1.3.6.1.2.1.2.2.1.5.530 = Gauge32: 800000000
.1.3.6.1.2.1.2.2.1.5.531 = Gauge32: 800000000
.1.3.6.1.2.1.2.2.1.5.532 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.533 = Gauge32: 0
     :
 

プラグインのリンク元のプログラムを、回線帯域の値が存在する場合だけ実行するように変更しています。送信と受信の2箇所変更する必要があるので注意して下さい。

# vi /usr/local/share/munin/plugins/snmp__if_ 

↓この行を削除する。

print "recv.max $speed\n";

↓この行を追加する。

 if ($speed) {
     print "recv.max $speed\n";
}
 
↓この行を削除する。

print "send.max $speed\n";

↓この行を追加

if ($speed) {
    print "send.max $speed\n";
}

munin-nodeの再起動

最後に「munin-node」を再起動して設定ファイル類の再読み込みを行ってください。後は5分~15分程度待ってグラフが表示されることを確認して下さい。

 /usr/local/etc/rc.d/munin-node restart
Stopping munin_node.
Starting munin_node.

 

関連記事

人気記事のランキング

トラックバックURL

このエントリーのトラックバックURL:
http://or2.to/mt/mt-tb-mt.cgi/104

コメントする