文档章节

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

小慢哥
 小慢哥
发布于 01/24 16:44
字数 1123
阅读 194
收藏 0

基于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

© 著作权归作者所有

小慢哥
粉丝 7
博文 27
码字总数 49485
作品 0
福州
架构师
私信 提问
加载中

评论(0)

k8s集群之日志收集EFK架构

k8s集群之日志收集EFK架构 参考文档 http://tonybai.com/2017/03/03/implement-kubernetes-cluster-level-logging-with-fluentd-and-elasticsearch-stack/ https://github.com/kubernetes/k......

minminmsn
2017/03/16
0
0
理解OpenShift(6):集中式日志处理

理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4):用户及权限管理 理解OpenShift(5):从 Do...

SammyLiu
2018/12/19
0
0
k8s helm efk 问题

[root@master03 ~]# kubectl logs -n efk efk-es-elasticsearch-client-786d9b46c9-cmn2w OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and......

weir2016
2019/09/10
312
2
ELK 7.2 单节点开启安全认证

7.2.0 版本以后的Elastic Stack添加了很多安全相关的功能,6.3版本以后原本闭源收费的X-pack组件也开源了一部分功能,代码可以在github下载免费试用。这其中最关键的一点是ES和Kibana的安全认...

半夜菊花茶
2019/07/11
0
0
SpringBoot应用基于docker和EFK的日志处理

1.概述 在分布式集群环境下,单个节点的日志内容往往都是存放在自己的节点上,这种独立分散的日志存储方式会有很多问题。我们需要一个统一的日志处理中心,对日志进行收集和集中存储,并进行...

QiHaiYan
2016/10/21
666
0

没有更多内容

加载失败,请刷新页面

加载更多

济南哪里可以开礼品费发票-腾讯新闻网

济南哪里可以开礼品费发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridg...

16534163822
25分钟前
16
0
济南哪里可以开五金材料发票-腾讯新闻网

济南哪里可以开五金材料发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bri...

16566493077
26分钟前
35
0
济南哪里可以开钢材发票-腾讯新闻网

济南哪里可以开钢材发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridge,...

16534163727
26分钟前
25
0
济南哪里可以开汽车租赁费发票-腾讯新闻网

济南哪里可以开汽车租赁费发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug B...

17035270196
27分钟前
18
0
济南哪里可以开体育用品发票-腾讯新闻网

济南哪里可以开体育用品发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bri...

17035270010
28分钟前
29
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部