2017-12-29 11 views
0

Logstash가 "host": "server01.staging" 인 경우 .으로 값을 나누고 "host": "server01", "env": "staging"을 얻고 싶습니다. 그것을 할 방법이 있습니까? 로그 스탯에서 호스트 수정

나는이 시도 :

grok { 
    match => { 
    "message" => ... 
    "host" => '\A(?<host>.*?).(?<env>.*)' 
    } 
    overwrite => [ "message", "host" ] 

을하지만 여전히 당신은 호스트와 ENV 사이의 점을 탈출하는 것을 잊었다 출력

답변

0

"host": "server01.staging"를 참조하십시오. 정규식에서 이스케이프되지 않은 도트는 모든 문자와 일치합니다.

이 작동합니다 :

"host" => '\A(?<host>.*?)\.(?<env>.*)' 
+0

번호 그것은 너무 작동하지 않습니다. 나는 "호스트"=> '\ A (? . *?) \. (? . *)''을 시도했지만 아무 것도 변경하지 않고 새로운 필드'new_host'와'new_env'를 보지 못했습니다. – Alexey

+0

이상하게도,'match => { "host"=> '\ A (? . *?) \. (? . *)'}'나는'new_host'와' new_env'. 나는이 conf로 테스트를했다 : https://gist.github.com/anonymous/e4597163d7fa8e19c9d150c045d9b739 – baudsp