EFK中如何进行ES集群开启用户认证

本篇文章为大家展示了EFK中如何进行ES集群开启用户认证,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

公司主营业务:成都网站建设、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出雁峰免费做网站回馈大家。

基于ES内置及自定义用户实现kibana和filebeat的认证

关闭服务

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


elasticsearch-修改elasticsearch.yml配置

EFK中如何进行ES集群开启用户认证

按以上表格对应的实例新增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密码

EFK中如何进行ES集群开启用户认证

测试内部用户

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

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

EFK中如何进行ES集群开启用户认证

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

EFK中如何进行ES集群开启用户认证


kibana-创建私钥库

在192.168.1.21创建私钥库

cd /opt/kibana/
# 创建密钥库
sudo -u kibana ./bin/kibana-keystore create
# 连接ES用户名,这里输入kibana
sudo -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

EFK中如何进行ES集群开启用户认证

启动服务

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

kibana-WEB界面确认用户

登入kibana

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

EFK中如何进行ES集群开启用户认证

EFK中如何进行ES集群开启用户认证


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

创建自定义的filebeat角色

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

EFK中如何进行ES集群开启用户认证

EFK中如何进行ES集群开启用户认证

创建自定义的filebeat用户

EFK中如何进行ES集群开启用户认证

EFK中如何进行ES集群开启用户认证


filebeat-服务器上创建密钥库

在192.168.1.11创建filebeat密钥库

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

EFK中如何进行ES集群开启用户认证

确认filebeat密钥库

./filebeat keystore list

EFK中如何进行ES集群开启用户认证


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是一致的

# 输出至elasticsearch
output.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中查看

EFK中如何进行ES集群开启用户认证


kibana角色权限相关文档链接

https://www.elastic.co/guide/en/elasticsearch/reference/7.3/security-privileges.html#privileges-list-cluster

上述内容就是EFK中如何进行ES集群开启用户认证,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


分享标题:EFK中如何进行ES集群开启用户认证
文章链接:http://ybzwz.com/article/igeogc.html