怎么样给电脑上的es设置密码(elasticsearch7141部署集群设置账号密码)
之前学习es都没有设置密码,但是为了安全考虑,规范的公司都会对es集群设置密码,所以今天测试了如何设置密码以及设置密码后常用插件如何连接es集群的问题,并做了记录。
elasticsearch版本7.14.1
es添加账号密码
1.打开es配置文件config/elasticsearch.yml
添加如下内容:
xpack.security.enabled:truexpack.security.transport.ssl.enabled:true
2.重启es集群
只有es集群重启后才可以进行密码初始化的操作
先找到es集群的pid,根据pid杀死es进程,之后重启es,命令如下:
ps-ef|grepelasticsearchkill-9pid./bin/elasticsearch-d
3.密码初始化
./bin/elasticsearch-setup-passwordsinteractive
之后等待设置密码,分别设置6个密码:
elastic
apm_system
kibana_system
logstash_system
beats_system
remote_monitoring_user
提示信息如下
Initiatingthesetupofpasswordsforreserveduserselastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.Youwillbepromptedtoenterpasswordsastheprocessprogresses.Pleaseconfirmthatyouwouldliketocontinue[y/N]yEnterpasswordfor[elastic]:Reenterpasswordfor[elastic]:Enterpasswordfor[apm_system]:Reenterpasswordfor[apm_system]:Enterpasswordfor[kibana_system]:Reenterpasswordfor[kibana_system]:Enterpasswordfor[logstash_system]:Reenterpasswordfor[logstash_system]:Enterpasswordfor[beats_system]:Reenterpasswordfor[beats_system]:Enterpasswordfor[remote_monitoring_user]:Reenterpasswordfor[remote_monitoring_user]:Changedpasswordforuser[apm_system]Changedpasswordforuser[kibana_system]Changedpasswordforuser[kibana]Changedpasswordforuser[logstash_system]Changedpasswordforuser[beats_system]Changedpasswordforuser[remote_monitoring_user]
4.如果后续再需要更改密码,可以用这个命令
curl-H"Content-Type:application/json"-XPOST-uelastic'http://127.0.0.1:9200/_xpack/security/user/elastic/_password'-d'{"password":"admin123"}'
es-head连接有密码的es集群
1.es配置文件添加配置
#连接elasticsearch-head配置跨域http.cors.enabled:truehttp.cors.allow-origin:'*'http.cors.allow-headers:Authorization,X-Requested-With,Content-Type,Content-Length
2.更改连接es-head,打开es-head页面网址上添加账号密码信息:
http://127.0.0.1:9100/?auth_user=elastic&auth_password=123456
之后在这个页面连接时输入es的连接ip和端口号就可以了
kibana设置连接的es集群密码
1.打开kibana配置文件,添加如下配置信息:
elasticsearch.username:"elastic"elasticsearch.password:"123456"
2.重启kibana
Java客户端使用es设置密码
工具方法
publicstaticRestHighLevelClientgetEsConnectionSecurity(Stringip,intport,Stringusername,Stringpassword){BasicCredentialsProviderbasicCredentialsProvider=newBasicCredentialsProvider();basicCredentialsProvider.setCredentials(AuthScope.ANY,newUsernamePasswordCredentials(username,password));RestClientBuilderrestClientBuilder=RestClient.builder(newHttpHost(ip,port)).setHttpClientConfigCallback(newRestClientBuilder.HttpClientConfigCallback(){@OverridepublicHttpAsyncClientBuildercustomizeHttpClient(HttpAsyncClientBuilderhttpClientBuilder){returnhttpClientBuilder.setDefaultCredentialsProvider(basicCredentialsProvider);}});returnnewRestHighLevelClient(restClientBuilder);}
pom文件:
以上是单机版的es集群添加密码后的操作,适合平时练习使用,如果是es集群,该版本还需要开启集群认证的操作
1.更改es配置文件,添加如下配置(es开启集群模式后的配置有很多需要更改的,比如集群内部通信等,这里只简单记录下开启安全认证的配置):
xpack.security.enabled:truexpack.security.transport.ssl.enabled:truexpack.license.self_generated.type:basicxpack.security.transport.ssl.verification_mode:certificatexpack.security.transport.ssl.keystore.path:elastic-certificates.p12xpack.security.transport.ssl.truststore.path:elastic-certificates.p12
2.开启集群认证
为es集群创建节点认证中心,生成证书
命令:
./bin/elasticsearch-certuilca
中间会有设置密码的操作,可以直接回车,代表设置密码为空
根据提示执行完该命令后,会生成一个elastic-stack-ca.p12文件,将这个文件scp到集群每一个节点上
之后每个节点都需要执行如下命令:
./bin/elasticsearch-certutilcert--ca./elastic-stack-ca.p12
命令执行完成后会生成一个elastic-certificates.p12文件
上面更改的集群配置文件中,最后两个配置的文件就是这两个生成的证书文件路径
3.重启es集群
-------------------------结束------------------------
以上就是学习es过程中记录的关于集群密码的设置方法
我是刚开始学习编程不久的小白,有什么错误欢迎大家指正,以后我会将学习中的笔记、记录整理好发出来,希望大家多多支持。