
サーバー上の syslog でエラーを検索していたところ、探していたものとはまったく関係ないが、十分に警告となる次の行に気づきました。
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)
同様のエラーが発生したときに、サーバーが電子メールで警告してくれるようにするにはどうすればよいでしょうか。少なくともすべてのドライブ エラーを検出する必要があります (サーバー H/WI に関しては、電源の中断と HDD の障害に何よりも対処する必要があります)。ただし、今後の障害を示す可能性が高いその他のものはすべて、誤検出が多すぎてこれらの電子メールを注意深く確認しなくなることがない限り、電子メールで通知する価値があります。
答え1
ログ ファイルをスキャンするために使用しますlogcheck
。1 時間に 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
&