1 介绍

ELK日志管理属于基础设施平台,接入多个应用系统是正常现象,如果接入多个系统的索引文件没有进行权限划分,那么很大程度会出现索引文件误处理现象,为了避免这种情况发生,多用户及权限设置必不可少。

通过Filebeat采集应用日志,发送到redis(或者kafka),通过在filebeat.yml中设置fields.log_type属性来确定是哪个应用生成的日志文件,然后在logstash中针对不同的fields.log_type发往elasticsearch时创建不同的索引文件。

针对不同用户只能查看各自系统的索引文件.

前提条件:已对ElasticSearch集群配置TLS加密通信及身份验证功能,否则kibana界面在Management下面的Kibana最后不会出现Security
只有出现这个Security才能继续下面的步骤

kibana 批量插入es数据 kibana配置多个es_数据库

2 步骤

  1. 创建第一个应用系统app1index-log 角色,选择对应的索引文件,分配对应的权限read
    在Management下面的Kibana最后出现一个Security,有User和Role点击Role,

输入角色名(Role name):app1index-log 选择权限(Privileges):read 选择查看的索引(Indices):secure-*

然后点击最后的Creat role

kibana 批量插入es数据 kibana配置多个es_Management_02

  1. 创建第二个系统app2index-log角色,选择对应的索引文件,分配对应的权限read

在Management下面的Kibana最后出现一个Security,有User和Role,点击Role,

输入角色名(Role name):app2index-log 选择权限(Privileges):read 选择查看的索引(Indices):message-*

然后点击最后的Creat role

kibana 批量插入es数据 kibana配置多个es_大数据_03

kibana 批量插入es数据 kibana配置多个es_大数据_04

  1. 创建两个用户app1index/app1index(用户名/密码),app2index/app2index, 然后分配对应系统角色和kibana_user角色

在Management下面的Kibana最后出现一个Security,有User和Role,点击User
右上角有Creat User
输入用户账号,密码,重复密码,用户全名,邮箱,选择用户角色
app1index用户角色为app1index-log和kibana_user
app2index用户角色为app2index-log和kibana_user

分别添加后可以在用户列表中查看到效果

kibana 批量插入es数据 kibana配置多个es_User_05

kibana 批量插入es数据 kibana配置多个es_数据库_06

  1. 用户创建完后,可以进行登录验证
    登录app1index用户,只能在logs中查询app1的索引日志

虽然app1index用户可以看到其他的索引index-pattern, 但是无法查询到数据。所以保证了其他系统索引文件的安全。

登录app2index用户,只能在logs中查询app2index 索引日志,其他索引无法查询到数据。
app2index 用户选择其他未分配权限的索引,无法查询到数据。