
나는 오류를 찾기 위해 서버의 syslog를 greping하고 있었고 내가 찾고 있던 것과는 아무런 관련이 없지만 충분히 경고하는 다음 줄을 발견했습니다.
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
&