« 急いでいる人のためのMySQLのユーザ権限付与講座 | Main | パスワードなしで他のサーバにSSH接続する方法 »

October 18, 2010

サーバリソース監視ツール「munin」をCentOSで手軽に導入する方法

サーバリソース監視をする際、MTRG、Cacti、Nagiosなどを使う場合が多いですが、SNMPベースのツールは設定が面倒です。

そこで今回はSNMPを使わないお手軽サーバリソース監視ツールとしてmuninを手軽に導入する方法について記してみたいと思います。自動インストールスクリプト付きです。


【muninを使う前に最低限知っておいたほうが良いこと】
muninでは、監視用WEBサーバに入れるパッケージ「munin」と監視対象の各ノードに入れる「munin-node」があります。ただし監視用WEBサーバには「munin」だけでなく「munin-node」も入れなければなりません。


【監視用WEBサーバでの設定】
監視用WEBサーバ上では以下のスクリプトをroot権限で実行してみてください。(myhostnameのところだけそのサーバのホスト名に直した方がよいでしょう)

cd /root/Packages rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

echo "[dag]" > /etc/yum.repos.d/dag.repo

echo "name=Dag RPM Repository for Red Hat Enterprise Linux" >> /etc/yum.repos.d/dag.repo

echo "baseurl=http://ftp.riken.jp/Linux/dag/redhat/el4/en/\$basearch/dag/" >> /etc/yum.repos.d/dag.repo

echo "gpgcheck=1" >> /etc/yum.repos.d/dag.repo

echo "gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt" >> /etc/yum.repos.d/dag.repo

echo "enabled=1" >> /etc/yum.repos.d/dag.repo

yum -y --enablerepo=dag install munin
yum -y --enablerepo=dag install munin-node

sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/dag.repo

mkdir /var/www/munin
mkdir /var/www/munin/htmldir

chown munin.munin /var/www/munin/htmldir
chmod 755 /var/www/munin/htmldir

# munin.conf htmldir変更(9行目)
sed -i 's/# htmldir/htmldir/' /etc/munin/munin.conf

# munin.conf ホスト名に変更(60行目)
sed -i 's/localhost/myhostname/' /etc/munin/munin.conf

# munin-node.conf ホスト名指定(29行目)
sed -i 's/#host_name x86-19.phx2.fedoraproject.org/host_name myhostname/' /etc/munin/munin-node.conf

service munin-node start
chkconfig munin-node on


【各ノードでの設定】
各ノードでは以下のスクリプトをroot権限で実行してみてください。(myhostnameのところをそのサーバのホスト名に直すことと、監視サーバのIP指定部分だけ変更します)

cd /root/Packages rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

echo "[dag]" > /etc/yum.repos.d/dag.repo

echo "name=Dag RPM Repository for Red Hat Enterprise Linux" >> /etc/yum.repos.d/dag.repo

echo "baseurl=http://ftp.riken.jp/Linux/dag/redhat/el4/en/\$basearch/dag/" >> /etc/yum.repos.d/dag.repo

echo "gpgcheck=1" >> /etc/yum.repos.d/dag.repo

echo "gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt" >> /etc/yum.repos.d/dag.repo

echo "enabled=1" >> /etc/yum.repos.d/dag.repo

yum -y --enablerepo=dag install munin-node

sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/dag.repo

# munin-node.conf ホスト名指定(29行目)
sed -i 's/#host_name x86-19.phx2.fedoraproject.org/myhostname/' /etc/munin/munin-node.conf

# munin-node.conf 監視サーバからのアクセス許可(36行目)
sed -i 's/127\\.0\\.0\\.1\$/192\\.168\\.0\\.11\$/' /etc/munin/munin-node.conf

service munin-node start
chkconfig munin-node on


【動作確認】
WEBブラウザー上で以下のようなURLを開いてみてください。

http://monitoring.example.com/munin/

うまくいけば以下のような画面にたどり着きます。うまくいかなかった場合はapacheの設定を見直してみてください。

Munin


【監視項目の追加削除を行なう】
muninには監視項目をプラグインで追加削除できます。プラグイン追加といってもリンクを張るだけです。ここでは試しにApacheとMySQLを監視項目に加え、かつsendmailとntpを監視項目から外してみます。各ノード側で以下のスクリプトを実行してみてください。

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

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

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

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

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

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

rm -f /etc/munin/plugins/sendmail*

rm -f /etc/munin/plugins/ntp*

ただしこのままだと各ノードのApacheが必要な情報(server-status)を吐き出してくれないので、Apacheにも設定追加を行ないます。

echo "" >> /etc/httpd/conf/httpd.conf echo "ExtendedStatus On" >> /etc/httpd/conf/httpd.conf

echo "" >> /etc/httpd/conf/httpd.conf

echo "SetHandler server-status" >> /etc/httpd/conf/httpd.conf

echo "order deny,allow" >> /etc/httpd/conf/httpd.conf

echo "deny from all" >> /etc/httpd/conf/httpd.conf

echo "allow from 127.0.0.1" >> /etc/httpd/conf/httpd.conf

echo "" >> /etc/httpd/conf/httpd.conf

sed -i 's/#LoadModule status_module modules\/mod_status.so/LoadModule status_module modules\/mod_status.so/' /etc/httpd/conf/httpd.conf

service httpd graceful


【最後に】
以上のように、muninの導入は手軽なので非常に便利ですが、かゆいところに手が届かない気がするのも事実です。ただ本家のFAQは英語だけど割と親切なので一度目を通してみることをお勧めします。例えば集計間隔を5分以外に変える場合は /etc/cron.d/munin を編集してね、みたいなことが書いてあります。

|

« 急いでいる人のためのMySQLのユーザ権限付与講座 | Main | パスワードなしで他のサーバにSSH接続する方法 »

サーバ・OS」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/32004/49779368

Listed below are links to weblogs that reference サーバリソース監視ツール「munin」をCentOSで手軽に導入する方法 :

« 急いでいる人のためのMySQLのユーザ権限付与講座 | Main | パスワードなしで他のサーバにSSH接続する方法 »