X-Pack 和 Logstash - 没有输出到 elasticsearch
X-Pack & Logstash - No output to elasticsearch
我安装了 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 中没有数据出现。
有没有人看看配置有没有问题?我几个小时以来一直在努力寻找 error/solution.
正在使用提到的用户(例如使用 metricbeat
)将节拍直接发布到 elasticsearch(没有 Logstash)。
我在日志中也没有看到任何奇怪的东西,只是缺少到 elastic 的输出:
07:52:53.807 [[main]>worker0] DEBUG logstash.pipeline - filter received {"event"=>{...}}
07:52:53.807 [[main]>worker0] DEBUG logstash.pipeline - filter received {"event"=>{...}}
07:52:53.807 [[main]>worker0] DEBUG logstash.pipeline - output received {"event"=>{...}}
07:52:53.807 [[main]>worker0] DEBUG logstash.pipeline - output received {"event"=>{...}}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - File, writing event to file. {:filename=>"C:/temp/filebeat-2017.04.11.log"}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - File, writing event to file. {:filename=>"C:/temp/filebeat-2017.04.11.log"}
07:52:53.870 [[main]>worker0] INFO logstash.outputs.file - Opening file {:path=>"C:/temp/filebeat-2017.04.11.log"}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - Starting stale files cleanup cycle {:files=>{"C:/temp/filebeat-2017.04.11.log"=>#>}}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - 0 stale files found {:inactive_files=>{}}
已经谢谢你了!
更新:
如果我更改密码,我会在 logstash 日志中收到以下错误:
08:22:33.877 [[main]>worker1] ERROR logstash.outputs.elasticsearch - Got a bad response code from server, but this code is not considered retryable. Request will be dropped {:code=>401, :response_body=>"{\"error\":{\"root_cause\":[{\"type\":\"security_exception\",\"reason\":\"unable to authenticate user [beat] for REST request [/_bulk]\",\"header\":{\"WWW-Authenticate\":\"Basic realm=\"security\" charset=\"UTF-8\"\"}}],\"type\":\"security_exception\",\"reason\":\"unable to authenticate user [beat] for REST request [/_bulk]\",\"header\":{\"WWW-Authenticate\":\"Basic realm=\"security\" charset=\"UTF-8\"\"}},\"status\":401}", :request_body=>"{\"index\":{\"_id\":null,\"_index\"
所以它似乎确实在与elasticsearch通信,但没有创建索引。不幸的是,我在 elasticsearch 日志中没有声明。
我自己找到了答案,对于那些遇到类似问题的人:
我的 elasticsearch.yml
中有一些关于 action.auto_create_index
的奇怪设置阻止了创建索引。
这在将 elasticsearch 的日志级别更改为 debug
后变得可见 here。
由于不需要这些,我删除了它们,现在一切正常。
我安装了 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 中没有数据出现。
有没有人看看配置有没有问题?我几个小时以来一直在努力寻找 error/solution.
正在使用提到的用户(例如使用 metricbeat
)将节拍直接发布到 elasticsearch(没有 Logstash)。
我在日志中也没有看到任何奇怪的东西,只是缺少到 elastic 的输出:
07:52:53.807 [[main]>worker0] DEBUG logstash.pipeline - filter received {"event"=>{...}}
07:52:53.807 [[main]>worker0] DEBUG logstash.pipeline - filter received {"event"=>{...}}
07:52:53.807 [[main]>worker0] DEBUG logstash.pipeline - output received {"event"=>{...}}
07:52:53.807 [[main]>worker0] DEBUG logstash.pipeline - output received {"event"=>{...}}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - File, writing event to file. {:filename=>"C:/temp/filebeat-2017.04.11.log"}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - File, writing event to file. {:filename=>"C:/temp/filebeat-2017.04.11.log"}
07:52:53.870 [[main]>worker0] INFO logstash.outputs.file - Opening file {:path=>"C:/temp/filebeat-2017.04.11.log"}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - Starting stale files cleanup cycle {:files=>{"C:/temp/filebeat-2017.04.11.log"=>#>}}
07:52:53.870 [[main]>worker0] DEBUG logstash.outputs.file - 0 stale files found {:inactive_files=>{}}
已经谢谢你了!
更新:
如果我更改密码,我会在 logstash 日志中收到以下错误:
08:22:33.877 [[main]>worker1] ERROR logstash.outputs.elasticsearch - Got a bad response code from server, but this code is not considered retryable. Request will be dropped {:code=>401, :response_body=>"{\"error\":{\"root_cause\":[{\"type\":\"security_exception\",\"reason\":\"unable to authenticate user [beat] for REST request [/_bulk]\",\"header\":{\"WWW-Authenticate\":\"Basic realm=\"security\" charset=\"UTF-8\"\"}}],\"type\":\"security_exception\",\"reason\":\"unable to authenticate user [beat] for REST request [/_bulk]\",\"header\":{\"WWW-Authenticate\":\"Basic realm=\"security\" charset=\"UTF-8\"\"}},\"status\":401}", :request_body=>"{\"index\":{\"_id\":null,\"_index\"
所以它似乎确实在与elasticsearch通信,但没有创建索引。不幸的是,我在 elasticsearch 日志中没有声明。
我自己找到了答案,对于那些遇到类似问题的人:
我的 elasticsearch.yml
中有一些关于 action.auto_create_index
的奇怪设置阻止了创建索引。
这在将 elasticsearch 的日志级别更改为 debug
后变得可见 here。
由于不需要这些,我删除了它们,现在一切正常。