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

原文地址:https://www.cnblogs.com/fzxiaomange/p/efk-userauth.html

时间: 2024-08-30 04:19:32

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

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

基于TLS实现ElasticSearch集群加密通讯 作者:"发颠的小狼",欢迎转载 目录 ? 用途? ES节点信息? Step1. 关闭服务? Step2. 创建CA证书? Step3. 创建CERT证书? Step4. 创建密钥库? Step5. 删除CA证书? Step6. 修改elasticsearch.yml配置? Step7. 启动服务? 附. 参考文档 用途 前情提要: ? 在第一篇<EFK教程 - 快速入门指南>中,阐述了EFK的安装部署,其中Elastic

Spark教程-构建Spark集群-运行Ubuntu系统(1)

为了简化权限等问题,下面我们以root用户的身份登录和使用Ubuntu系统,而Ubuntu在默认情况下并没有开启root用户,这需要我们做如下设置: sudo  -s进入 root用户权限模式 vim /etc/lightdm/lightdm.conf [SeatDefaults] greeter-session=unity-greeter user-session=ubuntu greeter-show-manual-login=true #手工输入登陆系统的用户名和密码 allow-gues

ES集群部署及调优

系统:Centos6ES版本:6.4.0服务器三台172.16.0.8172.16.0.6172.16.0.22 部署jdk解压jdk放在/data目录,/data/jdk配置环境变量,/etc/proifle里面加入如下 export JAVA_HOME=/data/jdk export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH s

Spark教程-构建Spark集群-配置Hadoop单机模式并运行Wordcount(1)

安装ssh Hadoop是采用ssh进行通信的,此时我们要设置密码为空,即不需要密码登陆,这样免去每次通信时都输入秘密,安装如下: 输入“Y”进行安装并等待自动安装完成. 安装ssh完成后启动服务 以下命令验证服务是否正常启动: 可以看到ssh正常启动: 设置免密码登录,生成私钥和公钥: 在/root/.ssh中生成两个文件:id_rsa和id_rsa.pub,id_rsa为私钥,id_rsa.pub为公钥,我们将公钥id_rsa.pub追加到 authorized_keys中,因为author

部署带有验证的es集群及创建快照

1?? 环境准备① 关闭防火墙.selinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configsetenforce 0systemctl stop firewalldsystemctl disable firewalld ② 修改系统最大打开文件数和进程数cat <<EOF >> /etc/security/limits.conf* soft nofile 65536* hard nofile 6

下载快速上手数据挖掘之solr搜索引擎高级教程(Solr集群、KI分词、项目实战)

Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎. 快速上手数据挖掘之solr搜索引擎高级教程(Solr集群.KI分词.项目实战),刚刚入手,转一注册文件,视频的确不错,可以先下载看看:http://pan.baidu.com/s/1jIdgtWM 密码:s1t3

ES集群性能调优链接汇总

ES集群稳定性: 1. 集群稳定性的一些问题(一定量数据后集群变得迟钝) https://elasticsearch.cn/question/84 2.ELK 性能(2) - 如何在大业务量下保持 Elasticsearch 集群的稳定 http://www.cnblogs.com/richaaaard/p/6117089.html

Spark教程-构建Spark集群(1)

对于90%以上想学习Spark的人而言,如何构建Spark集群是其最大的难点之一,为了解决大家构建Spark集群的一切困难,家林把Spark集群的构建分为了四个步骤,从零起步,不需要任何前置知识,涵盖操作的每一个细节,构建完整的Spark集群. 从零起步,构建Spark集群经典四部曲: 第一步:搭建Hadoop单机和伪分布式环境: 第二步:构造分布式Hadoop集群: 第三步:构造分布式的Spark集群: 第四步:测试Spark集群: 本文内容为构建Spark集群经典四部曲的第一步,从零起步构建

Spark教程-构建Spark集群-安装Ubuntu系统(2)

3.点击“Finish”完成虚拟系统的创建,如下图所示: 点击我们创建的Ubuntu,如下所示 点击“CD/DVD(IDE)”进入如下界面 选择我们的Ubuntu的ISO的具体存放路径,选择好后如下图所示: 点击“OK”完成设置: 点击“Memory”,进入如下界面: 此时把我们虚拟的内存设置为2G,如下所示: 点击“OK”完成设置. Spark教程-构建Spark集群-安装Ubuntu系统(2)