文章482
标签257
分类63

ELK设置密码

ES7.7 以后的版本将安全认证功能免费开放,并将X-pack插件集成了到了开源的ElasticSearch版本中;

本文介绍了如何利用X-pack给ElasticSearch设置用户名和密码;


ELK设置密码

环境说明

本文继续使用 ES 7.14.1 版本;

具体ELK的部署可以参考我之前的文章:

源代码:


ElasticSearch配置

首先,配置 config/elasticsearch.yml

新增以下配置(开源版本默认是关闭的):

xpack.security.enabled: true

保存后重启ES;

随后,输入 ./bin/elasticsearch-setup-passwords interactive 初始化密码;

内置存在三个用户:

  • elastic:内置超级用户;
  • kibana:仅可用于kibana用来连接elasticsearch并与之通信, 不能用于kibana登录;
  • logstash_system:用于Logstash在Elasticsearch中存储监控信息时使用;

至此,已经完成 ES 及相关组件的加密,后续访问和使用相关组件都需要验证用户名和密码,使用:

  • curl localhost:9200 -u elastic:{password}

Kibana配置

config/kibana.yml 中配置用户名和密码:

elasticsearch.username: "kibana"
elasticsearch.password: "*****"

账号密码为es初始化中设置的密码;

重启 kibana;

输入 http://ip:5601 打开 Kibana 登录页面,使用elastic账号登录,并在角色和用户管理中添加用户指定 索引用于访问ES;


Logstash配置

首先,修改 Logstash 配置文件config/logstash.yml,增加并修改下面的内容:

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: *****

还要修改 logstash 中的配置 logstash-sample.conf

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://elasticsearch:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
-    #user => "elastic"
-    #password => "changeme"    
+    user => "elastic"
+    password => "*****"
  }
}

将密码配置进去即可!


附录

参考文章:



本文作者:Jasonkay
本文链接:https://jasonkayzk.github.io/2022/07/01/ELK设置密码/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可