muninで443ポートを監視する意味はない

LINEで送る
[`evernote` not found]

個人的なメモですが、ここに言及している情報が皆無だったのでブログに記載の上で記録として残しておきます。

muninでapacheのグラフを見ると「port 80」と書かれているので、ひょっとして「port 443」もあるのかなと思ってネット上で情報収集。すると必ず引っかかるのが「./plugin-conf.d/munin-node に以下の内容を記載しろ」というもの。

[apache*]
env.ports 80 443

でも、実はこの設定をして「munin-run apache_accesses auto」でチェックしても以下のようになり、443ポートからはデータを取得出来ません。

accesses80.value 1267
accesses443.value U

何故かというと、443ポートにhttpでアクセスする為、apacheが400(Bad Request)を返すからなんです。

では、どうしたら良いのでしょうか?

実は、デフォルトの設定で80と443の両方を合わせたデータが取得できているため、何もいじる必要はないのです。

理由は簡単。80も443もhttpdという一つのプロセス(実際は子プロセスが幾つかできますが)で処理されている為、別々に取得するようにmuninのプラグインが作られていないからなんですね。

では、何で先に挙げたような設定方法が出て来るのでしょうか?

もちろん、古い情報が出てくると言うこともあります。昔はhttpd(80)とhttpsd(443)という別々のプロセスを上げていた時代があったんですね。この場合だと、両方にアクセスしないと正確なデータの取得ができません。でも、今は時代が変わってhttpdが80も443も処理する為に意味がなくなりました。その事に気が付いてない人が「調べたら設定変更しろと書かれていたからやってみた」という感じで書いているみたいです。実際、「設定を変えてみたけど取得出来ない」と書かれている情報もあったりしますし、設定をいろいろ変えて80だけ、443だけという形でデータを取得しても同じものが返ってくるだけです。

ちなみに、ソースを見ると「env.urlオプションが設定されていなければ、デフォルトで http://127.0.0.1:%d/server-status?auto(%dは指定されたポート番号。デフォルトは80です。)でアクセスする」ようになってますので、443を指定してもhttpでアクセスしてしまうんですね。試しにenv.urlにhttpsなアドレスを指定すると、今度は80の方が取得出来なくなりますので、同時にhttpなアドレスとhttpsなアドレスの両方からデータを取得することはできません。

と言う事で、結論は「muninでapacheのデータを取得するのに80と443を指定することには意味がない」と言うことになります。

LINEで送る
[`evernote` not found]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です