2017-01-07 6 views
1

Postfix를 사용하고 있으며 메일을 보낸 후 메일 로그를 구문 분석해야합니다. 지금 필자는 꼬리 플러그인을 사용하여 Fluentd를 사용하여 Postfix 로그를 구문 분석하도록 노력하고 있습니다.POSTFIX 로그 파싱 및 ElasticSearch로 보내기

제가 직면 한 문제는 꼬리 플러그인의 multiline 옵션을 사용하여 구문 분석 할 수 없다는 것입니다. 정규식을 사용하여 개별적으로 구문 분석 할 수 있지만 함께 사용할 수는 없습니다. 이는 로그가 본질적으로 비동기이며 로깅 할 정보가있을 때마다 각 프로세스가 파일에 로깅한다는 사실 때문일 수 있습니다. 이 목적을 위해 루비 스크립트를 작성할 계획이지만 시간이 많이 걸릴 수도 있습니다.

Ruby/Perl을 모르면 Fluentd 용 스크립트/사용자 정의 플러그인을 작성하는 것보다 나은 해결책이 있습니까?

Jan 5 09:02:48 localhost postfix/cleanup[5978]: 1733D16A90A: message-id=<[email protected]> 
Jan 5 09:02:48 localhost postfix/qmgr[2596]: 1733D16A90A: from=<[email protected]>, size=460, nrcpt=1 (queue active) 
Jan 5 09:02:51 localhost postfix/smtp[5980]: 1733D16A90A: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[74.125.130.27]:25, delay=3.4, delays=0.05/0.01/1.9/1.5, dsn=2.0.0, status=sent (250 2.0.0 OK 1483624971 s11si76004239pgc.259 - gsmtp) 

로그해야 예 : 나는 정보를 추출하는 데 관심이있는

Jan 5 09:02:48 localhost postfix/pickup[5501]: 1733D16A90A: uid=0 from=<root> 
Jan 5 09:02:51 localhost postfix/qmgr[2596]: 1733D16A90A: removed 

로그 :

로그되는 I는 정보를 추출하는 상관 없어 JSON 파일로 ElasticSearch로 전송 된 후 추가 처리를 위해 저장됩니다.

답변

1

메일을 보낼지 추적해야하는 경우. 당신은 elasticsearch의 인덱스 키로 Postfix 큐 ID
(로그에 1733D16A90A)을 사용할 수 있습니다. 그런 다음 grok로 각 행을 구문 분석하고 항목의 상태를 업데이트해야합니다.

https://github.com/whyscream/postfix-grok-patterns/blob/master/50-filter-postfix.conf

+0

답장을 보내 주셔서 감사합니다. 비록 로그 데이터를 내 Elasticsearch 인덱스로 내보내는 사용자 정의 python 스크립트를 작성하고 데이터가 발견되는 즉시 json의 키 및 데이터로 QueueID가있는 문서를 업데이트합니다. –

-1

내가 Logstash와 후위 로그를 구문 분석에 대한 비슷한 질문 here 대답했다, 나는 다른 답변에 연결 싫어하지만, 개념은 동일하게 유지하고 수행해야합니다 grok 수의 패턴이 예를 살펴 보자 시작하면 되겠지만 구성의 복잡성은 whyscream으로 제공되지 않습니다.

Grok과 동일한 개념이 Fluent에도 적용됩니다.

파일을 읽기위한 입력 플러그인은 file입니다. 이렇게하면 여러 줄 처리에 대해 걱정할 필요가 없으며 필요한 정보의 각 줄에 집중할 수 있습니다.

input { 
    file { 
     path => "/var/log/maillog" 
     type => "postfix" # You can define a type however you like. 
    } 
} 

궁극적으로 가능한 경우 사용자 지정 스크립트 작성을 피하십시오. 이렇게해야하는 작업은 Logstash, Fluent 및 기타 유사한 도구 커뮤니티에서 수행했습니다. 기껏해야 수천 개의 세분화 된 로그에 대한 정규 표현식 관리가 골칫거리입니다.