Logstash 没有在 Elasticsearch 上创建索引

Logstash not creating index on Elasticsearch

我正在尝试在 EC2 Ubuntu 14.04 实例上设置 ELK 堆栈。但是一切都已安装,并且一切正常,除了一件事。

Logstash 没有在 Elasticsearch 上创建索引。每当我尝试访问 Kibana 时,它都希望我从 Elasticsearch 中选择一个索引。

Logstash在ES节点中,但缺少索引。这是我收到的消息:

"Unable to fetch mapping. Do you have indices matching the pattern?"

我是不是遗漏了什么?我遵循了本教程:Digital Ocean

编辑: 这是我面临的错误的屏幕截图: 另一个截图:

这是 Kibana3 还是 4?

如果是Kibana4,能否点击顶行菜单中的settings,选择indices然后确保索引名称包含'logstash-*',然后点击'time-field'名称并选择'@timestamp'

我在下面添加了我的设置的屏幕截图,请注意您勾选的选项。

我在 Amazon AMI 上得到了相同的结果(Centos/RHEL 克隆)

事实上完全按照上面...直到我将一些数据注入Elastic - 这创建了第一个day索引- 然后 Kibana 开始工作。我的简单 .conf 是:

input {
  stdin {
      type => "syslog"
    }
}
output {
  stdout {codec => rubydebug }
   elasticsearch {
          host => "localhost"
          port => 9200
          protocol => http
       }
}

然后

cat /var/log/messages | logstash -f your.conf

为什么 stdin 你问?好吧,在任何地方都不是很清楚(也是一个新的 Logstash 用户 - 发现这很不清楚)Logstash 永远不会终止(例如,当使用 file 插件时) - 它旨在继续观察。

但是使用标准输入 - Logstash 将 运行 - 将数据发送到 Elastic(创建索引)然后消失。

如果我用 file 输入插件做同样的事情,它永远不会创建索引 - 我不知道这是为什么。

我终于找到了问题所在。出于某种原因,端口 5000 正在被另一个服务访问,这不允许我们接受任何传入连接。因此,您所要做的就是编辑 logstash.conf 文件,并将端口从 5000 更改为 5001 或您方便的任何内容。

确保您所有的 logstash-forwarder 都将日志发送到新端口,您应该可以开始了。如果您使用 FQDN 方法生成了 logstash-forwarder.crt,那么 logstash-forwarder 应该指向相同的 FQDN 而不是 IP。