一、前言:
上篇kibana7.2添加登录及权限我们对ELK访问添加了访问权限后,然后发现logstash无法正常输出到Elasticsearch,报错信息如下,401了,说明是权限问题,在网上找了好多都没有说的很清楚,然后看官方文档吧,找到了如下解决办法
[2019-07-29T17:52:43,230][WARN ][logstash.outputs.elasticsearch] Attempted to resurrect connection to dead ES instance, but got an error. {:url=>"http://*****:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::BadResponseCodeError, :error=>"Got response code '401' contacting Elasticsearch at URL 'http://***:9200/'"}
二、kibana中配置:
既然是权限问题,那我们配置好权限就好了,可是问题就出现在杂么配
- 我们首先要新建一个角色logstash_writer,然后添加集群权限为:manage_index_templates、monitor、manage_ilm
- 为此角色添加索引权限,选择要配置的索引,接着此角色对索引的操作权限为:write、delete、create_index
- 我们新建一个用户拥有此角色
三、logstash输出文件配置:
我们现在有了一个用户可以操作这些索引了,但是我们需要在logstash中配置他才能生效
output {
elasticsearch {
user => logstash_internal
password => logstash_internal123
hosts => ["http://**********:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}
重启logstash,就发现可以正常发送信息了
参考:官方配置