重要なシステムエラーが発生した場合に電子メール通知を送信する

重要なシステムエラーが発生した場合に電子メール通知を送信する

私はエラーを見つけるためにサーバーからsyslogをgrepし、この行が私が探しているものとは何の関係もないことを知っていましたが、十分に驚くべきことでした。

kernel: [8456851.218586] ata2.00: irq_stat 0x08000000, interface fatal error
kernel: [8456851.220076]          res 50/00:00:80:45:c1/00:00:08:00:00/e0 Emask 0x10 (ATA bus error)

このようなエラーが発生したときにサーバーから電子メールで通知を受け取るにはどうすればよいですか?少なくともすべてのドライブエラーをキャッチする必要があります(最も重要なのは、停電およびHDDエラーを処理するためのサーバーH / WIの場合)。ただし、差し迫った失敗を示す可能性が高い他のすべての項目は、電子メールを慎重に調べることを中止するほど誤った肯定があまり発生しない限り、電子メールで送信する価値があります。

答え1

私はlogcheckログファイルをスキャンするために使用します。 1 時間ごとに新しいアイテムを検索し、レポートに含まれるように分類される既知の行だけでなく、不明な行をすべてメールで送信します。

ログファイルを表示してログファイルに内容が含まれている場合は、電子メールを送信できるツールもあります。

答え2

でこのommailモジュールを使用していますrsyslog。構成は簡単です。複数のSMTPサーバーを使用して警告メールを送信できます(障害対策)。

$template mailSubject,"EMERGENCY:"
$template mailBody," %$NOW% %timereported:8:15%  %programname%: %msg%\n"

$ActionMailSMTPServer                   mail1.example.com
$ActionMailFrom                         [email protected]
$ActionMailTo                           [email protected]
$ActionMailSubject                      mailSubject
$ActionExecOnlyOnceEveryInterval        60
*.emerg                                 :ommail:;mailBody

# begin backup action, carried out if primary fails
$ActionExecOnlyWhenPreviousIsSuspended  on
$ActionMailSMTPServer                   mail2.example.com
$ActionMailFrom                         [email protected]
$ActionMailTo                           [email protected]
$ActionExecOnlyOnceEveryInterval        60
&  

関連情報