web-dev-qa-db-ja.com

ログファイルエントリの電子メールアラートを送信しますか?

Linuxでは、ログファイルを自動的に監視し、特定の文字列が表示された場合にメールで通知する簡単な方法は何ですか?特定の失敗をログファイルに記録するアプリケーションがありますが、失敗時にアラートを送信したりスクリプトを実行したりする組み込みの方法がありません。私はtail -fといくつかのシェルスクリプトで何かをリギングできると思いますが、既存の保守されたツールが存在する場合は、それを使用したいと思います。

5
davr

tenshi と呼ばれるツールを見つけました。このツールは、自分が必要とすることを正確に実行しているようです。これはデフォルトのDebianリポジトリであるNiceに含まれていますが、残念ながらRHEL/CentOSのものには含まれていません(サーバーとして両方のOSが混在しています)。

2
davr

このページに記載されているオプションのいくつかをチェックして、はるかに単純なものを使用することになりました: swatch

これらの他のシステムは、既存のシステムログを処理したり、出力を制御できないソフトウェアを処理したりするのに最適です。まだメール通知を行うためのコードをたくさん書きたくありませんでした。だから私はちょうどこのような見本ファイルを作成しました:

watchfor /./
    mail addresses=me\@example.com:other\@example.com,subject=log_alert

そしてそれを始めた

swatch -c send-me-everything.swatch -t /my/app/urgentevents

これは大雑把ですが、ログファイルの出力を制御しているので、これ以上複雑なものは必要ありません。

7
William Pietri

ヘビーウェイトソリューション( Zenoss )に進む前は、 logcheck を使用していましたが、これはDebianの一部ですが、他のディストリビューションにも簡単に移植できます。 Gentooで使っていました。 RHELのようなディストリビューションには logwatch が付属しており、これは同様のことを行います。

3
Kamil Kisiel

最良の方法は、ログ分析プログラムを使用することです。

たとえば、OSSECは無料/オープンソースであり、必要な数のログファイルを監視し、特定のイベントの電子メールアラート(またはアクティブな応答)を生成できます。

リンク: http://www.ossec.net

シェルスクリプトをハッキングするのは楽しいことですが、何年にもわたって開発されている成熟したプログラムよりもはるかに安定していません。さらに、将来、スクリプトを拡張したり、トリガーを追加したりする必要がある場合は、さらに複雑になります。 OSSEC(およびその他のツール)は、このフレームワークを自動的に実行します。

2
sucuri

回答がすでに受け入れられていることは知っていますが、rsyslogははるかに堅牢で、syslogを使用しないアプリケーション向けに、フィルタリング、SMTPアラート、および非syslogベースのファイル監視機能が組み込まれています。これは、Ubuntu10.xでの標準のsyslog実装になりました。

2
gravyface

LoFiMo (ログファイルモニター)Sourceforgeで開始するか、 NuHe でうまくいくかもしれませんが、あまり詳しくありません。

2
NoahD