- [MUNIN+Ubuntu14.04+nginx] サーバやMySQLの状態を監視する方法
- [Munin] MuninでOpen VZゲストOSのメモリ状態を監視する
- [MUNIN] Pythonプラグインで文字コードエラーが発生する際の解決方法
- [Munin] Ubuntu+Nginx+Munin 拡大グラフが表示されないときの対処方法
現象
Muninは、グラフをクリックすると拡大操作ができます。
できるはずなのですが、画像が表示されず、以下のようになっていました。
今回この現象を解決することができたので、手順を記します。
手順は書きますが、細かいなどについては調べきれてないところもあるため今回は省いています。ご了承ください。
手順
apt-get
$ sudo apt-get install spawn-fcgi
$ sudo apt-get install libcgi-fast-perl
Nginx設定
/etc/nginx/sites-available/default
に以下を追記します。
munin-cgi
の部分は、バージョンにより、cgi-bin
になる場合があります。うまく動かない場合、こちらも試してみてください。
location ^~ /munin-cgi/munin-cgi-graph/ {
access_log off;
fastcgi_split_path_info ^(/munin-cgi/munin-cgi-graph)(.*);
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/var/run/munin/fcgi-graph.sock;
include fastcgi_params;
}
スクリプトの設定
スクリプト作成
$ sudo vim /etc/init.d/spawn-fcgi-munin-graph
spawn-fcgi-munin-graphをそのまま持ってくればよいですが、Nginxの設定と併せてNAME
を書き換えます。
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=fcgi-graph
PID_FILE=/var/run/munin/$NAME.pid
SOCK_FILE=/var/run/munin/$NAME.sock
SOCK_USER=www-data
FCGI_USER=www-data
FCGI_GROUP=www-data
FCGI_WORKERS=2
DAEMON=/usr/bin/spawn-fcgi
DAEMON_OPTS="-s $SOCK_FILE -F $FCGI_WORKERS -U $SOCK_USER -u $FCGI_USER -g $FCGI_GROUP -P $PID_FILE -- /usr/lib/munin/cgi/munin-cgi-graph"
# --------------------------------------------------------------
# No edits necessary beyond this line
# --------------------------------------------------------------
if [ ! -x $DAEMON ]; then
echo "File not found or is not executable: $DAEMON!"
exit 0
fi
status() {
if [ ! -r $PID_FILE ]; then
return 1
fi
for FCGI_PID in `cat $PID_FILE`; do
if [ -z "${FCGI_PID}" ]; then
return 1
fi
FCGI_RUNNING=`ps -p ${FCGI_PID} | grep ${FCGI_PID}`
if [ -z "${FCGI_RUNNING}" ]; then
return 1
fi
done;
return 0
}
start() {
if status; then
echo "FCGI is already running!"
exit 1
else
$DAEMON $DAEMON_OPTS
fi
}
stop () {
if ! status; then
echo "No PID-file at $PID_FILE found or PID not valid. Maybe not running"
exit 1
fi
# Kill processes
for PID_RUNNING in `cat $PID_FILE`; do
kill -9 $PID_RUNNING
done
# Remove PID-file
rm -f $PID_FILE
# Remove Sock-File
rm -f $SOCK_FILE
}
case "$1" in
start)
echo "Starting $NAME: "
start
echo "... DONE"
;;
stop)
echo "Stopping $NAME: "
stop
echo "... DONE"
;;
force-reload|restart)
echo "Stopping $NAME: "
stop
echo "Starting $NAME: "
start
echo "... DONE"
;;
status)
if status; then
echo "FCGI is RUNNING"
else
echo "FCGI is NOT RUNNING"
fi
;;
*)
echo "Usage: $0 {start|stop|force-reload|restart|status}"
exit 1
;;
esac
exit 0
スクリプト権限設定
実行権限を割り当てます。
$ sudo chmod a+x /etc/init.d/spawn-fcgi-munin-graph
起動時のスクリプト実施設定
$ sudo chmod a+x /etc/init.d/spawn-fcgi-munin-graph
$ update-rc.d spawn-fcgi-munin-graph defaults
各ファイルの権限確認
以下のフォルダ・ファイルの所有者・グループがwww-data
になっていることを確認してください。
$ ls -l /var/lib/munin/cgi-tmp
drwxr-xr-x 3 www-data www-data 4096 5月 21 03:13 munin-cgi-graph
$ ls -l /var/log/munin/munin-cgi-graph.log
-rw-rw-r-- 1 www-data www-data 59370 5月 21 03:12 /var/log/munin/munin-cgi-graph.log
もしmunin
などになっている場合、chown
コマンドで修正します。
$ sudo chown www-data:www-data /var/lib/munin/cgi-tmp
$ sudo chown www-data:www-data /var/log/munin/munin-cgi-graph.log
再起動して動作確認
マシンを再起動し、アクセスしてみます。
$ sudo reboot
おわりに
動かないときは?
- Nginxの設定とスクリプトの設定を確認しましょう。
- ソケットファイルの名前が一致していますか?
-
/var/log/nginx/error.log
を確認してみましょう。
- スクリプトファイルの動作確認をしましょう。
-
sudo /etc/init.d/spawn-fcgi-munin-graph start
実行後、グラフは表示されますか? - 「起動時のスクリプト実施設定」は正しく行えていますか?
-
参考URL
Dynamic generation of munin graphs and html / nginx
Munin dynamic graph zoom (dynazoom) not working (Nginx, PHP-FPM) – Stack Exchange
spawn-fcgi-munin-graph
- [MUNIN+Ubuntu14.04+nginx] サーバやMySQLの状態を監視する方法
- [Munin] MuninでOpen VZゲストOSのメモリ状態を監視する
- [MUNIN] Pythonプラグインで文字コードエラーが発生する際の解決方法
- [Munin] Ubuntu+Nginx+Munin 拡大グラフが表示されないときの対処方法