munin入れてみた。
最近TwitterIrcGatewayが爆発したりトラフィック量がすごいという話があったので監視するやつ入れた。
munin
sudo aptitude install munin munin-node
sudo vim /etc/munin/munin-node.conf
# Which port to bind to; host * user munin group munin setsid yes
mysql が途中で切れる問題。
http://gigazine.net/index.php?/news/comments/20070930_munin_mysql_graph_blank/
http://nullpopopo.blogcube.info/2008/05/munin-ip.html
[mysql*] # env.mysqlopts --defaults-extra-file=/etc/mysql/debian.cnf env.mysqlopts -u root -pパスワード env.mysqladmin /usr/bin/mysqladmin
- pのすぐ後ろにパスワードつなげて書かないといけないのね。
sudo chwon -R munin:munin /var/www/munin sudo /etc/init.d/munin-node restart
バーチャルホストとか設定して
http://localhost/munin/へアクセス。
見た目こんな感じ
munin1 on Flickr - Photo Sharing!
このままじゃ負荷が高くなったのを指くわえて見てるだけなのでシェルスクリプトで再起動をできるように適当に書いた。(というか教えてもらった。
#!/bin/bash TIGDIR=/home/kenan/TwitterIrcGateway while true do Alive=`pgrep -f TwitterIrcGateway | wc -l` if [ $Alive = 0 ]; then mono $TIGDIR/TwitterIrcGatewayCLI.exe --interval=150 --enable-replies-check=true --interval-replies=50 --set-topic-onstatuschanged=true --encoding=utf-8 --channel-name=TimeLine & time=`date "+%Y/%m/%d %H:%M"` echo "restart $time" >> /home/kenan/tigps.log echo `w | head -n 1 | awk -F"," '{print $4"," $5"," $6}'` >> /home/kenan/tigps.log fi CPUusage=`ps xu | grep TwitterIrcGateway | grep -v grep | head -n 1 | awk '{print $3}'` if [ `echo "$CPUusage > 100" | bc` == 1 ]; then pgrep -f TwitterIrcGateway | xargs kill time=`date "+%Y/%m/%d %H:%M"` echo "killed [ cpu usage 100% over ] $time" >> /home/kenan/tigps.log echo `w | head -n 1 | awk -F"," '{print $4"," $5"," $6}'` >> /home/kenan/tigps.log fi sleep 5 done
上がプロセスチェックして再起動するやつで、下がCPUの使用率が100%超えたらプロセス殺すやつ。
再起動するシェルはゆーたさんに以前教えてもらえたのでそれを流用しました。
使用率見てプロセスを殺すやつは、一応コマンド上は使用率の数値は取れてるので一応通るとは思いますがこれを書いてから未だにTIGが暴走したことないのでよくわかりません。
まあ、うちのマシンはCPU使用率が100%を超えて200%まで使われてしまうアプリがmonoで動かすTIGだけなので上のスクリプトでいいかなと。
とかなんとかやってたらswirhenさんがいいものを書いてくれました。
TIGのCPU使用率が突然爆発して戻らなくなるのでなんとかした
こっちの方が無駄な処理が少なくて大変良いですね。