0

我只是更改了我的 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"   
 }
}

现在我所做的唯一更改是在弹性搜索中创建一个特定的索引并在那里索引数据,但现在似乎消息的格式已经改变。它仍然是带有 2/3 字段的 json 消息,但不确定 logstash 正在从 rabbitmq 读取或更改什么。我可以看到数据流入直方图,但字段消失了。

"2014-03-18T14:32:02"  "2014-03-18T14:36:24"  "166"   "google"

这些是我期望的领域。就像我说的那样,在我做出改变之前,这一切都奏效了。

4

1 回答 1

-1

我见过类似配置的示例,但它们不使用“json_lines”的输出编解码器进入 Elasticsearch。输出编解码器会调整数据的格式,因为它会留下我不认为是必要的 logstash。尝试删除编解码器并通过将文件输出添加到日志来查看logstash输出的内容,确保这只是简短的示例......

于 2014-06-25T14:54:33.363 回答