Logstash를 사용하여 후위 로그를 구문 분석하고 있습니다. 나는 주로 postfix 로그에서 반송 된 이메일 로그를 얻고 데이터베이스에 저장하는 데 중점을 둡니다.첫 번째 필터 일치 레코드가 저장되지 않은 여러 그루크 필터
로그를 얻으려면 먼저 내 message-id에 해당하는 postfix에서 생성 된 ID를 찾아야하며 해당 ID를 사용하여 이메일 상태를 찾아야합니다. 다음 설정을 위해 로그를 가져올 수 있습니다. 나는 조건이 패턴과 일치하는 로그를 저장하는 경우 다음과 같은 사용하고
grok {
patterns_dir => "patterns"
match => [
"message", "%{SYSLOGBASE} %{POSTFIXCLEANUP}",
"message", "%{SYSLOGBASE} %{POSTFIXBOUNCE}"
]
named_captures_only => true
}
:
당신이, 내가 하나 개의 로그 파일에서 두 개의 서로 다른 로그를 해당 찾기 위해 두 가지 패턴을 사용하고 보았 듯이if "_grokparsefailure" not in [tags] {
#database call
}
.
이제 태그를 기반으로 두 패턴을 구분하고 싶습니다. 그래서 다음과 같이 구성을 수정했습니다 :
grok {
patterns_dir => "patterns"
match => [
"message", "%{SYSLOGBASE} %{POSTFIXBOUNCE}"
]
add_tag => ["BOUNCED"]
remove_tag => ["_grokparsefailure"]
named_captures_only => true
}
grok {
patterns_dir => "patterns"
match => [
"message", "%{SYSLOGBASE} %{POSTFIXCLEANUP}"
]
add_tag => ["INTIALIZATION"]
remove_tag => ["_grokparsefailure"]
named_captures_only => true
}
이제 % {POSTFIXCLEANUP} 패턴 로그 만 저장합니다. 순서를 바꾸면 % {POSTFIXBOUNCE} 패턴 만 저장합니다.
그래서 조건을 제거한 후 첫 번째 필터에서 구문 분석되는 메시지에 "_grokparsefailure"태그와 첫 번째 필터 태그가 있고 그 레코드가 저장되어 있지 않기 때문에 발견되었습니다.
누구든지이 문제를 해결하기 위해해야 할 일을 말해 줄 수 있습니까? 내가 실수하고 있니?
는 이벤트를 일치하는 경우 그 가능성이 그래서 문제 – Alcanzar
의 있도록 remove_tag 만, 수행됩니다 확신, 내가 원하는 결과를 달성하기 위해 무엇을해야합니까? –