MuninでHTTPSのnginx_status取得が失敗する時の対処方法

MuninでHTTPSのnginx_status取得が失敗して、グラフが描画されない時の対処方法を書く。
Munin version 2.0.25

nginx.confが80ポートのHTTPの時は問題なくグラグが描画された。

これを443ポートのHTTPSに変更すると、グラフが描画されなくなった。

このサーバでmunin-runを実行してmuninの挙動を確かめてみる。

nginx_statusプラグインもnginx_requestプラグインも取得した値が数値ではなくUという文字列になってしまった。これらのプラグインのコードを確認してみると、URLがHTTPを前提として動いているため、HTTPSにアクセスできていないことがわかる。

環境変数urlをhttps://localhost/nginx_statusに変えてみるとうまく動く。

環境変数urlだけでなく、環境変数 portも変えた方がいい。Nginx requestsグラフの表記がrequests port 80になっているので、443に修正するために環境変数portも指定してあげる。

先ほどはコマンドを打って環境変数を設定したが、環境変数をMunin上で設定するには/etc/munin/plugin-conf.d/munin-nodeenv.変数 値で記載する。

記載が終わったらmunin-nodeを再起動する。

munin-nodeでmunin-runで実行して確認できたら、munin本体からもtelnetやncを使って4949ポートにつなぎ、fetchを発行して確認してみる。
ちなみに、munin-node側ではmunin-node再起動しなくてもmunin-runで環境変数が適用された正しい値が取れることが確認できるが、munin本体から確認するときは、munin-node側でmunin-node再起動していないとfetchで環境変数が適用された正しい値を取れない。もし環境変数も設定ファイルに正しく書いて、munin-runで値が取れることを確認しているのに、グラフ描画が行われない場合は、service munin-node restartを実行しておらず、munin本体から値が取れていない状況かもしれない。

確認しているうちに、munin本体のcronが動き、グラフ描写も始まる。

-Linux
-