将输出发送到logstash

时间:2016-08-04 09:33:49

标签: elasticsearch logstash kibana elastic-stack

我对ELK堆栈很陌生,而且我很难绕过它。

我在/etc/logstash/conf.d/test.conf下面有一个如下所示的测试配置:

input {
    stdin { }
}
output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "test"
}
    stdout{ }
}

当我运行sudo /opt/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf时,我看到stdout中的输出格式如下: 2016-08-04T10:09:46.406Z myserver.local hello world,但我在Kibana看不到它。

我想我可能已经错误地创建了索引,因为我不是100%确定如何做到这一点。 Kibana

2 个答案:

答案 0 :(得分:2)

总结评论,并在解决问题时给出答案。

使用index => "test"是正确的方法。您还可以使用index => "%{fieldname}"将字段值指定为索引名称。

  1. 您的配置正确无误。我测试了它,你的配置是正确的。它正在test中创建索引elasticsearch
  2. 您可以在浏览器中使用elasticsearch列出localhost:9200/_cat/indices/?v中的所有索引,以检查您的索引是否已创建。
  3. 您在配置中提供的端口号应与配置elasticsearch的端口号相匹配。在elasticsearch中未配置而提供不同的端口号将不起作用。默认端口号为9200
  4. 您可能还想检查您使用的端口号是否已被使用。
  5. 如果验证了上述所有内容并且在elasticsearch中创建了索引,那么您应该也可以在kibana中看到它。现在,您可以继续在pattern中创建索引名为kibana的{​​{1}}。
  6. 正如@ alpert的答案所述,您应该使用test并调整它以查看结果。

答案 1 :(得分:1)

我猜你没有看到任何东西,因为你的浏览器右上方有你的时间间隔。可能是您的文档早于该时间间隔 - 通常为Last 15 minutes。将其更改为更大的整数,如Today