중요한 시스템 오류가 발생할 경우 이메일 알림 보내기

중요한 시스템 오류가 발생할 경우 이메일 알림 보내기

나는 오류를 찾기 위해 서버에서 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로그 파일을 스캔하는 데 사용합니다. 매 시간마다 새 항목을 검색하고 보고서에 포함되도록 분류될 알려진 행뿐만 아니라 알 수 없는 행을 모두 나에게 이메일로 보냅니다.

로그 파일을 보고 로그 파일에 내용이 포함되어 있으면 이메일을 보낼 수 있는 도구도 있습니다.

답변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
&  

관련 정보