我们收到使用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实例之间传递原始日志行的方法。
感谢,
马特