千家信息网

怎么用ES集群开启用户认证

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章为大家分享用ES集群开启用户认证的方法。文章还介绍了kibana-WEB界面确认用户的方法7以及filebeat服务器上创建密钥库,希望大家通过这篇文章能有所收获。在进行下面实验前,请先关闭所
千家信息网最后更新 2025年02月05日怎么用ES集群开启用户认证

这篇文章为大家分享用ES集群开启用户认证的方法。文章还介绍了kibana-WEB界面确认用户的方法7以及filebeat服务器上创建密钥库,希望大家通过这篇文章能有所收获。

在进行下面实验前,请先关闭所有ElasticSearch、kibana、filebeat进程

elasticsearch-修改elasticsearch.yml配置

按以上表格对应的实例新增conf目录下elasticsearch.yml配置参数

# 在所有实例上加上以下配置# 开启本地用户xpack.security.enabled: true# xpack的版本xpack.license.self_generated.type: basic

elasticsearch-开启服务

开启所有ES服务

sudo -u elasticsearch ./bin/elasticsearch

elasticsearch-建立本地内置用户

本地内置elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user用户

# 在其中一台master节点操作# interactive 自定密码 auto自动生密码sudo -u elasticsearch ./bin/elasticsearch-setup-passwords interactive# 输入elastic密码# 输入apm_system密码# 输入kibana密码# 输入logstash_system密码# 输入beats_system密码# 输入remote_monitoring_user密码

测试内部用户

通过base64将elastic用户进行加密,格式为"elastic:elastic的密码"

# 例如以下格式curl -H "Authorization: Basic ZWxhc3RpYzplbGFzdGkxMjM0NTY3OA==" "http://192.168.1.31:9200/_cat/nodes?v"

如果不通过Basic访问或base64加密错误会报以下错误


kibana-创建私钥库

在192.168.1.21创建私钥库

cd /opt/kibana/# 创建密钥库sudo -u kibana ./bin/kibana-keystore create# 连接ES用户名,这里输入kibanasudo -u kibana ./bin/kibana-keystore add elasticsearch.username# 连接ES密码,这里输入刚刚设置kibana的密码sudo -u kibana ./bin/kibana-keystore add elasticsearch.password

在192.168.1.21确认私钥库

sudo -u kibana ./bin/kibana-keystore list

启动服务

sudo -u kibana /opt/kibana/bin/kibana -c /opt/kibana/config/kibana.yml

kibana-WEB界面确认用户

登入kibana

在浏览器输入192.168.1.21:5601,用户名:elastic 密码:之前输入elastic的密码


filebeat-在WEB界面创建角色及用户

创建自定义的filebeat角色

关于角色权限的说明请自行查阅附录链接

创建自定义的filebeat用户


filebeat-服务器上创建密钥库

在192.168.1.11创建filebeat密钥库

cd /opt/filebeat/#创建密钥库./filebeat keystore create#创建test-filebeat用户私钥./filebeat keystore add test-filebeat

确认filebeat密钥库

./filebeat keystore list


filebeat-配置filebeat.yml

配置filebeat.yml

# 文件输入filebeat.inputs:  # 文件输入类型  - type: log    # 开启加载    enabled: true    # 文件位置    paths:      - /var/log/nginx/access.log    # 自定义参数    fields:      type: nginx_access # 类型是nginx_access,和上面fields.type是一致的# 输出至elasticsearchoutput.elasticsearch:  # 连接ES集群的用户名  username: test-filebeat  # 连接ES集群的密码  password: "${test-filebeat密码}"  # elasticsearch集群  hosts: ["http://192.168.1.31:9200",          "http://192.168.1.32:9200",          "http://192.168.1.33:9200"]  # 索引配置  indices:    # 索引名    - index: "nginx_access_%{+yyy.MM}"      # 当类型是nginx_access时使用此索引      when.equals:        fields.type: "nginx_access"# 关闭自带模板setup.template.enabled: false# 开启日志记录logging.to_files: true# 日志等级logging.level: info# 日志文件logging.files:  # 日志位置  path: /opt/logs/filebeat/  # 日志名字  name: filebeat  # 日志轮转期限,必须要2~1024  keepfiles: 7  # 日志轮转权限  permissions: 0600

启动filebeat

/opt/filebeat/filebeat -e -c /opt/filebeat/filebeat.yml -d "publish"

测试

写入一条数据

curl -I "http://192.168.1.11"

在kibana中查看

看完这篇文章,你们学会用ES集群开启用户认证的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读。
0