's WiLiKi

munin




munin は手軽なシステム/ネットワーク監視ツール

ムーミン...ではない。 昔は HotSaNIC を使っていましたが、HotSaNIC は最近メンテナンスされてないので、muninに乗り換え。


インストール

2009/01/18現在の最新は1.3.4。 redhat 用の spec があるけど、壊れている。 http://munin.projects.linpro.no/ticket/587 から親切な人がデバッグしてくれた spec を拾ってきて使う。

インストールの時に perl モジュールが足りないと起こられるので yum なり cpan2rpm でインストールする。

トラブルシューティング

munin-nodeをDEBUGモード(--debug)で走らせると、 /var/log/munin/munin-node.log にいろいろメッセージが出る。

エラーメッセージへの対応

まだ荒削りなようで、いろいろエラーがでる。

iostat_ios がエラーになる

snmp__df が存在しない領域を参照してエラーになる

# diff -u snmp__df.in snmp__df.in.new
--- snmp__df.in 2010-02-26 21:32:44.000000000 +0900
+++ snmp__df.in.new     2010-04-14 17:30:52.000000000 +0900
@@ -139,8 +139,8 @@
     foreach my $partition (keys %$parts)
     {
        my $mp = get_single ($session, $hrFSMountPoint . $partition);
-       $partitions{$mp}{partition} = $partition;
-       print "# Added partition \"$mp\" as $partition...\n" if $DEBUG
+       $partitions{$mp}{partition} = $partition if (defined($mp));
+       print "# Added partition \"$mp\" as $partition...\n" if (defined($mp) &&$DEBUG);
     }
 }

一部のスイッチで munin-node-configure で snmp__if_ が正しく設定できない

snmpで、 ifNumber が返ってくるが、ポートのインデックスが 1からの連番でない機器で問題になる。最適化の機能がうまく動いてない。

IF-MIB::ifNumber.0 = INTEGER: 28
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.5001 = INTEGER: 5001
IF-MIB::ifIndex.7001 = INTEGER: 7001
# diff -u SNMPConfig.pm.old SNMPConfig.pm
--- SNMPConfig.pm.old   2010-04-15 15:04:05.000000000 +0900
+++ SNMPConfig.pm       2010-04-15 15:07:17.000000000 +0900
@@ -102,7 +102,7 @@
        }

        # Fetch the list of indices
-       if ($plugin->{number}) {
+       if (0 && $plugin->{number}) {
                my $num = _snmp_get_single($session, $plugin->{number});
                return unless $num;
                @indexes = (1 .. $num);

WindowsのMIB

pidebugが未定義

http://munin-monitoring.org/changeset/3477?new_path=/ に、パッチがある。

/etc/munin/plugin-conf.d/ の下の定義が反映されない(snmp)

下記のように書けと書いてあるけど、書いても反映されない。 wildcard(*)を使わずに、snmp_hostname_proc のように書けば反映されるけど、 台数が多くなると大変。 たぶん、 Node/Service.pm の export_service_environment が変。

   [snmp_*]
        env.version 2
        env.community public

サービス名(snmp_*)の逆順に(reverse sort) wildcardが適用され、かつ、あとで 適用されたものが優先される。そのため、 snmp_* と snmp_aaa_* では、 snmp_* の 値で上書きされてしまう。snmp_* は、全ての監視対象に設定したい場合を除いて使わないのが吉。

ちなみに、env.community "public" のように、 "..." で括る記述例もあるが、これは動かない。

Argument "usb_fiq" isn't numeric in addition

Service bind9 on localhost/127.0.0.1:4949 returned no data for label query_other

$ munin-run bind9
No such file or directory at /etc/munin/plugins/bind9 line 79.

/var/log/bind9/query.log が無い。参考:munin plugin for bind9 | ohharaの日記 | スラッシュドット・ジャパン

chroot していると muninとbind9で見えるディレクトリと違うので注意。

Fedoraのsrc.rpmを使おうとすると、「cpio: MD5 sum mismatch」

日本語版では、「cpio: MD5 チェックサムが適合しません」になる。

整数データなのにグラフに小数点以下の端数が出る

Use of uninitialized value in list assignment at /usr/share/perl5/Munin/Master/Utils.pm line 112.

Unable to graph /var/www/html/munin/localhost/localhost/xxxx-day.png : opening '/var/lib/munin/--g.rrd': No such file or directory

エラーメッセージ部分は --g.rrd や --d.rrd など、ハイフンが連続する。

rootが内部で使用されているため、root.value のような識別子が使えないのが原因。

下記のパッチは2010年に提出されているが、反映されていない。何か問題があったのか?

plugin側で root という文字列を回避するのが無難?

In RRD: Error updating /var/lib/xxx/http_loadtime-loadtime-g.rrd: /var/lib/xxx/http_loadtime-loadtime-g.rrd: found extra data on update argument:

外部コマンドのtimeが存在しないとエラーになる。 apt-get install time する。

グラフの曜日・月名が文字化けする

cron 実行時のLANGがC以外だと化ける。

グラフのスケール設定がわかりにくい

manual:087:7_examples - Cacti Docsmanual:087:8_rrdtool.06_alt_y_grid - Cacti Docs の例が参考になる。

プラグインの実行権限

特に指定のない限り uid=nobody gid=munin (cf. /usr/share/perl5/Munin/Common/Defaults.pm )

our $MUNIN_USER       = q{munin};
our $MUNIN_GROUP      = q{munin};
our $MUNIN_PLUGINUSER = q{nobody};

TIPS / ノウハウ

リンク








[トップ] / [最近の更新] [一覧] [編集履歴] [RSS]
Last modified : 2016/08/12 16:26:36 JST
WiLiKi 0.5.3 running on Gauche 0.9.4