
我在伺服器上 grep 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
掃描我的日誌檔。它每小時掃描一次新條目,並透過電子郵件將所有未知行以及已知行發送給我,這些行將被分類包含在報告中。
還有一些工具可以查看您的日誌文件,並在日誌文件包含某些內容時向您發送電子郵件。
答案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
&