使用x-pack集群监控及密码验证功能。
废话不多说!上
一. 前提
ElasticSearch集群正常启动
ES_HOME = ${ES_HOME}
二. x-pack密钥生成
注意:此时集群不启动
生成密钥
#在ES_HOME/config 目录下生成密钥文件
ES_HOME/bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
#密钥文件分发至其他节点
scp elastic-certificates.p12 es_node_name_01:$PWD
scp elastic-certificates.p12 es_node_name_02:$PWD
三. 修改配置文件
1.elasticsearch.yml
#末尾添加x-pack配置
#是否支持跨域
http.cors.enabled: true
#当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。比如只允许本地地址。/https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: ES_HOME/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: ES_HOME/config/elastic-certificates.p12
#开启集群资源监控
xpack.monitoring.enabled: true
xpack.monitoring.collection.enabled: true
# 缓存回收大小,无默认值
# 有了这个设置,最久未使用(LRU)的 fielddata 会被回收为新数据腾出空间
# 控制fielddata允许内存大小,达到HEAP 20% 自动清理旧cache
indices.fielddata.cache.size: 20%
indices.breaker.total.use_real_memory: false
# fielddata 断路器默认设置堆的 60% 作为 fielddata 大小的上限。
indices.breaker.fielddata.limit: 40%
# request 断路器估算需要完成其他请求部分的结构大小,例如创建一个聚合桶,默认限制是堆内存的 40%。
indices.breaker.request.limit: 40%
# total 揉合 request 和 fielddata 断路器保证两者组合起来不会使用超过堆内存的 70%(默认值)。
indices.breaker.total.limit: 95%
2. kibana.yml
#配置登录密码
elasticsearch.username: "elastic"
elasticsearch.password: "elastic"
四. 启动集群&初始化密码
1.启动集群
#所有节点
ES_HOME/bin/elasticsearch -d
2. 初始化密码
ES_HOME/bin/elasticsearch-setup-passwords interactive
为了防止记错可以设置一样的账户密码 例如 elastic 输入六次
3. 测试
curl -X GET -u elastic:elastic localhost:9222/_cat/health?v
看到以下信息及x-pack配置成功