2017-05-17 5 views
1

인터넷에서 Logstash에 변수를 넣고 용어가 패턴에 해당하는 경우 값을 사용하거나 수정하는 방법을 인터넷에서 검색하고 있습니다. 내 소스를 구문 분석이 grok 수 코드를 사용하고logstash에서 이전 값으로 필드를 변경할 수 있습니까?

2017-04-12 15:49:57,641|OK|file1|98||| 
    2017-04-12 15:49:58,929|OK|file2|1387|null|msg_fils| 
    2017-04-12 15:49:58,931|OK|file3|2|msg_pere|msg_fils| 
    2017-04-12 15:50:17,666|OK|file1|25||| 
    2017-04-12 15:50:17,929|OK|file2|1387|null|msg_fils| 

:

여기에서 내 데이터 소스의 예입니다.

grok { 
    match => {"message" => '%{TIMESTAMP_ISO8601:msgdates:date}\|%{WORD:verb}\|%{DATA:component}\|%{NUMBER:temps:int}\|%{DATA:msg_pere}\|%{DATA:msg_fils}\|'} 
} 

하지만 그것은 가능 여부를 경우

FILE1 당신이 말해 줄 수 포함 된 행의 이전 값에 의해 첫 번째 필드를 수정할 사실?

감사합니다.

답변

0

문제점에 대한 해결책을 찾았습니다. 나는 내 문제에 대한 해결책을 당신과 공유하고 있습니다.

그래서 내 필터는 다음과 같이이다 logstash - 필터 - 기억

logstash-플러그인 설치 : 내가 을 logstash - 필터 - 암기라는 이름의 플러그인을 사용하고, 그 명령에 의해 설치 될 수

grok { 
    match => {"message" => '%{TIMESTAMP_ISO8601:msgdates:date}\|%{WORD:verb}\|%{DATA:component}\|%{NUMBER:temps:int}\|%{DATA:msg_pere}\|%{DATA:msg_fils}\|'} 
} 
if [component] =~ "file1" { 
    mutate { 
     add_field => [ "msg_id", "%{msgdates}" ] 
    } 
    memorize { 
     fields => [ "msg_id" ] 
     default => { "msg_id" => "NOTFOUND" } 
    }   } 
memorize { 
    fields => [ "msg_id9" ] 
} 

다른 사람에게 유용 할 수 있기를 바랍니다.