私の会社には、ファイルにログインできるさまざまな異種サービスがありますが、たとえば、自分でメールを送信することはできません。さらに、Apache httpdとTomcat、Postgres、Upstart、およびデフォルトで他のさまざまなソースからファイルにログインしています。 Syslog。これらすべてのサービスの常識はファイルを使用することですが、ログサイズ、メッセージの形式、ローテーションなどは異なります。
だから私が探しているのは、構成されたファイルに焦点を当て、エラーメッセージ付きのメールを送信するためにいくつかの正規表現などに対してそれらのファイルに新しく追加されたコンテンツを照合するトリガーを提供するログモニターです。
トリガーを使用したログファイルの監視に重点を置き、たとえば次のようにある程度効率的にする、スタンドアロンの何かが欲しいです。ファイルシステムイベントを使用して変更されたファイルの通知を受け取り、ファイル全体などを解析するのではなく、変更時にファイルの終わりのみを読み取ります。トリガーを定義するにはある程度の柔軟性が必要ですが、それに加えて、ログメッセージを含むメールを任意のアドレスに送信するだけで済みます。ローカルのsendmailをサポートするだけで十分であり、それらのメールのテンプレート機能はほとんどありません。複数のエラーメッセージの認識などはあまり気にしません。
私はそのトピックについて一日中読み、Graylog、Logstash、Nagios/Zabbixのプラグインなど、さまざまなソリューションを見つけました。しかし、私が読んだことから、これらはすべて私の環境に深刻な欠点があります:GraylogとLogstashセットアップと依存関係が重く、ログの検索など、必要のない機能を提供しているようです。私は現在、NagiosとZabbixも使用しておらず、ログファイルを時間ベースなどでポーリングしているように見えるため、ログ監視プラグインがどのように機能するかわかりません。さらに、 Zabbixの設定 も維持するのが少し難しいようです。
それで、もっと焦点を絞った利用可能なものはありますか?
Monit は、他の質問に対する@shodanshokのヒントに従って、有望に聞こえます。
check file syslog with path /var/log/syslog
ignore content = "monit"
if content = "^mrcoffee" then alert
SwatchDog は興味深いようですが、古くて保守されていません 深刻な未解決のバグがあります 。
logster は興味深いようですが、Pythonは私のお気に入りの選択肢ではなく、トリガーではなく特別な出力を提供することに重点を置いているようですアクション。 重大なバグ もある可能性があります。