나는 오류를 찾기 위해 서버에서 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
&