2
多行神交過濾器我有一個很長的logstash神交過濾器:定義了在logstash
match => { 'message' => '%{MONTH:month} %{NUMBER:day} %{TIME:time} %{WORD:log_host} %{WORD:generator}\[%{NUMBER:unknown}\]: %{IP:connIP}:%{NUMBER:connPort} \[.*\] %{WORD:namespace}\~? %{NOTSPACE:unknown} %{NOTSPACE:unknown} %{NUMBER:res_statuscode} %{NUMBER:unknown} (?<unknown>\-.*\-) %{NOTSPACE:unknown} %{NOTSPACE:unknown} \"%{WORD:method} %{PATH:path} %{DATA:httpversion}\"' }
任何方式多行打破這個嗎?我試過如下:
match => { 'message' => '%{MONTH:month} %{NUMBER:day} %{TIME:time} %{WORD:log_host}'
' %{WORD:generator}\[%{NUMBER:unknown}\]: %{IP:connIP}:%{NUMBER:connPort}'
' \[.*\] %{WORD:namespace}\~? %{NOTSPACE:unknown} %{NOTSPACE:unknown}'
' %{NUMBER:res_statuscode} %{NUMBER:unknown} (?<unknown>\-.*\-) %{NOTSPACE:unknown}'
' %{NOTSPACE:unknown} \"%{WORD:method} %{PATH:path} %{DATA:httpversion}\"' }
但它給我的錯誤,甚至使用逗號分隔字符串不起作用:{:timestamp=>"2016-09-30T08:38:50.549000+0000", :message=>"fetched an invalid config" ...
有沒有提及的官方文件在處理這樣的:
- https://www.elastic.co/guide/en/logstash/current/filter-plugins.html
- https://www.elastic.co/guide/en/logstash/current/config-examples.html
激活換行,在你喜歡的編輯器? – baudsp
另一種解決方案是將grok模式分成兩部分,第一個過濾器將消息的末尾留給第二個過濾器進行解析。但要小心你的表演(查看[博客文章](https://www.elastic.co/blog/do-you-grok-grok))。 – baudsp
@baudsp(1)無論每個人如何設置編輯器,它都應該是一個提高團隊可見性的解決方案,所以這個解決方案不會。 (2)這不是一個理想的解決方案,因爲我真的想匹配整個模式(如果不匹配會失敗),但如果我需要像這樣管道來增加可見性,我會牢記它。 –