munin AmazonLinuxにインストール
munin2.0.1をAmazonLinuxにインストールしたのでメモ。
(Apacheインストール&muninユーザ、グループは事前に作成している前提)
munin本体
1. muninのtarballをゲット
2. yum で muninに必要なrpm群をダウンロード
(CPANめんどくさい。muninはあくまでソースからw)
yum install --downloadonly --downloaddir=`pwd` munin
3. rpmをインストール(perlのモジュールたち)
rm -f munin*
rpm -Uvh ./*rpm
4. tarball展開
tar xfz munin-2.0.1.tar.gz
cd munin-2.0.1
5. Makefile.config を修正 (お好みで)
PREFIX = /usr/local/munin-2.0.1
CONFDIR = $(PREFIX)/etc
DBDIR = $(PREFIX)/var
LOGDIR = /var/log/munin
STATEDIR = /var/run/munin
6. make&make install
・エラーが出たらperlモジュールが足りない可能性があります。
make && make install
7. Web周りの権限変更 (やらないとグラフが更新されないはずです)
cd /usr/local
ln -s munin munin-2.0.1
chown -R munin:apache /usr/local/munin/var
chown -R munin:apache /usr/local/munin/www
chown -R munin:apache /var/log/munin
chmod -R 775 /usr/local/munin/var
chmod -R 775 /usr/local/munin/www
chown -R 775 /var/log/munin
8. munin.conf 修正
# apacheにfcgi入れたほうが良い
graph_strategy cgi
html_strategy cgi
# CPUのCore数,またはCore数*2くらいが目安(運用しながら調整)
max_processes 2
# a simple host tree (監視対象ノード)
[node01]
address 10.0.0.4
[node02]
address 10.0.0.5
上3つの設定はパフォーマンス(CPU)に関わってくるので、
環境に合わせて下さい。
max_processesは増やすと、情報収集時間は早くなりますが、CPU負荷が
一時的(cronの5分おき)に高くなるので、運用しながら調整して下さい。
9. cron設定
(5分おきにポーリングし、muni-nodeの情報収集&グラフ更新)
crontab -e -u munin
# Munin Server
*/5 * * * * /usr/local/munin/bin/munin-cron 2>&1
監視対象ノード
1. Makefile.config を修正 までは本体と同じ手順。
2. make&make install
make
make install-common-prime install-node-prime install-plugins-prime
3. plugin を自動で配置
/usr/local/munin/sbin/munin-node-configure --shell --families auto,manual,contrib \
| sh -x
ちなみに、このコマンドはサーバの状況を判断して自動で/usr/local/munin/etc
/plugins/に、pluginを設置してくれます。(eth2があればeth2のplugin設置など)
過不足はあるので、要らないものは削除、足りないものはググって設置
して下さい。
githubなどに色々公開されていますし、自作も可能です。
4. munin-node.conf 修正
host_name node01
allow ^10\.0\.0\.100$
allowは、監視サーバ(munin本体)のIPアドレスを設定して下さい。
あとはデフォルトで動くはずです。
5.起動スクリプト設置 (tarballの中にあった気がする・・・)
#! /bin/sh # # munin-node Control the Munin Node Server (formerly Linpro RRD client) # # chkconfig: 2345 90 10 # description: munin node agents # processname: munin-node # config: /etc/munin/munin-node.conf # pidfile: /var/run/munin/munin-node.pid # Source function library. . /etc/rc.d/init.d/functions RETVAL=0 PROCNAME=munin-node mkdir -p /var/run/munin 2>/dev/null #chown munin /var/run/munin # See how we were called. case "$1" in start) echo -n "Starting Munin Node: " #/usr/sbin/munin-node & /usr/local/munin/sbin/munin-node & sleep 1 pkill -0 $PROCNAME RETVAL=$? if [ $RETVAL -eq 0 ] then echo_success touch /var/lock/subsys/munin-node else echo_failure fi echo ;; stop) echo -n "Stopping Munin Node agents: " kill $(cat /var/run/munin/munin-node.pid) RETVAL=$? if [ $RETVAL -eq 0 ] then echo_success rm -f /var/lock/subsys/munin-node else echo_failure fi echo ;; status) status $PROCNAME RETVAL=$? ;; restart|reload) $0 stop $0 start RETVAL=$? ;; *) echo "Usage: munin-node {start|stop|status|restart}" exit 1 esac exit $RETVAL
6. munin-node起動
/etc/init.d/munin-node start
ps -ef|grep munin
netstat -nap|grep 4949
これで、5分おきの本体からのポーリングで情報を収集してくれます。
本体側の /usr/local/munin/var、 /usr/local/munin/www 配下が更新
されている事を確認して下さい。
更新されていない場合、munin-update.log、munin-html.log、apacheのログ
にエラーが吐かれているはずですので、適宜対処して下さい。
経験から言うと、ディレクトリ、ファイルの権限不足、perlモジュール不足
がほとんどです。
Apache設定
1. Apacheはひとまず、以下でOKだと思います。
(NameVirtual&Bassic認証)
Listen 80 <VirtualHost *:80> ServerName ドメイン名など DocumentRoot "/usr/local/munin/www/docs" ErrorLog "/usr/local/httpd/logs/munin-error.log" CustomLog "/usr/local/httpd/logs/munin-access.log" combined Alias /munin/ "/usr/local/munin/www/docs/" <Directory "/usr/local/munin/www/docs/"> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all AuthName "Access" AuthType Basic AuthUserFile /usr/local/munin/etc/munin.htpasswd Require valid-user </Directory> ScriptAlias /cgi-bin/ /usr/local/munin/www/cgi/ <Directory /usr/local/munin/www/cgi/> AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> </VirtualHost>
Apache起動後に作成されるファイル、ディレクトリがあるので、念のため、
findなどで確認し、「7. Web周りの権限変更」をして下さい。
あとは、http://ドメイン名 でアクセスすると、muninの監視画面が表示されます。
今回ははしょりましたが、情報収集、グラフ更新で一瞬CPUを喰うので、
max_processes を変更して様子見して下さい。
Nagiosでmunin本体のCPU監視してますが、タイミングが悪いとアラート飛びまくり
ます。。
max_processes 16 → 2 にしたら治まりましたが、副作用として情報収集&更新に
時間が掛かるので、ここはどちらかを取るかですね。
あとは、取得するグラフ数を減らしたりしても良いですね。
世の中的にはiowaitでCPUを喰うようですが、うちはuserでCPUを喰ってます。
あと、グラフ更新がCGIなので、監視画面にアクセスするとCPUがはねます。。
私の環境ではサーバ1台の全グラフ表示に、45secも掛かっているのでfcgiを今後
入れます。
・補足
Webフロントにnginxを使ったことがありますが、正直文献も少ないし面倒です。
spwan-cgiとか入れるのが大変でした。
設定もトライ&エラーで何とか動かしましたが、Apacheのほうが断然楽です。
・参考
http://d.hatena.ne.jp/rx7/20130308/p2
http://munin-monitoring.org/wiki/CgiHowto2
http://munin-monitoring.org/wiki/CgiHowto
http://pocketstudio.jp/log3/2012/02/09/how_to_use_munin-cgi-graph/
http://www.glidenote.com/archives/1054
以上です。