ES常见问题-ElasticSearch怎么样设置账号密码
Posted YHJ小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES常见问题-ElasticSearch怎么样设置账号密码相关的知识,希望对你有一定的参考价值。
项目场景:
有时候我们也需要给ES设置账号密码,避免别人使用自己的ES操作,以保证自己的ES的数据安全
前言:
ES版本
我用的是Elasticsearch示例版本:7.8.0
ES自带的X-Pack密码验证
在ES版本7.0之后,默认的情况下,安装了ES,都会默认下载了X-Pack,不再需要自己独自下载,
X-Pack是elasticsearch的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,所以我们想要开启账号密码验证,就需要开启X-Pack密码校验。
解决步骤:
1、修改配置
先进入es的config里,找到elasticsearch.yml
在elasticsearch.yml 追加三句配置:
##开启X-Pack密码验证
xpack.security.enabled: true
## 加密方式
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
2、重启es
然后需要重启es,使配置生效(若是使用docker安装ES的请忽略这一步骤,自己使用docker重启一下es)
(1)先查看es服务:
ps -ef | grep elastic
(2)再根据进程号杀死es进程:
kill -9 23035
(3) 再查看es进程是否存在:
ps -ef | grep elastic
(4) es已经停止后,再转换到es用户(自己之前安装es的时候新创建的用户):
su es
(5) 再进到es的bin目录,后台运行:
bin/elasticsearch -d
3、设置账号密码
进入es的bin目录下执行下面语句:
./elasticsearch-setup-passwords interactive
这里要设置6个账号和密码,包括elasticsearch、kibana等
4、使用账号密码登录
(1)如果是使用浏览器登录es或者kibana,就需要在弹窗输入账号密码
(2)使用java代码连接
/**
* es的连接客户端(账号默认是elastic)
* @return
*/
@Bean
public RestHighLevelClient restHighLevelClient()
//es验证账号密码
final CredentialsProvider provider = new BasicCredentialsProvider();
//填写账号密码
provider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("elastic", "123456"));
return new RestHighLevelClient(
RestClient.builder(new HttpHost("47.113.201.128", 9200, "http"))
.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback()
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder)
httpClientBuilder.disableAuthCaching();
return httpClientBuilder.setDefaultCredentialsProvider(provider);
)
.setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback()
@Override
public RequestConfig.Builder customizeRequestConfig(
RequestConfig.Builder requestConfigBuilder)
return requestConfigBuilder.setConnectTimeout(5000 * 1000) // 连接超时(默认为1秒)
.setSocketTimeout(6000 * 1000);// 套接字超时(默认为30秒)
));
5、若想关闭x-pack密码验证
先进入es的config里,找到elasticsearch.yml:
xpack.security.enabled: false
6、修改密码
在虚拟机或者服务器输入
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://192.168.157.132:9200/_xpack/security/user/用户名/_password' -d ' "password" : "修改后的密码" '
如:
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://192.168.157.132:9200/_xpack/security/user/elastic/_password' -d ' "password" : "12345678" '
这时候会要你输入原来的密码,输入正确后就会自动修改这时候会要你输入原来的密码,输入正确后就会自动修改这时候会要你输入原来的密码,输入正确后就会自动修改的
以上是关于ES常见问题-ElasticSearch怎么样设置账号密码的主要内容,如果未能解决你的问题,请参考以下文章