はじめに
Muninは、2004年7月にバージョン1.0.0がリリースされた比較的新しいサーバー監視ツールです。Muninは、サーバー監視ツールとしてサーバーの現在の状況だけで無く、過去の状況もグラフを用いた視覚的によって、把握しやすくなっています。今回は、Muninを用いたサーバー監視システムの構築方法を解説します。
2014年02月04日 22時37分
Muninは、2004年7月にバージョン1.0.0がリリースされた比較的新しいサーバー監視ツールです。Muninは、サーバー監視ツールとしてサーバーの現在の状況だけで無く、過去の状況もグラフを用いた視覚的によって、把握しやすくなっています。今回は、Muninを用いたサーバー監視システムの構築方法を解説します。
構築に必要なサーバー要件および、導入パッケージは下記のとおりです。
OS | Windows 7 Ultimate 32bit |
Cygwin | Setup Version 2.831 |
VirtualBox | 4.3.6 r91406 |
Vagrant | 1.4.1 |
Muninサーバー | ホスト名 | munin-server |
IPアドレス | 192.168.0.50 | |
OS | CentOS 6.5 i386 | |
Apache | 2.2.15 | |
サードパーティリポジトリ | EPEL | |
Muninクライアント | ホスト名 | munin-client |
IPアドレス | 192.168.0.20 | |
OS | CentOS 6.5 i386 | |
Apache | 2.2.15 | |
MySQL | 5.5.35 | |
サードパーティリポジトリ | EPEL |
なお、Muninサーバーは、毎時0分/5分/10分など5分単位で閲覧用のウエブページとグラフを作成します。
公式サイトでは、ハードウェアスペックについて言及されていませんが、メモリ不足はサーバーのパフォーマンスに影響を及ぼしますので、Muninサーバーに搭載するメモリ容量は多い方が良いでしょう。
サーバー | パッケージ名 | バージョン |
---|---|---|
Muninサーバー | munin | 2.0.19 |
Muninクライアント | munin-node | 2.0.19 |
EPELリポジトリから、Muninパッケージをインストールします。
$ sudo yum -y install munin --enablerepo=epel
Muninをインストールすると、Muninの管理ページがインストールされますので、管理ページへのアクセス制御を行うために、ユーザー認証情報を設定します、
$ sudo htpasswd -b /etc/munin/munin-htpasswd munin admin
ここでは、ユーザー名にmunin、パスワードにadminを指定しています。
Apacheを再起動し、変更を有効にします。
$ sudo service httpd restart
Muninをインストールすると、監視エージェントのmunin-nodeもインストールされますので、エージェントの起動と自動起動設定を行います。
$ sudo service munin-node start $ sudo chkconfig munin-node on
Muninを起動すると、ディスク使用量やメモリ使用量などの監視データの収集が開始され、収集されたデータを元に管理ページが5分おきに作成されます。
このため、動作確認の際には5分以上待ってから下記のページにアクセスします。
http://192.168.0.50/munin/
Muninが作成するコンテンツは、デフォルトの/var/html/www/munin下に作成されるため、HTMLファイルが生成されたら、ウエブサイトにアクセスします。
初めて管理ページにアクセスすると、ユーザー認証画面が表示されますので、手順2で指定したID、パスワードを入力します。
認証に成功すると、Muninのトップページが表示され、監視中のサーバーが表示されます。
エージェントが監視するデフォルトの監視項目(Sensor)は、disk/network/postfix/processes/systemの6項目となっていますので、サーバー上で稼働するApacheのSensor(監視項目)を追加します。
デフォルトのSensorは、プラグインの設定は不要ですが、デフォルト以外のSensorにはプラグインの設定が必要となります。
$ 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
/etc/httpd/conf/httpd.confを下記のとおり設定します。
LoadModule status_module modules/mod_status.so ExtendedStatus On
設定が終了したら、Apacheを再起動します。
$ sudo service httpd restart
セットアップしたApache監視プラグインの動作を確認します。
$ munin-run apache_accesses $ munin-run apache_processes $ munin-run apache_volume
エージェントの再起動を行います。
$ sudo service munin-node restart
追加したSensorが、トップページに表示されるか確認します。
[disk]監視項目の左隣りに、[apache]が追加されています。
以上で、Muninサーバーの構築は終了です。
ここでは、Apacheおよび、MySQL Sensorの監視センサーを追加します。
監視対象サーバーに、監視エージェントをインストールします。
$ sudo yum -y install munin-node --enablerepo=epel
監視サーバーのIPアドレスを設定ファイルに追加します。
sudo vi /etc/munin/munin-node.conf
allow ^192\.168\.0\.50$
前述の監視項目の追加と同じ要領で、Apache Sensorを追加します。
MySQLを監視項目として追加します。
MySQLのアクセスに必要な情報を、設定ファイルに追加します。
env.mysqloptsには、mysqlコマンドに渡すコマンドライン引数を指定します。
ここでは、MySQLのrootユーザーのパスワードを設定しています。
$ sudo vi /etc/munin/plugin-conf.d/munin-node
[mysql*] env.mysqlopts -u root -padmin env.mysqladmin /usr/bin/mysqladmin
MySQLプラグインを設定します。
$ for p in mysql_bytes mysql_innodb mysql_isam_space_ mysql_queries mysql_slowqueries mysql_threads; do sudo ln -s /usr/share/munin/plugins/$p /etc/munin/plugins/$p; done
エージェントの起動と自動起動設定を行います。
$ sudo service munin-node start $ sudo chkconfig munin-node on
以上で、Muninクライアントの構築は終了です。
Muninクライアントの設定が終了したら、MuninサーバーにMuninクライアントを追加します。
MuninクライアントのIPアドレスを、設定ファイルに追加します。
sudo vi /etc/munin/munin.conf
[munin-client] address 192.168.0.20 use_node_name yes
追加したMuninクライアントとクライアントに追加したSensorが、トップページに表示されるか確認します。
追加が成功すると、/var/www/html/munin下にmunin.conf内で指定した名前(ここでは、munin-client)のフォルダが作成され、エージェントから取得した監視データを元にHTMLファイルが作成されます。
ここまで、Muninを用いたサーバー監視システムの構築方法を解説しました。Muninは、Nagiosと同様にサーバーの現在の状況を監視するだけでなく、監視結果を日次、週次、月次、年次単位でグラフ表示することもできます。
Nagiosと組み合わせて使用することで、緊急時のアラートをNagiosで実行し、運用状況をMuninで把握すると言った運用がお勧めです。