Muninでサーバ監視(インストール)
Muninは、Perlで書かれていてRRD Toolと連携して、サーバに関する様々な情報をグラフ化・HTML化するツールです。
監視項目は、プラグインで簡単に追加できます。
Muninのサイトには、以下のように記載されています。
Munin is a networked resource monitoring tool that can help analyze resource trends and "what just happened to kill our performance?" problems. It is designed to be very plug and play. A default installation provides a lot of graphs with almost no work.
今回は、監視サーバと監視対象(被監視)サーバを別ノードで動かす形でインストールしました。
環境は以下のとおりです。
インストール
- 監視サーバ
CentOSの標準パッケージには、muninパッケージが含まれていないので、"dag"リポジトリの提供しているmuninパッケージを使用します。
$ sudo rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt $ sudo rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm $ sudo yum -y install munin $ sudo yum -y install httpd
- 監視対象サーバ
$ sudo aptitude install munin-node
設定
Muninは監視対象サーバから監視サーバへ定期的に監視情報を送信して、監視サーバ上で情報収集および管理を行ないますので、監視サーバでは監視対象サーバの指定、監視対象サーバでは監視サーバの指定を行えば動きます。
- 監視サーバ
## # /etc/munin/munin.conf ## [munin-node01] address 192.168.0.101 use_node_name yes
デフォルトでは、muninのHTMLファイルは"/var/www/munin"に出力されるので、ApacheのAlias設定を追加し、"http://192.168.0.100/munin"というURLでアクセスできるように設定します。
## # /etc/httpd/conf/httpd.conf ## Alias /munin/ "/var/www/munin/" <Directory "/var/www/munin"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory>
5分毎に実行される"munin-cron"(収集した情報のHTML化とか)は"munin"ユーザ権限で実行されるので、"/var/www/munin"のパーミッションを変更します。
$ sudo chown -Rf munin:munin /var/www/munin
- 監視対象サーバ
## # /etc/munin/munin-node.conf ## host_name munin-node01 allow ^192\.168\.0\.100$
監視項目の追加
Muninの監視項目は、監視対象サーバ上で動くプラグインによって変更できます。
プラグインは"/usr/share/munin/plugins"以下にあり、"/etc/munin/plugins"以下へシンボリックリンクを作成することで監視項目に追加されます。
デフォルトでは以下のようなプラグインが存在します。
$ ls /usr/share/munin/plugins
acpi exim_mailstats munin_graph plugins.history smart_ squid_icp
apache_accesses forks munin_update port_ snmp__df squid_requests
apache_processes fw_conntrack mysql_bytes postfix_mailqueue snmp__fc_if_ squid_traffic
apache_volume fw_forwarded_local mysql_isam_space_ postfix_mailstats snmp__fc_if_err_ swap
apt fw_packets mysql_queries postfix_mailvolume snmp__if_ sybase_space
apt_all hddtemp_smartctl mysql_slowqueries postgres_block_read_ snmp__if_err_ tomcat_access
courier_mta_mailqueue if_ mysql_threads postgres_commits_ snmp__load tomcat_jvm
courier_mta_mailstats if_err_ netstat postgres_locks snmp__processes tomcat_threads
courier_mta_mailvolume interrupts nfs_client postgres_queries_ snmp__sensors_fsc_bx_fan tomcat_volume
cps_ iostat nfsd postgres_space_ snmp__sensors_fsc_bx_temp uptime
cpu ip_ ntp_ processes snmp__sensors_fsc_fan vlan_
cupsys_pages ircu ntp_offset ps_ snmp__sensors_fsc_temp vlan_inetuse_
df irqstats ntp_states psu_ snmp__sensors_mbm_fan vlan_linkuse_
df_abs load open_files sendmail_mailqueue snmp__sensors_mbm_temp vmstat
df_inode loggrep open_inodes sendmail_mailstats snmp__sensors_mbm_volt
entropy memory ping_ sendmail_mailtraffic snmp__users
exim_mailqueue multips plugin.sh sensors_ squid_cache
また、Debianにはmunin-plugins-extraパッケージが存在し、以下のようなプラグインが準備されています。
Debian -- Error
- プラグインの追加
$ sudo ln -s /usr/share/munin/plugins/cpu /etc/munin/plugins/ $ sudo ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_hda $ sudo /etc/init.d/munin-node restart
"/usr/share/munin/plugins"以下のプラグイン名が"_"で終わっているものについては、シンボリックリンク作成時に対象デバイスを追加します。
上記の実行例では"smart_"プラグインを使用する際に、"smart_hda"として対象デバイスを追加しています。
プラグイン追加後は、"munin-node"サービスを再起動します。