elasticsearch 6.3 版本之前的添加认证需安装x-pack插件,之后直接在配置中启用就行。
插件下载地址:修改版本号即可得到相应的版本。
https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.0.0.zip
参考文档:
jianshu.com/p/802c5d803a95 pianshen.com/article/9193681216/
查看集群相关信息:
curl -XGET 'http://10.1.55.73:9200/_cat/nodes' curl -XGET 'http://10.1.55.73:9200/_cat/indices'
安装x-pack:
cd /usr/share/elasticsearch/ ./bin/elasticsearch-plugin install file:///root/x-pack-6.0.0.zip
设置密码:设置密码的时候要注意密码需要有复杂度
cd ./elasticsearch/bin/x-pack/ ./setup-passwords interactive
修改配置:追加如下配置
vim /etc/elasticsearch/elasticsearch.yml http.cors.enabled: true http.cors.allow-origin: '*' http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
平滑重启集群:
禁止分片分配:
curl -H "Content-Type: application/json" -XPUT http://10.1.55.73:9200/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.enable" : "none" }}'重启节点:对节点进行一些操作之后。
systemctl restart elasticsearch.service
重启分片分配:
curl -H "Content-Type: application/json" -XPUT http://10.1.55.73:9200/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.enable" : "all" }}'关于平滑重启es的参考文档:
cnblogs.com/bonelee/p/7458374.html
重启好集群之后访问集群要加密码:之后的本地curl操作都需要加上 -u 选项。
curl -XGET -u elastic:password123456 'http://10.1.55.73:9200/_cat/nodes'
配置kibana:
vim /etc/kibana/kibana.yml elasticsearch.username: "kibana" elasticsearch.password: "password123456"
重启kibana:
systemctl restart kibana
logstash密码配置:
开启认证之后无论是kibana还是本地的curl都要密码才能访问包括logstash:下面的配置是7.x之后的。
xpack.monitoring.enabled: true xpack.monitoring.elasticsearch.username: logstash_system xpack.monitoring.elasticsearch.password: ***** xpack.monitoring.elasticsearch.hosts: ["http://ip:9200"]
filebeat密码配置:
output.elasticsearch: hosts: ["192.168.0.30:9200"] #protocol: "https" username: "elastic" password: "password123456"
这其中涉及到要创建有权限的账号来创建索引,否者默认的elastic账号只能查看不能创建索引。
示例一:
创建角色:
curl -H "Content-Type: application/json" -XPOST -u elastic:password123456 192.168.0.30:9200/_xpack/security/role/filebeat_writer -d '{
"cluster": ["manage_index_templates", "monitor"],
"indices": [
{
"names": [ "filebeat-*" ],
"privileges": ["write","create_index"]
}
]
}'
{"role":{"created":true}}创建用户:
curl -H "Content-Type: application/json" -XPOST -u elastic:password123456 192.168.0.30:9200/_xpack/security/user/filebeat_internal -d '{
"password" : "x-pack-test-password",
"roles" : [ "filebeat_writer"],
"full_name" : "Internal Filebeat User"
}'
{"user":{"created":true}}示例二:
创建admin角色:
curl -H "Content-Type: application/json" -XPOST -u elastic:password123456 192.168.0.30:9200/_xpack/security/role/admin -d '{
"cluster":["all"],
"indices":[
{
"names":["*"],
"privileges":["all"]
}
]
}'创建admin用户:
curl -H "Content-Type: application/json" -XPOST -u elastic:password123456 192.168.0.30:9200/_xpack/security/user/admin -d '{
"password" : "password123456",
"roles" : [ "admin"],
"full_name" : "Internal Filebeat User"
}'
{"user":{"created":true}}参考:
elastic.co/guide/en/beats/filebeat/6.0/beats-basic-auth.html elasticsearch.cn/question/4397