我刚刚修改了我的logstash-elasticearch设置以包含rabbitmq,因为我无法使用tcp连接将消息快速地写入logstash。现在,当logstash从队列中读取时,它的速度非常快,但我没有看到消息传入kibana。一个错误显示缺少时间戳字段。我使用插件/头来查看数据,这很奇怪:
_index _type _id ▼_score @version @timestamp
pt-index logs Bv4Kp7tbSuy8YyNi7NEEdg 1 1 2014-03-27T12:37:29.641Z
这就是我的conf文件现在和下面的样子:
input {
rabbitmq {
queue => "logstash_queueII"
host => "xxx.xxx.x.xxx"
exchange => "logstash.dataII"
vhost => "/myhost"
}
}
output {
elasticsearch{
host => "xxx.xxx.xx.xxx"
index => "pt-index"
codec => "json_lines"
}
}
这就是在rabbitmq之前:
input {
tcp {
codec => "json_lines"
port => "1516"
}
}
output {
elasticsearch {
embedded => "true"
}
}
现在我唯一的改变是在elasticsearch中创建一个特定的索引并将数据编入索引,但现在看来消息的格式已经改变了。它仍然是带有2/3字段的json消息,但不确定正在读取什么logstash或从rabbitmq更改。我可以看到数据流入直方图,但字段消失了。
"2014-03-18T14:32:02" "2014-03-18T14:36:24" "166" "google"
这些是我期望的领域。就像我在做出改变之前说的一切都有效。
答案 0 :(得分:-1)
我见过类似配置的例子,但他们没有使用" json_lines"的输出编解码器。进入Elasticsearch。输出编解码器将调整数据的格式,因为它离开了我不认为是nessisary的logstash。尝试删除编解码器并通过向日志添加文件输出来查看正在输出的logstash,请确保这只是简短的示例...