메시지 전달 실패에 대한 정보를 보내도록 SEC(Simple Event Correlator)를 구성하는 방법

메시지 전달 실패에 대한 정보를 보내도록 SEC(Simple Event Correlator)를 구성하는 방법

내 로그 파일에는 다음 3개의 로그 항목이 포함되어 있습니다.

2017-11-16 15:50:45 1eFLV7-0003so-Cd <= <> R=1eFLV7-0003sZ-4v U=Debian-exim P=local S=1853 T="Mail delivery failed: returning message to sender" from <>
2017-11-16 15:50:45 1eFLV7-0003so-Cd => [email protected] R=dnslookup T=remote_smtp H=smtp-51.xxx.com [xxx.xx.xx.xx] X=TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128
2017-11-16 15:50:45 1eFLV7-0003so-Cd Completed

"메일 전달 실패*"가 나타날 때 이메일을 받고 싶습니다.[이메일 보호됨]"라는 메시지가 로그 파일에 나타납니다.

이 목표를 어떻게 달성할 수 있나요?

어쩌면 SEC - Simple Event Correlator가 도움이 될 수 있을까요?

하지만 아래 구성(모드)은 저에게 맞지 않습니다.

type=SingleWithThreshold
ptype=RegExp
pattern=Mail delivery failed: returning message to sender*[email protected]
desc=Problem with mail [email protected]
action=pipe '%s' /usr/bin/mail -s 'ERROR SEND MAIL' [email protected]
window=1
thresh=1

답변1

* 를 사용하고 SingleWithThreshold있으며 *가 두 줄 모두 일치하기를 바라고 있지만 그렇지 않습니다. 노력하다 Pair.

(테스트되지 않은) 것과 같은 것,

type=Pair
ptype=RegExp
pattern=Mail delivery failed: returning message to sender
ptype2=RegExp
[email protected]
desc2=Problem with mail [email protected]
action2=pipe '%s' /usr/bin/mail -s 'ERROR SEND MAIL' [email protected]
window=1

무엇을 시도하든 개행 문자로 구분된 두 줄의 텍스트가 있다는 사실을 처리해야 합니다. 많은 텍스트 처리 도구는 개별 줄에서 작동하며 별표 문자는 다음 줄을 확인하여 이 문제를 해결할 수 없습니다.

답변2

내가 이해한 바로는 동일한 입력 파일에서 발생한 두 개의 연속 라인을 일치시키려는 것입니다. 이 경우 가장 간단한 해결책은 RegExp2 모드를 사용하는 것입니다. 실제로 SEC는 특별한 명령줄 스위치 없이 항상 여러 줄 모드로 실행되며, 패턴과 일치하는 줄 수는 "ptype" 키워드를 통해 설정됩니다. 다음은 도움이 될 수 있는 몇 가지 규칙입니다.

type=Single
ptype=RegExp2
pattern=Mail delivery failed: returning message to sender.*\n.*admins@xxx\.com
desc=Problem with mail [email protected]
action=pipe '%s' /usr/bin/mail -s 'ERROR SEND MAIL' [email protected]

이 규칙에서 "RegExp2"는 "연속된 2줄과 일치하는 정규식"을 의미합니다. 기본적으로 이러한 줄은 다음에서 와야 합니다.동일한파일이지만 --jointbuf 명령줄 옵션은 이 제한을 해제합니다. 그러나 일반적인 상황에서는아니요여러 줄 일치를 위해 모든 소스의 이벤트를 동일한 입력 버퍼에 넣기 때문에 이 옵션을 사용하려고 하지만 이벤트 순서는 정의되지 않습니다.

위의 예제 규칙에서 정규 표현식도 확인하세요.

Mail delivery failed: returning message to sender.*\n.*admins@xxx\.com

.*는 기본적으로 줄바꿈과 일치하지 않으므로 표현식에서는 \n을 사용하여 줄바꿈과 일치시킵니다.

마지막으로, SEC에 관한 추가 질문이 있으면 메일링 리스트(https://sourceforge.net/p/simple-evcorr/mailman/simple-evcorr-users/), 숙련된 사용자가 많이 팔로우하고 있으며 유사한 질문에 적시에 답변할 수 있기 때문입니다.

감사합니다, 리스토

관련 정보