自宅のFreeBSDと、仕事場のLinux(CentOS4/RHEL3)で試してみました。とりあえず試しただけなので多分勘違いがあるでしょう。
- postfix_mailstats,postfix_mailvolumeを使う
-
postfix_* pluginのうち、postfix_mailqueueは普通にインストールしただけで使えましたが、後の2つは作業が必要でした。/usr/local/etc/munin/plugin-conf.d/plugins.conf(rpmだと/etc/munin/plugin-conf.d/munin-node)に追加が必要
[postfix*] user root env.logfile maillog
- bind9を使う
-
querylogが必要なので、named.confに追加
logging { channel "log" { file "/var/log/bind9/query.log"; }; category queries {"log";}; };さらに、1つファイルを作ってあげないとdieしてしまうので
# touch /usr/local/var/munin/plugin-state/bind9.state # chonw munin:munin /usr/local/var/munin/plugin-state/bind9.state
2行目の替わりに/usr/local/etc/munin/plugin-conf.d/plugins.confに以下を追加でも可
[bind9] user root
bindでviewを使っていて、querylogにこの情報が載っている場合は/usr/local/share/munin/plugins/bind9に修正が必要
--- /usr/local/share/munin/plugins/bind9.org Mon Sep 11 23:28:34 2006 +++ /usr/local/share/munin/plugins/bind9 Mon Sep 11 17:00:50 2006 @@ -73,7 +73,7 @@ open(Q,"< $QUERYLOG") or die "$!"; while (<Q>) { chomp; - if (/client \d+\.\d+.\d+.\d+\#\d+: query\: \S+ (\w+) (\w+)/) { + if (/client \d+\.\d+.\d+.\d+\#\d+: (?:view .*?: )?query\: \S+ (\w+) (\w+)/) { if ($1 eq 'IN' and $2 !~ /^TYPE/) { $IN{$2}++; } else {問題:ログが大きくなる(仕事場の環境では20MBぐらい)とタイムアウトしてしまう。かといってrotateするとデータを取りこぼすことになる。
-
squidのポートをデフォルトの3128以外にしている場合は、/usr/local/etc/munin/plugin-conf.d/plugins.confに以下を追加
[squid-*] env.squidport 8080
ホスト名をlocalhost以外にする場合や、認証が必要な場合はそれぞれenv.squidport,env.squiduser,env.squidpasswdで指定
あと、squidでcachemgrが使用できるようになっている必要があります。(デフォルトではlocalhostからのみ使用可)
- apache_access,apache_processes,apache_volumeを使う
-
apacheでserver-statusが使えるようになっている必要があるので、httpd.confに以下を追加
ExtendedStatus On #デフォルトで入ってるかも <Location server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 </Location> 手で ln -s /usr/local/share/munin/plugins/hoge /usr/local/etc/munin/plugins/hoge するか、
# munin-node-configure --suggest --shell --families auto,manual,contrib
を実行すると、使えるpluginが
ln -s /usr/local/share/munin/plugins/foldingathome_rank /usr/local/etc/munin/plugins/foldingathome_rank ln -s /usr/local/share/munin/plugins/foldingathome_wu /usr/local/etc/munin/plugins/foldingathome_wu ln -s /usr/local/share/munin/plugins/multips /usr/local/etc/munin/plugins/multips ln -s /usr/local/share/munin/plugins/munin_graph /usr/local/etc/munin/plugins/munin_graph ln -s /usr/local/share/munin/plugins/munin_update /usr/local/etc/munin/plugins/munin_update ln -s /usr/local/share/munin/plugins/ntp_states /usr/local/etc/munin/plugins/ntp_states ln -s /usr/local/share/munin/plugins/sendmail_mailqueue /usr/local/etc/munin/plugins/sendmail_mailqueue ln -s /usr/local/share/munin/plugins/sendmail_mailstats /usr/local/etc/munin/plugins/sendmail_mailstats ln -s /usr/local/share/munin/plugins/sendmail_mailtraffic /usr/local/etc/munin/plugins/sendmail_mailtraffic ln -s /usr/local/share/munin/plugins/squid_icp /usr/local/etc/munin/plugins/squid_icp
みたいに出てくるので必要な行をコピーして実行
- 別ホストでmunin-nodeを動かす
-
munin-node.confの最後に、アクセスを許可するホストを正規表現で追加
allow ^192\.168\.1\.1$
munin.confに、収集するサーバの情報を追加
[foo.example.jp] address 192.168.1.2
[]の中はただのラベルかと思ったら、実際のFQDNと一致しないといけないらしい。
- squid_cache,squid_request,squid_trafficを使う
- pluginの追加
ドキュメントが今ひとつ不足しているのと、bind9に限らずログのrotateが考慮されていないっぽいので収集された値がどの程度正確かが今ひとつ不安なのが難点でしょうか。何となく監視、初期状態+ここに書いたぐらいのデータが取れればいい、みたいな緩い用途であればお気軽に使えて便利だと思います。