0
我想了解logstash的grok插件中的DATA
模式。 按照文檔DATA
比賽如下:logstash中的數據模式 - grok
DATA .*?
- >我的解讀是,長度爲1什麼N [請 糾正我,如果我的理解是錯誤的。
在我的腳本中,它無法正確解析我的輸入。
Logstash CONF:
input{
file {
path => ["/home/osboxes/logstash_conf/mydir/test_logs/*"]
start_position => beginning
sincedb_path => "/home/osboxes/logstash_conf/mydir/.sincedb"
}
}
filter{
grok {
match => { "message" => "^%{TIMESTAMP_ISO8601:timeStamp},%{DATA:ID},%{DATA:somedata}" }
}
}
output {
stdout {
codec => json_lines
}
}
輸入:
2017-01-09 02:00:03.887,a,a
輸出:
{
"message": "2017-01-09 02:00:03.887,a,a",
"@version": "1",
"@timestamp": "2017-01-09T12:28:20.958Z",
"path": "/home/osboxes/logstash_conf/mydir/test_logs/data",
"host": "osboxes",
"timeStamp": "2017-01-09 02:00:03.887",
"ID": "a"
}
我期望的標籤somedata
將充滿值,因爲它對於標籤ID
],但它從輸出中被省略。任何人都請幫我理解DATA
模式的行爲。
謝謝你的回答。在這種情況下,有可靠的'DATA'模式還是需要尋找其他模式?正如你所提到的,它可能匹配零個字符,在某些情況下,它可能會跳過我確實感興趣的值... –
@ G.S如果用'$'終止你的模式,那麼你應該好好走。這將確保你的第二個'DATA' __has__匹配一些東西。 – Fairy
瞭解。我只是擔心,如果類似的行爲發生在中間的「數據」。 '$'只能用於最後一個字段。不知道'DATA'是否可能在中間字段失敗。只是爲了確保它是可靠的 –