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

作者:“发颠的小狼”,欢迎转载


目录

▪ 用途

▪ 关闭服务

▪ elasticsearch-修改elasticsearch.yml配置

▪ elasticsearch-开启服务

▪ elasticsearch-建立本地内置用户

▪ kibana-创建私钥库

▪ kibana-WEB界面确认用户

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

▪ filebeat-服务器上创建密钥库

▪ filebeat-配置filebeat.yml

▪ 测试

▪ 附录


用途

前情提要:

▷ 在第一篇《EFK教程 - 快速入门指南》中,阐述了EFK的安装部署,其中ES的架构为三节点,即master、ingest、data角色同时部署在三台服务器上。

▷ 在第二篇《EFK教程 - ElasticSearch高性能高可用架构》中,阐述了EFK的data/ingest/master角色的用途及分别部署三节点,在实现性能最大化的同时保障高可用。

▷ 在第三篇《EFK教程(3) - ElasticSearch冷热数据分离》中,阐述了ES多实例部署,将不同热度的数据存在不同的磁盘上,实现了数据冷热分离、资源合理分配。

▷ 在第四篇《EFK教程(4) - ElasticSearch集群TLS加密通讯》中,阐述了ES集群创建CA、CERT证书,实现ElasticSearch集群之间数据通过TLS进行双向加密交互。

本文:

▷ ES集群开启内置用户和自定义用户

▷ kibana通过ES内置kibana用户连接ES集群

▷ filebeat通过ES自定义test-filebeat用户连接ES集群


关闭服务

在进行下面实验前,请先关闭所有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用户名,这里输入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

启动服务

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是一致的 # 输出至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中查看


附录

kibana角色权限相关文档链接

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

EFK教程(5) - ES集群开启用户认证的更多相关文章

  1. EFK-5: ES集群开启用户认证

    转载自:https://mp.weixin.qq.com/s?__biz=MzUyNzk0NTI4MQ==&mid=2247483826&idx=1&sn=583e9a5260 ...

  2. EFK教程(4) - ElasticSearch集群TLS加密通讯

    基于TLS实现ElasticSearch集群加密通讯 作者:"发颠的小狼",欢迎转载 目录 ▪ 用途 ▪ ES节点信息 ▪ Step1. 关闭服务 ▪ Step2. 创建CA证书 ...

  3. mongodb分片集群开启安全认证

    原文地址:https://blog.csdn.net/uncle_david/article/details/78713551 对于搭建好的mongodb副本集加分片集群,为了安全,启动安全认证,使用 ...

  4. cloudera集群开启kerberos认证后,删除zk中的/hbase目录

    问题 在cdh集群中开启了kerberos认证,hbase集群出现一点问题,需要通过zookeeper-client访问zookeeper,删除/hbase节点时候报错:Authentication ...

  5. 为Kubernetes集群添加用户认证

    Kubernetes中的用户 K8S中有两种用户(User)--服务账号(ServiceAccount)和普通意义上的用户(User) ServiceAccount是由K8S管理的,而User通常是在 ...

  6. 【7.1.1】ELK集群搭建 之 ES集群

    写在前边 昨天晚上就已经完成这篇博客了,就是在测试这块是否正常跑起来,晚上没搞完,上班前把电脑关机带着,结果没保存!基本上昨天写的东西都丢了,好在博客园的图片url还在. 为了让大家都轻松些,我轻松写 ...

  7. ES集群7.3.0设置快照,存储库进行索引备份和恢复等

    说明:三台ES节点组成ES集群,一台kibana主机,版本均是7.3.0,白金试用版 官方地址:https://www.elastic.co/guide/en/elasticsearch/refere ...

  8. ES 集群调整、升级 最佳实践

    日常应用中我们会经常对es 集群做一些参数调整或者升级版本,但是每次关闭节点再打开 其中的数据同步的痛苦估计有很多人领悟过(有可能出现IO或者网络拥堵导致恶性循环)官网有套方案可以尝试一下: 1.关掉 ...

  9. ES 集群上,业务单点如何优化升级?

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! ES 基础 ES 集群 ES 集群上业务优化 一.ES 基础 ...

随机推荐

  1. H3C STP可选配置

  2. H3C使用ping命令--用户视图

    完整的ping命令,用于下面参考 <H3C>ping 1.1.1.1   PING 1.1.1.1: 56  data bytes, press CTRL_C to break     R ...

  3. C# 任务并行

    . List<int> ids = new List<int>(); ; i < ; i++) { ids.Add(i); } ;//最大并行数量 List<Tas ...

  4. Kobjects, Ksets 和 Subsystems

    Kobject 是基础的结构, 它保持设备模型在一起. 初始地它被作为一个简单的引用计数, 但是它的责任已随时间增长, 并且因此有了它自己的战场. struct kobject 所处理的任 务和它的支 ...

  5. Hbase概念原理扫盲

    一.Hbase简介 1.什么是Hbase Hbase的原型是google的BigTable论文,收到了该论文思想的启发,目前作为hadoop的子项目来开发维护,用于支持结构化的数据存储. Hbase是 ...

  6. HDU6578 2019HDU多校训练赛第一场 1001 (dp)

    HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...

  7. Text Style Transfer论文笔记

    Text Style Transfer主要是指Non-Parallel Data条件下的,具体的paper list见: https://github.com/fuzhenxin/Style-Tran ...

  8. 西游记之孙悟空三打白骨精(IMAX)

    短评:看了20分钟就有玩手机的冲动.剧情还差点意思,不能达到吸引人目不转睛的程度

  9. Python_自定义关键字的使用

    1.在Python中新建一个套件MOSAPP(一般为APP名称):New Suite→Directory 2.在套件下新建个资源文件My:New Resource:My 3.在My资源文件库下新建个关 ...

  10. 本地项目推送到coding

      当我们本地新建了一个项目,需要放到coding上维护时,按照下面步骤即可做到. 1.先在coding上新建一个项目,并完成初始化. 2.进入到本地项目的目录下 //初始化本地仓库 a:git in ...