从之前的部署来看 ElasticSearch、Kibana以及ElasticHQ或者是Head,这些都没有进行身份验证,ELK官方提供了XPACK可以用来做验证机制。
XPACK从6的版本开始就已经集成无需单独部署,此外XPACK是有商业License的,提供了更丰富的制表,绘图,安全、监控、报警等扩展。
修改ES Master的配置文件
vim /etc/elasticsearch/elasticsearch.yml
#追加下列行
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
xpack.security.enabled: true
xpack.security.audit.enabled: true #用于集群审计 追踪
service elasticsearch restart #保险起见,将master和其他节点一起重启ES服务
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive #设置密码,为了方便我就全部设置成一样的了
修改Kibana配置文件
vim /etc/kibana/kibana.yml
elasticsearch.username: "elastic"
elasticsearch.password: "ELKStack2019"
service kibana restart
修改logstash配置文件
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => ["192.168.2.130:9200","192.168.2.131:9200"]
index => "nginx-test-%{+YYYY.MM.dd}"
user => "elastic"
password => "ELKStack2019"
}
}
相关beat也需要修改,当然我这里之前没有装过beat
API带密码的查询方法
curl -XGET --user elastic:ELKStack2019 "192.168.2.130:9200/_cat/health?v"
ElastcHQ: 不需要修改配置文件,在打开页面后的集群地址输入http://elstic:******@localhost:9200 方式访问
ES节点提供SSL
生成证书
/usr/share/elasticsearch/bin/elasticsearch-certgen
#文件名
#集群名
#直接回车
#节点IP 逗号隔开
#节点名称 逗号隔开
cp /usr/share/elasticsearch/elk.zip /root/ && cd && mkdir elkca && cd elkca && cp ../elk.zip ./ && unzip elk.zip
#为es集群创建证书颁发机构
/usr/share/elasticsearch/bin/elasticsearch-certutil ca #全部回车
/usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 #全部回车
mkdir /etc/elasticsearch/cert
cp /usr/share/elasticsearch/*.p12 /etc/elasticsearch/cert/
cp -r /root/elkca/ !$
scp -r !$ 192.168.2.202:/etc/elasticsearch/
下列操作两台ES都要做
chown -R elasticsearch:elasticsearch /etc/elasticsearch/cert/ #*** 需要把属主改了
vim /etc/elasticsearch/elasticsearch.yml
#加上
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
#xpack.http.ssl.key: /etc/elasticsearch/cert/elkca/austyn-elk/austyn-elk.key #不行
#xpack.http.ssl.certificate: /etc/elasticsearch/cert/elkca/austyn-elk/austyn-elk.crt
#xpack.http.ssl.certificate_authorities: /etc/elasticsearch/cert/elkca/ca/ca.crt
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/cert/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/cert/elastic-certificates.p12
下面的3行实际上是为了配置XPACK,内部加密通讯
如果希望9200也是https的需要其他配置,但是我上面的配并没有成功
浏览器打开Kibana、HQ 查看效果