2017-11-10 3 views
0

독일 (DE)에 대해서만 kafka json 메시지를 필터링하려고합니다. 그렇게하기 위해 저는 grok 표현을 써야합니다. 누구든지이 json을위한 grok 패턴을 쓰는 것을 도와 줄 수 있습니까?Logstash 그로크로 필터 Kafka JSON 메시지

{"table":"ORDERS","type":"I","payload":{"ID":"28112","COUNTRY":"DE","AMT":15.36}} 
{"table":"ORDERS","type":"I","payload":{"ID":"28114","COUNTRY":"US","AMT":25.75}} 

죄송합니다. 이러한 기술을 처음 접했습니다. 다음은 내 logstash.conf의 모습입니다.

input { 
    kafka {topics => [ "test" ] auto_offset_reset => "earliest" } 
} 

filter { 
    grok { 
    match => { "message" => "?????????" } 

    if [message] =~ "*COUNTRY*DE*" { 
    drop{} 
    } 
}  
} 

output { file { path => "./test.txt" } } 

결국 나는 독일 명령을 제출하고 싶습니다. 도와 줘서 고마워, 고마워!

+0

을 그것을 밖으로 시도? 'if [message] = ~'COUNTRY \ ": \"DE \ ""{ drop {} }'을 사용할 수 있으며 문제없이 작동합니다. – baudsp

답변

1

Logstash를 사용해야합니까? 하지 않으면, 나는 간단한 KSQL 문

CREATE STREAM GERMAN_ORDERS AS SELECT * FROM ORDERS WHERE COUNTRY='DE'; 

이 처음부터 스트리밍되는 카프카 항목을 생성하고 당신이 그것을에 원하는 데이터 만 가지고 제안한다. 카프카 (Kafka) 화제에서 카프카 커넥트 (Kafka Connect)를 사용하여 프로세싱 파이프 라인의 일부로 카프카 커넥트를 파일로 가져올 수 있습니다. 당신이 grok 수 필요한 이유는 무엇

는 KSQL here를 사용하는 예제를 읽고, here