單機(jī)版
新增密碼
編輯配置文件 bin/elasticsearch.yml
新增配置
#開(kāi)啟密碼驗(yàn)證
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
我們java程序訪問(wèn)試試
報(bào)錯(cuò)了,提示沒(méi)有用戶信息
Elasticsearch exception [type=security_exception, reason=missing authentication credentials for REST request [/seproject/_search?typed_keys=true&ignore_unavailable=false&expand_wildcards=open&allow_no_indices=true&ignore_throttled=true&search_type=query_then_fetch&batched_reduce_size=512&ccs_minimize_roundtrips=true]]
接下來(lái)绍坝,設(shè)置一下用戶及密碼
ES要先啟動(dòng)才能設(shè)置否則報(bào)錯(cuò)宵荒,如下圖
啟動(dòng)ES
./elasticsearch -d
設(shè)置密碼
./elasticsearch-setup-passwords interactive
這會(huì)訪問(wèn)需要密碼了汁雷,輸入剛才設(shè)置的密碼就正常訪問(wèn)
java程序修改净嘀,新增用戶及密碼,密碼放到配置里了
RestHighLevelClient client() {
RestClientBuilder build = RestClient.builder(createHosts()).setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
@Override
public RequestConfig.Builder customizeRequestConfig(RequestConfig.Builder builder) {
return builder.setConnectTimeout(5000 * 1000) // 連接超時(shí)(默認(rèn)為1秒)
.setSocketTimeout(6000 * 1000);// 套接字超時(shí)(默認(rèn)為30秒)//更改客戶端的超時(shí)限制默認(rèn)30秒現(xiàn)在改為100分鐘
}
});
//加密碼后增加
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
build.setHttpClientConfigCallback((HttpAsyncClientBuilder httpAsyncClientBuilder) -> httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
//加密碼后增加
RestHighLevelClient restHighLevelClient = new RestHighLevelClient(build);
return restHighLevelClient;
}
重啟java應(yīng)用再次訪問(wèn)侠讯,正常了
接下來(lái)看看Kibana挖藏,連不上了
配置Kibana config/kinana.yml
默認(rèn)是注釋掉的
elasticsearch.username: kibana
elasticsearch.password: password
使用剛才設(shè)置密碼的用戶登錄
ES集群
首先至少是三個(gè)節(jié)點(diǎn)
1、生成證書(shū)(后面要用)
cd /home/elasticsearch-7.4.2/bin
./elasticsearch-certutil cert
回車厢漩,空密碼(可以輸入密碼)膜眠,回車
將elastic-certificates.p12 復(fù)制到三個(gè)節(jié)點(diǎn)下config
2、新增配置(三臺(tái)都一樣)
文件config/elasticsearch.yml
跟單機(jī)版差不多溜嗜,增加了證書(shū)
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.license.self_generated.type: basic
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
3宵膨、重啟集群
先停掉子節(jié)點(diǎn),再停master
啟動(dòng)先起master,在起子節(jié)點(diǎn)
如果生產(chǎn)有訪問(wèn)炸宵,先停掉
4辟躏、設(shè)置密碼(設(shè)置一臺(tái)即可,會(huì)同步的)
可以自動(dòng)設(shè)置密碼
./elasticsearch-setup-passwords auto
copy密碼保存
驗(yàn)證一下密碼生效沒(méi)有
curl http://10.192.32.158:9200
curl --user elastic:密碼 http://10.192.32.158:9200
5土全、Kinana配置并重啟
證書(shū)轉(zhuǎn)換(elastic-certificates.p12 轉(zhuǎn)換成elastic-certificates.pem)
openssl pkcs12 -in elastic-certificates.p12 -out elastic-certificates.pem -nodes
得到elastic-certificates.pem 捎琐,復(fù)制到kinana config下
修改配置(config/kinana.yml)
殺進(jìn)程 重啟(nohup ./kibana --allow-root &)
可以登錄訪問(wèn)了,用戶就是剛才設(shè)置過(guò)密碼的用戶裹匙,部分權(quán)限不夠瑞凑,使用elastic