DebianとMuninとSNMPと

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

すればアップデートが開始されます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Enter code * Time limit is exhausted. Please reload CAPTCHA.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください