web-dev-qa-db-ja.com

muninを使用してnginxからHTTP応答エラーコードを監視する方法は?

私はMuninを使用して本番環境のNginxサーバーを監視し始めています。グラフ化に特に興味があるのは、エラーの割合です。コードが50倍の範囲のHTTP応答です。私は疑問に思っています:

  1. これを行うための既存のプラグインはありますか?
  2. あるいは、自分のプラグインを作成するための最良のアプローチは何でしょうか。アクセスログの解析?
2
David Eyk

まあ、そのような動物は存在しなかったので、 私はそれを想起させました

最新のコードは 要点 にあります。楽しい。

4
David Eyk

すぐに使用できるOSSソリューションを知りません。私は個人的にこの種のプラグインを作成しましたが、コードを共有できません。それは2つの段階です:

  1. ログパーサーを使用して、新しい統計(tail -fなど)を収集します。 Nginxログ形式を定義できるため、必要な値を自由にログに記録できます。ステータスコード、アップストリームリクエスト時間など。
  2. 統計をMuninに報告するMuninプラグイン。

これら2つの部分の間で状態を共有する必要があります。いくつかの選択肢があります。メモリ内(ログパーサーの実装は、すべての統計をメモリに格納するイベント駆動型デーモンでした)。 MongoDB; Redis;伝統的なMySQL;共有メモリ;等.

1

したがって、 このリンク はmuninリポジトリのnginxプラグインへのリンクです。 (非常に簡単な)検索の後、あなたがやりたいことをするために明白なもの、またはウェブ上で何かを見つけることができません。

私はいくつかのmuninプラグインを作成しましたが、それほど難しくはありません。あなたはあなたが望むものを達成するためにそれを書くことができるはずです。現在のログの50xエラーの数を数え、それを最小値0のタイプDERIVEとして返します。こうすることで、単一の値を返すだけで、rrdtoolが増加した場合にそれを処理できます。注-これは、1日の終わりに130個の50xエラーがあり、ログがローテーションされてすぐに131個のエラーが発生した場合、グラフはそれが1の値であると見なす場合に問題になります。

もう1つのオプションは、ログファイル名に対して自分でカウントを追跡し、実際の増加を返し、ログが回転したときにリセットすることです。

0
EightBitTony