【问题标题】:X-Pack & Logstash - No output to elasticsearchX-Pack & Logstash - 没有输出到 elasticsearch
【发布时间】:2017-09-06 08:48:33
【问题描述】:

我安装了 X-Pack、Elasticsearch 和 Logstash。 Logstash 已经向 elasticsearch 报告 X-Pack 的监控部分。


现在我希望logstash 将管道中的任何节拍传递给elasticsearch。


我遵循本指南here 并创建了提到的用户和角色。 我还使用来自here 的信息为每个具有上述权限的节拍类型创建了一个角色,并将这些角色分配给同一用户(例如,一个用于filebeat-*)。

我的logstash.conf看起来如下:

input {
  beats {
   port => 5044
  }
}
output {
  elasticsearch {
   hosts => ["http://localhost:9200"]
   index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
   document_type => "%{[@metadata][type]}"
   user => "user"
   password => "pass-word"
 }
  file {
   path => "C:\temp\%{[@metadata][beat]}-%{+YYYY.MM.dd}.log"
 }
}

我正在创建文件(例如 filebeat),但 elasticsearch 中的索引未创建,并且 elasticsearch 中没有数据。

有没有人看看配置有没有问题?几个小时以来,我一直在努力寻找错误/解决方案。

使用提到的用户直接将节拍发布到 elasticsearch(没有 Logstash)正在工作(例如,使用 metricbeat)。

我在日志中也没有看到什么奇怪的东西,只是缺少弹性的输出:

07:52:53.807 [[main]>worker0] 调试 logstash.pipeline - 过滤器收到 {"event"=>{...}}
07:52:53.807 [[main]>worker0] DEBUG logstash.pipeline - 过滤器收到 {"event"=>{...}}
07:52:53.807 [[main]>worker0] DEBUG logstash.pipeline - 收到输出 {"event"=>{...}}
07:52:53.807 [[main]>worker0] DEBUG logstash.pipeline - 收到输出 {"event"=>{...}}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - 文件,将事件写入文件。 {:filename=>"C:/temp/filebeat-2017.04.11.log"}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - 文件,将事件写入文件。 {:filename=>"C:/temp/filebeat-2017.04.11.log"}
07:52:53.870 [[main]>worker0] INFO logstash.outputs.file - 打开文件 {:path=>"C:/temp/filebeat-2017.04.11.log"}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - 启动陈旧文件清理周期 {:files=>{"C:/temp/filebeat-2017.04.11.log"=>#>}}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - 找到 0 个陈旧文件 {:inactive_files=>{}}


已经谢谢你了!


更新:

如果我更改密码,logstash 日志中会出现以下错误:

08:22:33.877 [[main]>worker1] 错误 logstash.outputs.elasticsearch - 从服务器收到错误的响应代码,但此代码不被视为可重试。请求将被丢弃 {:code=>401, :response_body=>"{\"error\":{\"root_cause\":[{\"type\":\"security_exception\",\"reason\": \"无法为 REST 请求验证用户 [beat] [/_bulk]\",\"header\":{\"WWW-Authenticate\":\"Basic realm=\\"security\\" charset=\\ "UTF-8\\"\"}}],\"type\":\"security_exception\",\"reason\":\"无法为 REST 请求验证用户 [beat] [/_bulk]\", \"header\":{\"WWW-Authenticate\":\"Basic realm=\\"security\\" charset=\\"UTF-8\\"\"}},\"status\":401 }", :request_body=>"{\"index\":{\"_id\":null,\"_index\"

所以它似乎实际上是在与elasticsearch通信,但没有创建索引。不幸的是,我在 elasticsearch 日志中没有任何声明。

【问题讨论】:

    标签: elasticsearch logstash filebeat xpack


    【解决方案1】:

    我自己找到了答案,对于那些遇到类似问题的人来说:

    我的elasticsearch.yml 中有一些关于action.auto_create_index 的奇怪设置阻止了索引的创建。

    这在将 elasticsearch 的日志级别更改为 debug 后变得可见,就像提到 here 的方式一样。

    由于不需要这些,我删除了它们,现在一切正常。

    【讨论】:

    • 如果你安装了 X-Pack,你仍然可以使用 hosts => ["localhost:9200"] 不是 https?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 2012-12-09
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    相关资源
    最近更新 更多