我們收到使用Logstash日誌具有以下配置:多Logstash實例線造成重複
input {
udp {
type => "logs"
port => 12203
}
}
filter {
grok {
type => "tracker"
pattern => '%{GREEDYDATA:message}'
}
date {
type => "tracker"
match => [ "timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ]
}
}
output{
tcp{
type => "logs"
host => "host"
port => 12203
}
}
我們再使用以下設置採摘日誌了機器"host"
上:
input {
tcp {
type => "logs"
port => 12203
}
}
output {
pipe {
command => "python /usr/lib/piperedis.py"
}
}
從這裏開始,我們正在分析這些行並將它們放到Redis數據庫中。但是,我們發現了一個有趣的問題。
Logstash「包裝」在一個JSON風格包即日誌消息:
{\"@source\":\"source/\",\"@tags\":[],\"@fields\":{\"timestamp\":[\"2013-09-16 15:50:47,440\"],\"thread\":[\"ajp-8009-7\"],\"level\":[\"INFO\"],\"classname\":[\"classname\"],\"message\":[\"message"\]}}
我們的話,就接受它並將其傳給下一臺機器上,採取的消息,並把它放在另一包裝器!我們只對實際的日誌消息感興趣,而沒有其他的東西(源路徑,源代碼,標籤,字段,時間戳e.t.c.)
有沒有一種方法可以使用過濾器或其他方法來做到這一點?我們已經瀏覽了文檔,但找不到任何可以在Logstash實例之間傳遞原始日誌行的方法。
感謝,
馬特