转载自:https://mp.weixin.qq.com/s?__biz=MzUyNzk0NTI4MQ==&mid=2247483826&idx=1&sn=583e9a526050682ae060f601eced917b&chksm=fa769a9ccd01138a8740171769d1149a5df706ab3523eb0cbb5697293bda6e46954641d49f99&mpshare=1&scene=1&srcid=01245nkmqHupjQF7csKql1i5&sharer_sharetime=1579865464558&sharer_shareid=6ec87ec9a11a0c18d61cde7663a9ef87#rd

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

关闭服务

先关闭所有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、apmsystem、kibana、logstashsystem、beatssystem、remotemonitoring_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加密错误会报以下错误:

"status": 401

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

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

base64加密解密网站链接

https://tool.oschina.net/encrypt?type=3

EFK-5: ES集群开启用户认证的更多相关文章

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

    基于ES内置及自定义用户实现kibana和filebeat的认证 作者:"发颠的小狼",欢迎转载 目录 ▪ 用途 ▪ 关闭服务 ▪ elasticsearch-修改elastics ...

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

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

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

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

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

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

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

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

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

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

  7. Mongo开启用户认证

      1. 介绍 由于mongodb默认没有设置密码访问,而且mongodb的访问权限设计,必须使用有权限的用户给每个库设置一个用户,才能使用,且2.X版本与3.X版本区别有点大,所以要注意以下几点. ...

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

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

  9. Elasticsearch-6.7.0系列(二)ES集群安装与验证

    准备3台centos7机器/虚拟机,每台都安装上elasticsearch6.7.0 ,安装过程参考我的另一篇博客<Elasticsearch-6.7.0系列(一)9200端口 .tar.gz版 ...

随机推荐

  1. 常用类-Instant、DateTimeFormatter类的使用

    一.Instant 我们所处的时间点是在东八区,Java中Instant所计算出来的时间是按本初子午线的时间来算的,与我们的时间相差8个小时,也就是说当我的北京时间是上午九点时,本初子午线的时间是凌晨 ...

  2. samba打开一个文件的函数调用栈

    ceph_open cephwrap_open open_fn smb_vfs_call_open SMB_VFS_OPEN fd_open fd_open_atomic open_file open ...

  3. 数据库持久化+JDBC数据库连接

    数据持久化 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称.数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型.XML.二进制流等. 瞬时状态 保 ...

  4. 加强版:合并果子[NOIP2004]

    题目 链接:https://ac.nowcoder.com/acm/contest/26887/1001 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K, ...

  5. java后端分片上传接口

    文件上传工具--FileUtil package com.youmejava.chun.util; import lombok.Data; import org.apache.tomcat.util. ...

  6. TCP/IP协议三次握手、四次断开

    1.tcp报文格式 1行代表一个字节: 第一行:代表源端口和目的端口,分别占16位: 第二行:32位序列号:表示客户端向服务端发送的报文的序号是多少,这个序号是计算机随机生成的一个代表该报文的唯一标示 ...

  7. centos 8及以上安装mysql 8.0

    本文适用于centos 8及以上安装mysql 8.0,整体耗时20分钟内,不需要FQ 1.环境先搞好 systemctl stop firewalld //关闭防火墙 systemctl disab ...

  8. Jetpack Compose学习(9)——Compose中的列表控件(LazyRow和LazyColumn)

    原文:Jetpack Compose学习(9)--Compose中的列表控件(LazyRow和LazyColumn) - Stars-One的杂货小窝 经过前面的学习,大致上已掌握了compose的基 ...

  9. Luogu5019 铺设道路 (贪心)

    水题,水得好无语 #include <iostream> #include <cstdio> #include <cstring> #include <alg ...

  10. java-分支重载以及构造方法

    1:方法的签名: 方法名+参数列表就是一个方法的签名 2.方法的重载(Overload): 1)发生在同一个类中,方法名称相同,参数列表不同 2)编译器在编译时会根据方法的签名自动绑定方法 3.构造方 ...