さくらのVPS -muminのインストール&初期設定-

サーバー監視ツールのMuminをインストールし設定します。
さくらのVPSは標準でEPELのリポジトリが効いているので、yum一発でインストールできました。

  1. muninのインストール
  2. muninの初期設定
  3. バーチャルホストの設定
  4. Apache用pluginの追加
  5. MySQL用pluginの追加
  6. ズーミンググラフの設定

1.muninのインストール

yumコマンドでmuninとmunin-nodeをインストールします。
google先生に聞くと、リポジトリの話がでてきますが、さくらのVPSのcentOS6ではデフォルトでEPELのリポジトリが効いているのでyum一発インストールができました。

$ sudo yum install munin munin-node

munin-nodeがサーバーを監視し、そのデータをmuninで表示・確認する感じでしょうか。両方インストールする必要があります。

2.muninの初期設定

まずはmunin-nodeがサーバー起動時に自動的に起動するよう常駐の設定します。

$ sudo /sbin/chkconfig munin-node on

muninの設定ファイルは以下のコマンドで確認できますが、特に内容の変更は必要ありません。

$ sudo vi /etc/httpd/conf.d/munin.conf

munin-htpasswdファイルを作成します。linuxのhtpasswdというコマンドでファイルを作成します。
以下はusernameというログイン名に対するパスワードファイルの作成です。

$ sudo htpasswd -c /etc/munin/munin-htpasswd username

ここまでできたらmunin-nodeを起動し、apacheを再起動します。

$ sudo /sbin/service munin-node start
$ sudo /sbin/service httpd restart

※「munin-node start」とすべきところが「munin start」と記載されていました。お問い合わせより指摘があり、修正しています。すみませんorz

ところで自分の場合、「さくらインターネット創業日記」の「ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編)」に記載されていた不要そうなapacheモジュールを参考に、mod_expiresのモジュールを無効にしていたために、munin.confのExpiresActiveの行でエラーになりました。同じ現象の方は少ないと思いますが、エラーが出た場合にはhttpd.confの170行目付近にあるmod_expires.soのコメントアウトをはずして有効化してください。

また、同じくmod_authz_userもコメントアウトしていたためBASIC認証がうまくいかず500 Internal Server Errorが出ました。同じく有効にしてください。

 

3.バーチャルホストの設定

muninは/var/www/html/munin/にインストールされるので、http://IPアドレス/munin/でアクセスできるかと思います。自分はバーチャルホストの設定を行いました。

# sudo vi /etc/httpd/conf.d/vhost.conf

<virtualhost *:80>
DocumentRoot /var/www/html/munin
ServerName ここにmunin用のURL
</virtualhost>

これで設定したURLにアクセスするとmuninのページが表示されるはずです。

 

4.Apache用pluginの追加

一度muninが正しく動作するのを確認したら、Apache用のpluginを追加します。
pluginへのシンボリックリンクを作成します。

$ sudo ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
$ sudo ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
$ sudo ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume

httpd.confの設定を編集し、ExtendedStatus Onを有効にします。

# sudo vi /etc/httpd/conf/httpd.conf

228行目付近のExtendedStatus Onのコメントアウトを外します。

ExtendedStatus On

また935行目付近にあるserver-statusの項目のコメントアウトも外し、127.0.0.1からのアクセスを許可します。

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 ←編集
 </Location>

httpdとmunin-nodeを再起動します。

$ sudo /sbin/service munin-node restart
$ sudo /sbin/service httpd restart

 

5.mysql用pluginの追加

続いてmysql用のpluginを追加します。
pluginへのシンボリックリンクを作成します。

$ sudo ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes
$ sudo ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
$ sudo ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
$ sudo ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads

munin-nodeの設定ファイルを編集します。

$ sudo vi /etc/munin/plugin-conf.d/munin-node

以下の記述を追加します。設定例はユーザー名root、パスワード<password>の例です。

[mysql*]
env.mysqladmin /usr/bin/mysqladmin
env.mysqlopts -u root -p<password>

注意が必要なのは、-pの後にスペースを入れずパスワードを入力することです。

munin-nodeを再起動します。

$ sudo /sbin/service munin-node restart

 

6.ズーミンググラフの設定

CGIによるグラフ描画を有効にすると、グラフのズーミング機能が利用できるようになります。
まずはmunin.confの設定を変更(確認)します。

$ sudo vi /etc/httpd/conf.d/munin.conf

以下のエイリアスが記述されているのを確認します。記述がない場合には末尾に追記します。

ScriptAlias /munin-cgi/munin-cgi-graph /var/www/cgi-bin/munin-cgi-graph

CGIが動作できるようディレクトリの所属グループをapache(apacheのユーザー名を変更している場合には、そのapacheユーザーが所属するグループ)に変更します。

$ sudo chgrp apache /usr/share/munin/munin-graph
$ sudo chgrp apache /var/log/munin /var/log/munin/munin-graph.log
$ sudo chmod g+w /var/log/munin /var/log/munin/munin-graph.log
$ sudo chgrp -R apache /var/www/html/munin/
$ sudo chmod -R g+w /var/www/html/munin/

ズーミンググラフが表示されない場合には、apacheのエラーログを確認し「Permission denied」ならディレクトリの権限や所有者、所属グループの確認を行います。
「File does not exist: /var/www/html/munin/munin-cgi」のようなエラーは上記のエイリアスに問題がないか、/var/www/html/munin/munin-cgiが存在するかなどを確認してみてください。