X-Pack& Logstash - 没有输出到elasticsearch

时间:2017-04-11 06:05:00

标签: elasticsearch logstash filebeat xpack

我安装了 X-Pack,Elasticsearch& Logstash 即可。对于X-Pack的监控部分,Logstash会向elasticsearch报告。

现在我希望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(没有Logstash)发布节拍正在运行(例如使用metricbeat)。

此外,我在日志中看不到任何奇怪的内容,只是缺少弹性输出:

  

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.807 [[main]> worker0] DEBUG logstash.pipeline - 收到的输出{" event" => {...}}
  07:52:53.870 [[main]> worker0] DEBUG logstash.outputs.file - 文件,将事件写入文件。 {:文件名=>" C:/temp/filebeat-2017.04.11.log"}
  07:52:53.870 [[main]> worker0] DEBUG logstash.outputs.file - 文件,将事件写入文件。 {:文件名=>" 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 \":[{\ "键入\":\" security_exception \",\" reason \":\"无法为REST请求验证用户[beat] [/ _bulk] \",\" header \":{\" WWW-Authenticate \":\" Basic realm = \\&#34 ;安全\\"字符集= \\" UTF-8 \\" \"}}],\"类型\":\" security_exception \&#34 ;, \" reason \":\"无法为REST请求验证用户[beat] [/ _bulk] \",\" header \":{ \" WWW-Authenticate \":\" Basic realm = \\" security \\" charset = \\" UTF-8 \\" \"}},\" status \":401}",:request_body =>& #34; {\"指数\":{\" _id \":空,\" _index \"

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

1 个答案:

答案 0 :(得分:1)

对于那些在类似问题上挣扎的人,我自己找到答案:

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

在将弹性搜索的日志级别更改为debug时,将其显示为here

由于不需要,我删除了它们,现在一切都按预期工作。