一、es、kibana、logstash的版本是:7.8.0
二、第一步设置es密码,在停止es后修改在es的config文件夹中修改:elasticsearch.yml的配置文件填写如下:
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
重启es后在bin目录下执行以下代码(需要手动填写es相关的6个账户的密码):elastic、apm_system、kibana_system、logstash_system、beats_system、remote_monitoring_user
./elasticsearch-setup-passwords interactive
备注:在设置logstash_system的时候密码尽可能的不要使用‘@’。
配置密码后可以进行访问浏览器或者命令行都可以:
浏览器验证:
例如:http://192.168.86.141:9200
输入账号:elastic
输入密码:abcdefg
如果进入后显示下图
三、kibana 添加认证:
当es设置密码后会提供一个kibana_system的账户,打开kibana的config下kibana.yml配置文件找到username和password将密码输入进去后将kibana进行重启:
elasticsearch.username: "kibana_system"
elasticsearch.password: "输入密码"
kibana因为启动在node中所以ps -ef|grep kibana是查询不到的,所以需要使用:netstat -nalp|grep LIST 查看5601的端口号,然后找到对应的pid,再ps -ef|grep pid才可以找到。
浏览器验证:
例如:
http://192.168.86.141:5601/
输出以下结果证明配置成功,输入账号:elastic,输入密码即可。
备注:如果重启后提示无法连接,请将es和kibana分别重新启动即可。
三、logstsh添加认证
1、首先在logstash.yml中添加以下配置:
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: 密码
2、然后需要在数据采集的.conf配置文件中增加账密:
例如文件名为:change.conf
input {
tcp {
mode => "server"
port => 9601
}
}
filter {
}
output {
elasticsearch {
action => "index"
hosts => "http://192.168.86.141:9200"
user => "logstash_system"
password => "密码"
index => "test_log"
}
}
作用
input 是数据源
filter 数据过滤,因为这里字段很多,所以我将很多不必要的节点字段过滤掉了。
output 信息存储到哪里。我们是ES所以就这样了
3、最后修改完配置文件后启动logstash即可,查看日志输出:即为成功
Successfully started Logstash API endpoint {:port=>9600}
四、如果添加密码后想修改密码的话,可以使用以下命令对其账号进行修改:
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://ip:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }'