【问题标题】:Sending output to logstash将输出发送到logstash
【发布时间】:2016-08-05 13:08:07
【问题描述】:

我对 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 时,我在标准输出中看到以下形式的输出: 2016-08-04T10:09:46.406Z myserver.local hello world,但我在 Kibana 中看不到它。

我想我可能创建了错误的索引,因为我不是 100% 确定如何去做。

【问题讨论】:

  • 试过你的配置。它为我创建了测试索引。找不到您的配置有什么问题。
  • @MrunalPagnis 那么我假设 index => "name_of_index" 是 Kibana 所需的索引名称是否正确?
  • 是的。没错。您还可以使用浏览器中的此链接localhost:9200/_cat/indices/?v 检查是否在弹性搜索中创建了索引。它将列出所有索引和详细信息。
  • @MrunalPagnis 感谢您的帮助。还有一个问题:我创建了另一个 conf 文件(另一个的副本),但端口和索引名称不同。即使在重新启动 ES 和 LS 并运行 curl -XGET 'http://localhost:9200/_cat/indices/?v' 之后,我也没有看到新创建的索引。如何刷新索引?
  • 您的端口号应该匹配。它应该是弹性搜索的标准9200 端口号。否则,请确保将其他端口号添加到弹性搜索配置中。因为elasticsearch只为9200配置。

标签: elasticsearch logstash kibana elastic-stack


【解决方案1】:

在解决您的问题时,用一些指向答案的方法总结 cmets。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 2017-11-12
      • 1970-01-01
      相关资源
      最近更新 更多