Ubuntu 10.04 LTS環境で、Muninのグラフを動的生成にしたので手順メモ。
まずは Munin 導入
apt-get install munin munin-node
監視先サーバの変更やmunin-nodeの設定などは、ここでは触れないので他のサイトを参照してください。
ついでに、5分値の保存期間を延ばします。これはディスク利用量が増えるので任意です。
- vi /etc/munin/conf
- 監視先サーバの前に以下を追加
- graph_data_size huge
なお、現在のMuninには過去の値を期間指定で表示するUIが無いので、どうしても必要な場合にRRDtoolを直接利用する必要があります。
Muninの生成するHTMLにて、グラフへのリンク先をfastcgiに変更
/etc/munin/munin.conf に以下を追加します。
graph_strategy cgi cgiurl_graph /cgi-bin/munin-fastcgi-graph
munin-fastcgi-graph の不具合修正
/usr/lib/cgi-bin/munin-fastcgi-graph を編集し、74行目のsplitに引数を追加してください。
($dom, $host, $serv) = split /\//, $path, 3; # $path の後ろに 3 を追加
もしくは、munin-fastcgi-graph をダウンロードしてパッチ当てでも可。
cd /usr/lib/cgi-bin patch -p0 < ~/munin-fastcgi-graph.diff
cron内でのグラフ生成を停止
/usr/bin/munin-cronを編集し、munin-graphの二行をコメントアウト。
もしくは、munin-cron.diff をダウンロードしてパッチ当てでも可。
cd /usr/bin patch -p0 < ~/munin-cron.diff
ログファイルや画像保存先のパーミッションを変更
Apacheの実行グループがwww-dataと仮定しています。
touch -m 664 /var/log/munin/munin-cgi-graph.log /var/log/munin/munin-graph.log chmod g+w /var/log/munin/munin-cgi-graph.log /var/log/munin/munin-graph.log sudo chgrp www-data /var/log/munin/munin-cgi-graph.log /var/log/munin/munin-graph.log sudo chgrp www-data /var/log/munin sudo chmod g+w /var/log/munin sudo chgrp www-data /var/run/munin sudo chmod g+w /var/run/munin sudo chgrp -R www-data /var/cache/munin/www sudo chmod -R g+w /var/cache/munin/www
fastcgiの実行環境を整える
いくつか必要なライブラリやApacheモジュールを導入します。
apt-get install libapache2-mod-fcgid libcgi-fast-perl
Ubuntu 10.04 LTSであれば mod_fcgid(libapache2-mod-fcgid)の導入時に有効化されるようなので、そのまま以下を追加します。
<Location /cgi-bin/munin-fastcgi-graph> SetHandler fcgid-script </Location>
また、サイト設定( /etc/apache2/sites-available/default 等)にて、以下を追加します。
<Location /cgi-bin/munin-fastcgi-graph> SetHandler fcgid-script </Location>
もし独自にサイト設定を書いていれば、以下も必要です。
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
logrotateの設定
毎日ログファイルをリネームするlogrotateがファイルのパーミッションを再設定してしまうため、/etc/logrotate.d/munin も変更します。
まずは、最初から存在する munin-graph.log のログ設定の、create 行を create 660 munin www-data に変更します。
/var/log/munin/munin-graph.log { daily missingok rotate 7 compress notifempty create 660 munin www-data }
次に、以下を末尾に追加します。このファイルに、ブラウザ上から画像ファイルを表示する度に起動されるfastcgiプログラムのログが出力されます。
/var/log/munin/munin-cgi-graph.log { daily missingok rotate 7 compress notifempty create 660 www-data www-data }