重大なシステムエラーが発生したときに電子メールで警告する

重大なシステムエラーが発生したときに電子メールで警告する

サーバー上の 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
&  

関連情報