elasticsearch security 配置过程

4,145 阅读1分钟

准备:已经成功配置好 kibana-7.3.0 和 elasticsearch-7.3.0

  1. 在集群模式下 elasticsearch.yml 中加入

xpack.security.enabled: true

xpack.security.transport.ssl.enabled: true

在单节点模式下 elasticsearch.yml 中加入

xpack.security.enabled: true

discovery.type: single-node (在单节点下集群下有用,在多节点集群中会报如下错误)

Caused by: java.lang.IllegalArgumentException: setting [cluster.initial_master_nodes] is not allowed when [discovery.type] is set to [single-node]
	at org.elasticsearch.cluster.coordination.ClusterBootstrapService.<init>(ClusterBootstrapService.java:86) ~[elasticsearch-7.3.2.jar:7.3.2]
	at org.elasticsearch.cluster.coordination.Coordinator.<init>(Coordinator.java:190) ~[elasticsearch-7.3.2.jar:7.3.2]
	at org.elasticsearch.discovery.DiscoveryModule.<init>(DiscoveryModule.java:157) ~[elasticsearch-7.3.2.jar:7.3.2]
	at org.elasticsearch.node.Node.<init>(Node.java:518) ~[elasticsearch-7.3.2.jar:7.3.2]
	at org.elasticsearch.node.Node.<init>(Node.java:258) ~[elasticsearch-7.3.2.jar:7.3.2]
	at org.elasticsearch.bootstrap.Bootstrap$5.<init>(Bootstrap.java:221) ~[elasticsearch-7.3.2.jar:7.3.2]
	at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:221) ~[elasticsearch-7.3.2.jar:7.3.2]
	at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349) ~[elasticsearch-7.3.2.jar:7.3.2]
	at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.3.2.jar:7.3.2]
解决方法:因为是集群模式,所以在 elasticsearch.yml  中要把 discovery.type: single-node 去掉

ERROR: [1] bootstrap checks failed
[1]: Transport SSL must be enabled if security is enabled on a [basic] license. Please set [xpack.security.transport.ssl.enabled] to [true] or disable security by setting [xpack.security.enabled] to [false]
解决方法:只需要在 elasticsearch.yml 加入  xpack.security.transport.ssl.enabled: true

2. 在特定的系统用户(非 root )下,重新启动 elasticsearch ,然后执行如下命令:

./bin/elasticsearch-setup-passwords interactive

接下来需要为出现的 elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user 用户,分别输入密码

  1. 在特定的系统用户(非 root )下,在 kibana/bin 目录下运行如下命令,为 kibana 设置账号和密码

    ./kibana-keystore create

    ./kibana-keystore add elasticsearch.username (设置为 kibana )

    ./kibana-keystore add elasticsearch.password(密码为自己设定的)

备注:netstat -tunlp|grep 5601 然后找到进程号, kill 即可

  1. 使用 elastic 内置超级用户登陆 kibana 即可,账号为 elastic ,密码为你自己刚设置的。
  2. 对于创建其他用户以及分配权限,可以详情见官网:elastic.co/guide/en/elasticsearch/reference/7.3/get-started-users.html