2009-03-20 7 views
5

私たちのチームには、手動で実行するプロセスが数多くありますが、これは何日も実行される可能性があります。プロセスは、多数のエンティティ(Webページ、データベース行、イメージ、ファイルなど)に対してさまざまな処理を行います。当然のことながら、時折障害が発生し、これらの障害を正常に処理して処理を続けるように設計または処理しなければならないため、ジョブ全体がダウンすることはありません。長時間実行されているプロセスの警告/エラーを追跡するベストプラクティスは何ですか?

問題の特定のプロセスによっては、失敗率、重大度および緊急性が異なります。稀ではあるが重要なエラーが発生した場合に電子メールを送信する場合もあれば、ログに記録したり移動したりする場合もあります。

問題はどこにでも散在するさまざまなエラー処理コードがあり、誰もログに戻ってログを読むことがないため、何が問題になったのか誰も知りません。単純に電子メールが多すぎるので、すべての問題について電子メールに設定することはできません。

これらは長時間実行されているプロセスですが、SNMPやNagiosのようなものがうまくフィットすると思われるデーモンはありません。確かにこれはかなり一般的な問題ですが、私は多くのソリューションをオンラインで見つけることはできません。私は人々がlog4j(または他の同様のロギングパッケージ)を使用してデータベースにログオンすることについて話していると聞いていますが、それは正しい方向の一歩かもしれないようですが、確かにそこにもっと洗練されたソリューションがあります。 ?私は、あなたのロガーがデータベースにイベントを書き込む場所を想像しています。リアルタイムでどのプロセスでエラーが発生しているのか、特定のパターンなどの電子メールアラートを設定できるNagiosのようなWebインターフェイスがあります。

このようなことがありますか?そうでない場合は、同様の問題にうまく対処するためにどのようなアプローチを使用しましたか?

(私たちのコードベースの大部分はPythonで書かれていますが、私はこのアイデアをうまく​​実装していないのは悩みの種ではないと思います。

更新:ちょうど私が探しているもののようなチェーンソーを見ていましたが、デスクトップアプリケーションではなくウェブアプリケーションにしたいと思いますし、警告機能があります。

更新:私はちょうど私が考えていたラインの両方に沿っているhoptoadappexceptionalを発見しました。

答えて

0

私はあなたがここに必要なものは、あまりにもあなたのニーズにうまく合うように既に造られたものを見つけるのには具体的ではないと思います。しかし...

あなたがlog4jについて説明したことは素晴らしいようです。DBにログされたエラーが発生すると、単純なWebアプリケーションでは、それらを見て、フィルタリングし、パターンを設定して、特定のアプリケーション、エラーレベルのしきい値、正規表現を含むメッセージなど

また、DBに接続するいくつかの小さなcronジョブが必要です(前回のチェック時に基づいて)それらを送り出す。

これをすべてコーディングするのは最悪でも数日かかることはありません。価値がある場合、100%カスタムツールが完成します。

1

これは、エラーログをダイジェストするのに有効な解決策のようです。すべてのナイトは、プロセスがエラーログを通過し、その日のエラー/警告/ etcをロールアップし、それらを電子メールに入れます。必要に応じて、重大度やアプリケーション別にグループ化することもできます。

最後に、あなたの指先ですべての情報を1日に1回だけ受け取ることができます。 「迅速な」ソリューションではなく、長期的には非常に有効なソリューションです。

これにはリアルタイムオプションもありません。しかし、これからもっとリアルタイムのソリューションに成長させることができます。ログファイルの変更を監視し、最後のエラーメッセージに基づいていくつかのルールを実行するプロセスを作成するのは難しくありません。それは難解な構文解析です。 ;) がんばろう。

関連する問題