syslogdに特定のログメッセージをメールで送信するにはどうすればよいですか?


13

syslogdがたとえばerr優先度以上の何かをログに記録するたびにメール通知を受け取りたいと思います。これがBSD互換のsyslogデーモンであると想定します。

  • これは達成できますか?
  • シェルスクリプトに名前付きパイプを使用する必要がありますか?
  • 他にどのような解決策がありますか?

回答:


6

名前付きパイプを使用するソリューション次に示します。Debian用に設定されていますが、BSD用に変更できるはずです。


私のメール送信をデーモン化できるように、これに基づいてソリューションを作成することになりました。リンクをありがとう。
ジェイソン

これはあまりにもハッキングのようです。それを行うための安定したオープンソースアプリがあるのに、なぜスクリプトを書くのに時間を費やすのでしょうか?(リアルタイムでも)。*私の返信を参照してください。
sucuri

2
ハックではありません。これは、この種のことがしばしば行われる方法です。
追って通知があるまで一時停止します。

6

syslogd(8)による通知

私のOpenBSDサーバーでは、ファシリティlocal1を使用するWebアプリケーションからの重要なメッセージを記録し、電子メールで送信します。これを実現するための/etc/syslog.confを次に示します。

local1.err    /var/log/example.com
local1.err    |while read log; do echo "$log" | /usr/bin/mail -s SYSLOG me@example.com; done

whileループはsyslogdから各行を無限に読み取り、それをエコー経由でメールにパイプすることに注意してください。これは重要。echoがその行を出力すると、パイプを終了し、ログメッセージを電子メールで送信できるようにEOFをメールで送信します。

つまり、次のようにsyslogd経由でメールに直接パイプすることはできません。

local1.err    |/usr/bin/mail -s SYSLOG me@example.com

syslogdは、パイプ自体が終了するかHUPシグナルを送信するまでパイプへの書き込みを続けるため、その時点でメールは1つの大きなメールでログメッセージのセット全体を送信します。

newsyslog(8)による通知

cronでnewsyslogをスケジュールすることは、メッセージをより低速で、または一括して取得する別の方法です。

たとえば、ログメッセージの毎日のメールダイジェストが必要な場合は、Mフラグを設定し、/ etc / newsyslog.confでモニターのメールアドレスを指定します

# logfile_name        owner:group  mode  count  size  when  flags  monitor
/var/log/example.com  root:wheel   640   7      *     24    M      me@example.com

次に、crontabでnewsyslogをスケジュールします。

# minute hour  mday  month  wday  command
0        *     *     *      *     /usr/bin/newsyslog
1-59     *     *     *      *     /usr/bin/newsyslog -m

newsyslog(8)-mオプションの状態:

監視モード。フラグに「M」のマークが付いているエントリのみが処理されます。監視対象の各ログファイルについて、-mフラグを指定してnewsyslogを最後に実行してからのログ出力は、モニター通知セクションにリストされているユーザーにメールで送信されます。


3

logcheckまたはlogwatchをご覧ください。Logcheckは、パターンのセットに一致しないログ行を1時間ごとにメールで送信します。おそらくもっと頻繁に実行できると思います。ログファイルを監視することでそれを行うツールは知りませんが、それを行う何かがあると確信しています。


ええ、ログファイルが書き込まれた後、ログファイルを監視および解析するのではなく、ログプロセスにフックするだけで、すぐに通知を受け取ることができます。
ジェイソン

1

OSSECを使用します。ログをリアルタイムで監視し、特定のイベントが一致したときに電子メール(またはその他の手段)で簡単にアラートを送信できます。使いやすく、スケーラブルでオープンソース。

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


これはアプリケーションにとってはやり過ぎかもしれません。ただし、パッケージには多くの機能があり、必要な場合は適切な場合があります。
追って通知があるまで一時停止します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.