Munin-nodeだと特に問題は無かったのですが、
SNMPからの取得がUptimeが取れないとか
IFの値はsnmpwalkでは取得できるのにMuninだと取得できないとか
いろいろとおかしいので、ずーーとはまってました。
SNMPで取得したいのは
Routerboard君です。
他のSNMP機器は問題なく取得できるのも知れません。。。
# apt-caceh show munin Package: munin Version: 2.0.6-4+deb7u2 Installed-Size: 516
これすごい古いです。。。
なので!!
Unstableだろうが新しいのを突っ込んでみました。
http://packages.qa.debian.org/m/munin.html
1)インストール
http://ftp.jp.debian.org/debian/pool/main/m/munin/
2.0.19-3がまぁよさげなので
# wget http://ftp.jp.debian.org/debian/pool/main/m/munin/munin-async_2.0.19-3_all.deb # wget http://ftp.jp.debian.org/debian/pool/main/m/munin/munin-common_2.0.19-3_all.deb # wget http://ftp.jp.debian.org/debian/pool/main/m/munin/munin-doc_2.0.19-3_all.deb # wget http://ftp.jp.debian.org/debian/pool/main/m/munin/munin-node_2.0.19-3_all.deb # wget http://ftp.jp.debian.org/debian/pool/main/m/munin/munin-plugins-core_2.0.19-3_all.deb # wget http://ftp.jp.debian.org/debian/pool/main/m/munin/munin-plugins-extra_2.0.19-3_all.deb # dpkg -i munin*.deb
これだけですが、
インストール中に依存関係で入らないことがあります。
init-system-helpers_1.13
以下のパッケージには満たせない依存関係があります:
munin-async : 依存: init-system-helpers (>= 1.13~) しかし、インストールすることができません munin-node : 依存: init-system-helpers (>= 1.13~) しかし、インストールすることができません 依存: munin-plugins-core しかし、インストールされようとしていません
といわれてしまったら、別途入れてあげます。
# wget http://launchpadlibrarian.net/155991263/init-system-helpers_1.13_all.deb # dpkg -i init-system-helpers_1.13_all.deb
Ubuntuだけど気にしない!!
2)Muninの設定
ホスト名でやりたいので
追記します
# vi /etc/hosts 127.0.0.1 localhost rasneko.neko6.local 192.168.1.1 routerboard.neko6.local
adressはSNMP直接ではなく一度、
Munin-nodeから接続しに行くイメージですので、
#vi /etc/munin/munin.conf [router;routerboard.neko6.local] address 127.0.0.1 use_node_name no
こんな感じにします。
3)nodeの設定
[snmp_routerboard.neko6.local_*] env.community public env.version 2
適宜変更します。
4)Routerboardの設定
いきなりですがw
[admin@MikroTik] > snmp print enabled: yes contact: location: engine-id: trap-target: trap-community: public trap-version: 2 trap-generators:
nodeの設定とあわせます。
5)使えるプラグインを調べる
# munin-node-configure --shell --snmp routerboard.neko6.local --snmpversion 2 --snmpcommunity public ln -s '/usr/share/munin/plugins/snmp__cpuload' '/etc/munin/plugins/snmp_routerboard.neko6.local_cpuload' ln -s '/usr/share/munin/plugins/snmp__if_err_' '/etc/munin/plugins/snmp_routerboard.neko6.local_if_err_13' ln -s '/usr/share/munin/plugins/snmp__if_err_' '/etc/munin/plugins/snmp_routerboard.neko6.local_if_err_15' ln -s '/usr/share/munin/plugins/snmp__if_err_' '/etc/munin/plugins/snmp_routerboard.neko6.local_if_err_3' ln -s '/usr/share/munin/plugins/snmp__if_multi' '/etc/munin/plugins/snmp_routerboard.neko6.local_if_multi' ln -s '/usr/share/munin/plugins/snmp__winload' '/etc/munin/plugins/snmp_routerboard.neko6.local_winload'
これだけしかないってのもおかしな話なんですけどね。。。
まぁテンプレートということで。。。
一気にプラグインのリンクを張りたい場合は、
# munin-node-configure --shell --snmp routerboard.neko6.local --snmpversion 2 --snmpcommunity public | sh
「 | sh」とすれば 「/etc/munin/plugins/」の中にごっそりリンクを張ってくれます。
間違えて、「/usr/share/munin/plugins/」を消してしまった場合は、
munin-plugins-core
munin-plugins-extra
を入れなおしてあげてください。
「snmp_routerboard.neko6.local_cpuload」など
プラグインの中を覗けば、SNMPで使ってるOIDが見えるので、そこからいろいろ調べてみてもいいかも。
「munin-node-configure」で出てこないものも使える(はず)なので、
たとえば
# snmpwalk -v 2c -c public routerboard.neko6.local 1.3.6.1.2.1.2.2.1.2 iso.3.6.1.2.1.2.2.1.2.1 = STRING: "sfp1-gateway" iso.3.6.1.2.1.2.2.1.2.2 = STRING: "ether1-gateway" iso.3.6.1.2.1.2.2.1.2.3 = STRING: "ether2" iso.3.6.1.2.1.2.2.1.2.4 = STRING: "ether3" iso.3.6.1.2.1.2.2.1.2.5 = STRING: "ether4" iso.3.6.1.2.1.2.2.1.2.6 = STRING: "ether5" iso.3.6.1.2.1.2.2.1.2.7 = STRING: "ether6-master-local" iso.3.6.1.2.1.2.2.1.2.8 = STRING: "ether7-slave-local" iso.3.6.1.2.1.2.2.1.2.9 = STRING: "ether8-slave-local" iso.3.6.1.2.1.2.2.1.2.10 = STRING: "ether9-slave-local" iso.3.6.1.2.1.2.2.1.2.11 = STRING: "ether10-slave-local" iso.3.6.1.2.1.2.2.1.2.12 = STRING: "wlan1" iso.3.6.1.2.1.2.2.1.2.13 = STRING: "bridge-local" iso.3.6.1.2.1.2.2.1.2.15 = STRING: "pppoe-out"
こんな感じなので、
“pppoe-out“のインターフェイスのIn/Outが取りたければ、
# ln -s '/usr/share/munin/plugins/snmp__if_' '/etc/munin/plugins/snmp_routerboard.neko6.local_if_15'
とやってあげれば、OKということになります。
6)起動と確認
# /etc/init.d/munin-node restart [ ok ] Stopping Munin-Node: done. [ ok ] Starting Munin-Node: done.
確認してみましょ
使うのはTelnet。
# telnet 127.0.0.1 4949 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. # munin node at localhost nodes routerboard.neko6.local localhost . list routerboard.neko6.local snmp_routerboard.neko6.local_if_15 fetch snmp_routerboard.neko6.local_if_15 recv.value 958993990 send.value 524558953 . quit Connection closed by foreign host.
きちんと値がとれていますので、大丈夫ということになります。
使ったコマンドは、
nodes・・・ノード一覧表示
list・・・ノードの指定と使うプラグイン一覧
fetch・・・SNMPで値が取れるかどうかをチェック
TelnetではなくMuninで値が取得できるか調べたい場合
# munin-run snmp_routerboard.neko6.local_if_15 recv.value 975334476 send.value 540942592
munin-run・・・指定したプラグインで値が取れるかどうかチェックしてくれる
オプションは、勝手に「/etc/munin/plugins」以下のプラグインを見てくれるので、
逆に絶対パスとか指定すると、エラーしますw
あとは、Cronが5分おきにグラフを更新してくれるので、
お茶でも飲みながら待ちましょうw
# tail -f /var/log/munin/munin-update.log 2014/04/24 13:20:06 [INFO]: Starting munin-update 2014/04/24 13:20:10 [INFO] starting work in 17888 for routerboard.neko6.local/127.0.0.1:4949. 2014/04/24 13:20:20 [INFO] Remaining workers: router;routerboard.neko6.local 2014/04/24 13:20:30 [INFO] Remaining workers: router;routerboard.neko6.local 2014/04/24 13:20:56 [INFO]: Munin-update finished for node router;routerboard.neko6.local (45.58 sec) 2014/04/24 13:20:56 [INFO] Reaping Munin::Master::UpdateWorker<router;routerboard.neko6.local>. Exit value/signal: 0/0 2014/04/24 13:20:59 [INFO]: Munin-update finished (52.97 sec)
こんな感じw
データを消したい場合は、
# /var/lib/munin/ # /var/lib/munin/munin-async/ # /var/lib/munin/munin-node/ # /var/cache/munin/www/
このあたりをばっさり消してあげればOK(なはずですw)
5分も待ちたくない!!という方は
su - munin --shell=/usr/bin/munin-cron
すればアップデートが開始されます。