之一。 一些日誌被鏈接JSON字符串,例如下面的一個:分裂JSON上logstash UDP輸入
{ 「S」:1, 「×」: 「foo」 的} { 「S」:1, 「P」: 「酒吧」 }
我使用以下濾波器來分割的消息。 當輸入文件,日誌分裂,我得到多個事件。 然而,當我使用UDP輸入,它不是分割字符串,並從第一JSON僅創建一個事件。
filter { mutate { gsub => [ "message","}{","}#{"] } split { terminator => [ "#" ] } if [message] =~ /^{.*}$/ { json { source => message } } }
沒有人知道什麼是錯在這裏?
你的「消息」字段在被logstash處理後看起來是什麼樣的? –
通過udp發送數據時,看起來在括號中添加了「\ u0000」,所以gsub函數沒有做應該做的事情。此更新配置解決了這個問題 - 濾波器{ 發生變異{ GSUB => [ 「消息」, 「} \ u0000的{」, 「}#{」] } 分裂{ 終止子=> [ 「#」] } if [message] =〜/^{.*}$/ { json {source => message } } } – user2294995