EFK教程(5) - ES集群开启用户认证

基于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集群开启用户认证的更多相关文章
- EFK-5: ES集群开启用户认证
转载自:https://mp.weixin.qq.com/s?__biz=MzUyNzk0NTI4MQ==&mid=2247483826&idx=1&sn=583e9a5260 ...
- EFK教程(4) - ElasticSearch集群TLS加密通讯
基于TLS实现ElasticSearch集群加密通讯 作者:"发颠的小狼",欢迎转载 目录 ▪ 用途 ▪ ES节点信息 ▪ Step1. 关闭服务 ▪ Step2. 创建CA证书 ...
- mongodb分片集群开启安全认证
原文地址:https://blog.csdn.net/uncle_david/article/details/78713551 对于搭建好的mongodb副本集加分片集群,为了安全,启动安全认证,使用 ...
- cloudera集群开启kerberos认证后,删除zk中的/hbase目录
问题 在cdh集群中开启了kerberos认证,hbase集群出现一点问题,需要通过zookeeper-client访问zookeeper,删除/hbase节点时候报错:Authentication ...
- 为Kubernetes集群添加用户认证
Kubernetes中的用户 K8S中有两种用户(User)--服务账号(ServiceAccount)和普通意义上的用户(User) ServiceAccount是由K8S管理的,而User通常是在 ...
- 【7.1.1】ELK集群搭建 之 ES集群
写在前边 昨天晚上就已经完成这篇博客了,就是在测试这块是否正常跑起来,晚上没搞完,上班前把电脑关机带着,结果没保存!基本上昨天写的东西都丢了,好在博客园的图片url还在. 为了让大家都轻松些,我轻松写 ...
- ES集群7.3.0设置快照,存储库进行索引备份和恢复等
说明:三台ES节点组成ES集群,一台kibana主机,版本均是7.3.0,白金试用版 官方地址:https://www.elastic.co/guide/en/elasticsearch/refere ...
- ES 集群调整、升级 最佳实践
日常应用中我们会经常对es 集群做一些参数调整或者升级版本,但是每次关闭节点再打开 其中的数据同步的痛苦估计有很多人领悟过(有可能出现IO或者网络拥堵导致恶性循环)官网有套方案可以尝试一下: 1.关掉 ...
- ES 集群上,业务单点如何优化升级?
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! ES 基础 ES 集群 ES 集群上业务优化 一.ES 基础 ...
随机推荐
- The call() and apply() Mtheods
Example 6-4function classof(o) { if (o === null) return "Null"; if (o ===undefined ...
- 【t056】智力问答(multiset做法)
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 新年联欢会上,G.Sha负责组织智力问答节目.G.Sha建立了一个很大很大的超级题库,并衡量了每道题的 ...
- D3.js力导向图(适用于其他类型图)中后添加元素遮盖已有元素的问题解决
上一篇说了在D3.js中动态增加节点及连线的一种实现方式,但是有后添加元素遮盖原节点的现象,这一篇说一下出现这个现象的解决办法. 在D3.js中后添加的元素是会遮盖先添加的元素的,同时还有一个设定:后 ...
- linux c函数参考手册
一.字符测试 isalnum(测试字符是否为英文字母或数字) isalpha(测试字符是否为英文字母) isascii(测试字符是否为ascii码字符) isblank(测试字符是否为空格字符) is ...
- HMaster/HRegion Server 工作原理
1.HBase系统架构 2. HRegion Sever架构图 0.94之前的版本 0.96+的版本 WAL: 即Write Ahead Log, 是HDFS上一个文件,早期版本中称为 ...
- 【ZooKeeper系列】3.ZooKeeper源码环境搭建
前文阅读: [ZooKeeper系列]1.ZooKeeper单机版.伪集群和集群环境搭建 [ZooKeeper系列]2.用Java实现ZooKeeper API的调用 在系列的前两篇文章中,介绍了Zo ...
- ulimit -u 解决 Jenkins OOM 错误
Apr 24, 2018 11:19:48 AM hudson.init.impl.InstallUncaughtExceptionHandler$DefaultUncaughtExceptionHa ...
- CSP201803-4棋局评估
问题描述 Alice和Bob正在玩井字棋游戏. 井字棋游戏的规则很简单:两人轮流往3*3的棋盘中放棋子,Alice放的是“X”,Bob放的是“O”,Alice执先.当同一种棋子占据一行.一列或一条对角 ...
- 【题解】P5589 小猪佩奇玩游戏(期望)
[题解]P5589 小猪佩奇玩游戏(期望) 假设一个点有\(x\)个点(包括自己)可以到达他,他就对答案有\(1/x\)的贡献.这是因为这个点必须被删掉而通过删掉这个点本身删掉这个点的概率是\(1/x ...
- $bzoj3872\ [Poi2014]\ Ant\ colony$ 二分+$dp$
正解:二分+$dp$ 解题报告: 传送门$QwQ$ 一年过去了依然没有头绪,,,$gql$的$NOIp$必将惨败了$kk$. 考虑倒推,因为知道知道除数和答案,所以可以推出被除数的范围,然后一路推到叶 ...