2017-02-08 6 views
0

디버거에서 내 logstash 필터가 정확하지만 kibana에서 테스트 한 정확한 메시지를 검색 할 때 필드를 표시하지 않습니다. 여기 내 필터입니다 :디버거에서 Logstash 필터가 올바르지 만 키 배너에서 검색 할 때 작동하지 않습니다.

filter { 
if [type] == "syslog" { 
    grok { 
    match => { 'message' => '%{SYSLOG5424LINE}' } 
    } 
    syslog_pri { 
    syslog_pri_field_name => 'syslog5424_pri' 
    } 
    date { 
    match => [ 'syslog5424_ts', 'ISO8601' ] 
    } 
} 

여기 내 로그 메시지의 예입니다

<134>1 2017-01-23T10:54:44.587136-08:00 mcmp mapp - - close ('xxx', 32415) 

}

그것은 필터 밤은이 적용 것 같아, 내 logstash 서비스를 다시 시작 및 테스트 grok 디버거. 어떤 아이디어가 잘못 되었나요?

+0

작동하지 않는다고 말하면 태그 => _grokparsefailure를 사용하여 메시지를 출력하고 있다는 뜻입니까? 또는 출력을 얻지 못하고 있습니까? – Alcanzar

+0

나는 메시지와 timestamp, type, syslog_severity 등과 같은 필드를 얻는다. 그러나 기타 필드는 내가 grok 필터에서 지정한 필드가 아니다. 나는 grokparsefailure도 얻지 만 메시지와 필드를 볼 수 있으며 grok 디버거에 지정된 내 필드에 내 메시지가있는 grok를 볼 수 있습니다. –

답변

1

제대로 작동하는 것처럼 보입니다.

난과 test.conf 생성 :

input { 
    stdin {} 
} 
filter { 
    grok { 
    match => { 'message' => '%{SYSLOG5424LINE}' } 
    } 
    syslog_pri { 
    syslog_pri_field_name => 'syslog5424_pri' 
    } 
    date { 
    match => [ 'syslog5424_ts', 'ISO8601' ] 
    } 
} 

output { 
    stdout { codec => "rubydebug" } 
} 

다음과 같이 시험 :

echo "<134>1 2017-01-23T10:54:44.587136-08:00 mcmp mapp - - close ('xxx', 32415)" | bin/logstash -f test.conf 

그리고 출력으로 제공하는 이벤트 : 모두 가지고

{ 
    "syslog_severity_code" => 6, 
     "syslog_facility" => "local0", 
    "syslog_facility_code" => 16, 
      "syslog5424_ver" => "1", 
       "message" => "<134>1 2017-01-23T10:54:44.587136-08:00 mcmp mapp - - close ('xxx', 32415)", 
      "syslog5424_app" => "mapp", 
      "syslog5424_msg" => "close ('xxx', 32415)", 
     "syslog_severity" => "informational", 
        "tags" => [], 
       "@timestamp" => 2017-01-23T18:54:44.587Z, 
      "syslog5424_ts" => "2017-01-23T10:54:44.587136-08:00", 
      "syslog5424_pri" => "134", 
       "@version" => "1", 
        "host" => "xxxx", 
     "syslog5424_host" => "mcmp" 
} 

SYSLOG5424LINE 패턴에 들어있는 필드

+0

좋아요. 귀하의 의견에 감사드립니다! 그런 식으로 테스트하는 방법을 몰랐고, 필자의 kibana 인터페이스 만보고있었습니다. 문제는 logstash 필터가 아니라 ELK 스택의 데이터 흐름 어딘가에 있다고 생각합니다. –

+0

도움이되어 기쁘다 – Alcanzar

+0

명령 줄에서했던 것처럼 일부 디버그 구성 파일을 사용하여 테스트했지만 동일한 결과를 얻었지만 Kibana에서 이전 필드를 가져옵니다. 필터가 적용되지 않는 것 같습니다 ... –