将输出发送到 logstash

Sending output to logstash

我是 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% 确定该怎么做。

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

在解决您的问题时,将评论和一些指针总结为答案。

使用index => "test"是正确的方法。您还可以使用 index => "%{fieldname}".

将字段值作为索引名称
  1. 您的配置正确。我已经测试过了,你的配置是正确的。它正在 elasticsearch.
  2. 中创建索引 test
  3. 您可以通过在浏览器中使用 localhost:9200/_cat/indices/?v 列出 elasticsearch 中存在的所有索引来检查您的索引是否已创建。
  4. 您在配置中提供的端口号应与配置 elasticsearch 的端口号相匹配。在 elasticsearch 中不配置而提供不同的端口号将不起作用。默认端口号为 9200
  5. 您可能还想检查您正在使用的端口号是否已被使用。
  6. 如果上述所有内容都经过验证并且在 elasticsearch 中创建了索引,那么您也应该能够在 kibana 中看到它。现在您可以继续使用索引名称 test.
  7. kibana 中创建 pattern
  8. 如@alpert 的回答中所述,您应该使用 timepicker 并对其进行调整以查看结果。