2021/05/03(月)munin + nginx で拡大操作画面のグラフが表示されないときのデバッグ技法
大体の設定方法は https://cod-sushi.com/munin-nginx-graph/ に書かれているので、この記事ではデバッグの仕方を中心にメモします。
ちなみに上記URLの spawn-fcgi-munin-graph では以下が省略されているので wget https://files.julienschmidt.com/public/cfg/munin/spawn-fcgi-munin-graph
してからNAMEとか www-data を必要に応じて書き換えるのが無難だと思います。
#! /bin/sh
### BEGIN INIT INFO
# Provides: spawn-fcgi-munin-graph
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: starts FastCGI for Munin-Graph
### END INIT INFO
# --------------------------------------------------------------
# Munin-CGI-Graph Spawn-FCGI Startscript by Julien Schmidt
# eMail: munin-trac at julienschmidt.com
# www: http://www.julienschmidt.com
# --------------------------------------------------------------
# Install:
# 1. Copy this file to /etc/init.d
# 2. Edit the variables below
# 3. run "update-rc.d spawn-fcgi-munin-graph defaults"
# --------------------------------------------------------------
# Special thanks for their help to:
# Frantisek Princ
# Jérôme Warnier
# --------------------------------------------------------------
# Last Update: 14. February 2013
#
# Please change the following variables:
自分の場合はそれでもなお動かなかったので、何時間もデバッグしてようやく動いたという具合です。
拡大操作画面だけグラフが表示されない場合は
/var/log/munin/munin-cgi-graph.log
(パスはOSによって多少異なると思われる)にログが出ているはずです。
自分の環境のログには
[WARNING] Request for graph without specifying domain. Bailing out.
というのが出ていてこれが犯人でした。(ERRORじゃなくてWARNINGだったのでこれが真犯人だと気づくのにもかなり時間がかかりました)
/usr/lib/munin/cgi/munin-cgi-graph
(パスはOSによって多少異なると思われる)からログが出力されていて、このスクリプトを開くと
logger_debug() if defined($ENV{CGI_DEBUG});
というのがあります。この直下に logger_debug();
を挿入してやると munin-cgi-graph
のログにデバッグログが追加されてデバッグが簡単になります。
自分の環境の場合、
Request path is /munin-cgi/munin-cgi-graph
というデバッグログが出ていて、どうやら /munin-cgi/munin-cgi-graph
の munin-cgi-graph
以降のパスが切れているのが拡大操作画面のグラフが表示されない原因だと気づきました。
実際の画像のパスは
munin-cgi/munin-cgi-graph/localdomain/localhost.localdomain/xxx=nnn,mmm.png?&lower_limit=&upper_limit=&size_x=800&size_y=400
という感じです。
なぜ切れたかに関しては、 include fastcgi_params
の fastcgi_params
の設定ファイルを少々書き換えていて
fastcgi_split_path_info ^(/munin-cgi/munin-cgi-graph)(.*);
fastcgi_param PATH_INFO $fastcgi_path_info;
で指定した PATH_INFO
を include fastcgi_params
が上書きしたためでした。 include fastcgi_params
の行をこれらの PATH_INFO
の前に移動して後から
fastcgi_split_path_info ^(/munin-cgi/munin-cgi-graph)(.*);
fastcgi_param PATH_INFO $fastcgi_path_info;
で PATH_INFO
を上書きさせることで正常に拡大操作画面のグラフが表示されるようになりました。