elasticsearch 集群认证
本文介绍了es的集群认证相关的流程、代码整合以及相关的中间件认证的流程,看这一篇就够了。
配置文件
在 elasticsearch.yml 配置文件增加认证相关的配置
#安全认证
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
生成证书
切换到 es 目录的 bin/目录下
#生成CA证书,执行命令后,提示输入密码, 也可以直接回车
./elasticsearch-certutil ca
#生成elastic-certificates.p12,生成证书和私钥,提示输入密码, 也可以直接回车
./elasticsearch-certutil cert --ca elastic-stack-ca.p12
这里我选择直接回车,然后把生成的文件复制到config目录下,同时,需要把这个证书分发到全部的es节点上
配置密码
回到 bin 目录下,执行以下命令
./elasticsearch-setup-passwords interactive
提示选择 Y
然后输入密码,可能需要输入多个内置账号的密码,可以配成一样的后面再改也行
Springboot 集成 Elasticsearch
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
<version>2.7.10</version>
</dependency>
项目配置
elasticsearch:
rest:
uris: ip:9200
cluster-name: cluster-es
username: username
password: password
关联中间件配置
logstash
elasticsearch {
hosts => ["ip:9200"]
user => "username"
password => "password"
index => "xx-%{+YYYY.MM.dd}"
}
这里需要注意下,因为权限问题,用默认的logstash_system 账号可能会报错,建议新增一个权限大一点的账号
kibana
elasticsearch.hosts: ['ip:9200','ip:9200','ip:9200']
xpack.security.enabled: true
elasticsearch.username: kibana_system
elasticsearch.password: password