私はエラーを見つけるためにサーバーから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
&