今回はMunin masterの設定と実行です。
/opt/munin/bin/munin-cron というプログラムでnodeから情報を拾います。このプログラムは、cronで定期的に実行させます。
とりあえず実行
1 2 3 4 5 |
$ sudo /opt/munin/bin/munin-cron This program will easily break if you run it as root as you are trying now. Please run it as user 'munin'. The correct 'su' command on many systems is 'su - munin --shell=/bin/bash' Aborting. |
munin-cronは、muninアカウントで実行せよ、とのこと。
1 2 3 4 5 6 |
$ sudo su - munin --shell=/bin/zsh ディレクトリがありません。HOME=/ としてログインします。 $ /opt/munin/bin/munin-cron Can't locate Date/Manip.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /opt/munin/lib/munin-graph line 42. BEGIN failed--compilation aborted at /opt/munin/lib/munin-graph line 42. |
Perlのモジュールが不足していれば、インストールします。エラーがなくなり、/opt/munin/www/docsの下にhtmlファイルが生成されていればひとまずOKです。
Apacheの設定
生成されたhtmlファイルを見てみましょう。/opt/munin/wwwの下にcgiというディレクトがありますが、まずはdocsの下を覗いてみます。
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /opt/munin/www/docs DirectoryIndex index.html index.htm ServerName munin.local ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined </VirtualHost> |
Internal Server Errorが出たので、ログを調べたところ、docsの下に.htaccessがあり、mod_expiresを使っていました。mod_expiresをインストールするか、.htaccessから関連する記述を外しておきます。また、基本認証の記述がありますので、htpasswdコマンドでパスワードファイルを作成しておきましょう。
基本認証後に以下のようなページが表示されます。
munin.conf
Munin masterの設定ファイルは、/etc/opt/munin/munin.conf です。設定項目の詳細についてはこちらを確認してください。
munin-cronは、主に次の4つの仕事をします。
- Munin nodeからデータを収集する。(munin-update)
- 収集したデータが決めれれた条件を満たした時にアラートメールの送信などの処理を行う。(munin-limits)
- ブラウザで状況を確認する際のhtmlファイルを生成する。(munin-html)
- 同じくグラフ(画像)を生成する。(munin-graph)
munin-cronが行う仕事のうち、3と4はcronで毎回生成する必要はなく、ブラウザで確認するときに生成すれば十分です。この設定をmunin.confに加えます。
1 2 |
graph_strategy cgi html_strategy cgi |
Munin nodeの設定を加えます。
1 2 3 |
[localhost] address 127.0.0.1 use_node_name yes |
cron
1 |
sudo crontab -u munin -e |
1 |
*/5 * * * * /opt/munin/bin/munin-cron |
cgi, rewrite
グラフを表示させるには、cgi、rewriteの設定が必要です。Apacheの設定を以下のように書き換えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /opt/munin/www/docs DirectoryIndex index.html index.htm ServerName munin.local ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined RewriteEngine On RewriteRule ^/favicon.ico /etc/opt/munin/static/favicon.ico [L] RewriteRule ^/static/(.*) /etc/opt/munin/static/$1 [L] RewriteCond %{REQUEST_URI} .html$ [or] RewriteCond %{REQUEST_URI} =/ RewriteRule ^/(.*) /opt/munin/www/cgi/munin-cgi-html/$1 [L] RewriteRule ^/(.*.png)$ /opt/munin/www/cgi/munin-cgi-graph/$1 [L] <Directory "/opt/munin/www/cgi"> Options +ExecCGI <IfModule mod_fcgid.c> SetHandler fcgid-script </IfModule> <IfModule !mod_fcgid.c> SetHandler cgi-script </IfModule> </Directory> </VirtualHost> |
Internal Server Errorになったので、Apacheのログを見たところ、munin-cgi-htmlが吐き出すログがパーミッションの問題で書き込めないようです。/opt/munin/log/muninにApacheのプロセスから書き込めるようにパーミッションを変更します。
1 2 3 4 5 6 7 8 9 |
[Tue Jun 18 10:07:17 2013] munin-cgi-html: Can't open /opt/munin/log/munin/munin-cgi-html.log (Permission denied) at /usr/local/share/perl/5.14.2/Log/Log4perl/Appender/File.pm line 103. <h1>Software error:</h1> <pre>Can't open /opt/munin/log/munin/munin-cgi-html.log (Permission denied) at /usr/local/share/perl/5.14.2/Log/Log4perl/Appender/File.pm line 103. </pre> <p> For help, please send mail to this site's webmaster, giving this error message and the time and date of the error. </p> |
まとめ、その他
以上でMuninのインストール、設定は完了です。みてきたようにMuninはRDBを必要としませんので、導入が比較的簡単です。また、プラグインの自作については触れませんでしたが、とても簡単に書くことができます。システム監視を始めてみようというかたにはお勧めです。