munin-node で監視情報を送信する(被監視側, CentOS 5.4) - Linux の使い方


システム状態を監視する

CentOS 5.4 では、munin-node というソフトウェアを使用することで、システムの CPU 利用率やネットワークトラフィックなどの詳細情報を監視することができるようになります。

今回は、監視ソフトウェア munin へ情報を提供するための munin-node のインストールと設定について記してみようと思います。

ここで収集した監視情報は munin でグラフ化して確認することになりますが、その方法については munin を使って監視情報をグラフ化する の方で記してみたいと思います。

 

CentOS 5.4 の場合は、既定では munin-node はインストールされていないので、まずはそのインストールから行います。

インストールには yum を使って、rpmforge リポジトリからインストールすることが可能です。リポジトリに rpmforge を追加する方法については CentOS 5.4 のシステムアップデート取得先としてリポジトリを追加する を参考にしてください。

yum --enablerepo=rpmforge install munin-node

このようにすることで、rpmforge リポジトリから munin-node をインストールすることが出来ました。

このとき、監視を行うためのプラグインは "/usr/share/munin/plugins/" ディレクトリにインストールされます。使用するプラグインは、インストールされたプラグインへのシンボリックリンクが "/etc/munin/plugins/" ディレクトリに作成されます。

 

munin-node のインストールが完了したら、munin-node の設定を行います。

設定ファイルは "/etc/munin/munin-node.conf" になります。この中で確認しておきたい設定事項としては、"port" と "allow" になるのでしょうか。

port では、自身の監視情報を提供するための TCP 接続待ち受けポートを設定します。既定では 4949 ポートになります。

監視情報を取得するためにはこのポートへの接続が必要になりますので、ファイアーウォール等で着信が禁止されている場合には、運用時にはそれを開放する必要があります。

また、allow では、そのポートへ接続して情報を取得することが可能な接続元を IP アドレスで限定します。ここでの iP 指定は正規表現での指定になるので、先頭には ^ を、最後には $ を、ドットの前には \ を付けて、例えば "^192\.168\.1\.1$" というように指定します。ネットワーク空間で指定するような場合には例えば "^192\.168\.1\.\d+$" というな感じになるようです。

複数の IP アドレスからの接続を許可したい場合には、allow 行を複数行に分けて必要な数だけ載することで対応できます。

 

これで、ひとまずは一通りの設定が出来ました。

後は次のようにして munin-node を起動すれば、監視情報を提供する準備は整います。

service munin-node start

また、Linux 再起動時にも自動的に munin-node を起動させるために、次のようにしておくと良いでしょう。

chkconfig munin-node on

このような感じで、munin-node によるシステム情報の収集が出来るようになりました。

 

Apache の状態を監視する

Munin をインストールした直後では、少なくとも自分の環境では Apache の情報収集がされていないようでしたので、それを追加してみることにします。

標準搭載されているプラグインであれば監視の追加は基本的には簡単で、シンボリックリンクの調整と munin-node の再起動だけで設定を行うことが出来ます。ただ、Apache の監視の場合には Apache の mod_status による情報提供が必要なため、その調整も必要になります。

 

まず、シンボリックリンクについてですが、Apache の監視の場合は "apache_access", "apache_processes", "apache_volume" あたりを組み込むことになると思いますので、次のようにしてそれらのシンボリックリンクを作成します。

ln -s /usr/share/munin/plugins/apache_access /etc/munin/plugins

ln -s /usr/share/munin/plugins/apache_process /etc/munin/plugins

ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins

シンボリックリンクを作成したら、次のようにして munin-node を再起動します。

service munin-node restart

これで Apache に関する情報の収集が開始されるようになりました。

実際に munin ページのグラフに反映されるタイミングは、munin が収集情報を回収したときのタイミングですので、確認できるようになるまで、通常は 5 分程度待つことになると思います。

 

これだけでは Apache の情報が収集できない場合には、Apache 側での mod_status の調整も必要になると思います。

CentOS 5.4 の場合は mod_status が標準で用意され、"/etc/httpd/conf/httpd.conf" 設定ファイル内で読み込まれているようなので、あとは munin-node が mod_status を利用して情報を取得できるように設定を調整する感じになります。

まず、情報収集で使用する "/server-status" へ munin-node がアクセスするために、127.0.0.1 (localhost) からのアクセスが行えるように設定しておきます。

CentOS 5.4 の場合は "/etc/httpd/conf/httpd.conf" にコメントアウトされた状態で記載例がありますので、それを利用して次のように設定すると良いでしょう。

<Location /server-status>

SetHandler server-status

Order deny,allow

Deny from all

Allow from 127.0.0.1

</Location>

また、標準では "ExtendedStatus On" の行がコメントアウトされているので、それも有効化しておきます。

こちらも CentOS 5.4 の場合には "/etc/httpd/conf/httpd.conf" にコメントアウトされた状態で記載されているので、そのコメントを取り除くなどしてあげれば良いと思います。

service munin-node restart

調整ができたら、次のようにして Apache を再起動します。

service httpd configtest

service httpd restart

これらの設定を行うことで、munin のグラフに Apache に関する情報が記録されて行くようになったと思います。