[置顶] ELK日志分析系统通过shield实现权限管理

时间:2021-09-19 16:17:00

网上很少有关于这方面的讲解或者是老版本的,不适合,自己摸索参照英文文档,实验成功的,写下来给大家分享。
不懂得可以一起讨论啊,下面评论就好了;
这里说的ELK日志是单机的,集群的一样配置,只是修改一下网络配置即可;实现的协议是HTTP;
1、版本
Elasticsearch :2.4.0
Logstash:2.4.0
Kibana:4.6.0
Shield:2.4.0
2、安装shield
首先安装shield时,保证机器上ELK已经安装好了。(elasticsearch安装目录:/usr/local/ELK/E/elasticsearch);
安装shield到Elasticsearch
把用户切换到Elasticsearch的用户,并将目录切换到elasticsearch安装目录下;
执行下面操作:

安装ElasticSearch许可插件:
bin/plugin install elasticsearch/license/latest
安装Shield插件:
bin/plugin -i elasticsearch/shield/latest

启动Elasticsearch;

新建一个ElasticSearch管理员账户,这里会让您填写新密码:
bin/shield/esusers useradd es_admin -r admin

使用REST API访问 Elasticsearch :
curl -u es_admin -XGET ‘http://localhost:9200/

认证通过;

Shield在Elasticsearch上安装成功;

在Logstash上配置:

在ElasticSearch服务器上,使用esusers创建Logstash用户:bin/shield/esusers useradd logstashserver -r logstash

在Logstash服务器上,修改output模块的配置文件,例如:
output {
elasticsearch {
host => “192.168.6.144”
protocol => “http”
index => “logstash-%{type}-%{+YYYY.MM.dd}”
user => “logstashserver” #在这里加上Shield中role为Logstash的用户名
password => “woshimima” #别忘了密码
}
# stdout { codec => rubydebug }
}

配置Kibana

在Elasticsearch上创建kibana的用户:
bin/shield/esusers useradd kibanaserver -r kibana4_server

修改kibana的配置文件:kibana.yml 找到下面语句

# If your Elasticsearch is protected with basic auth, this is the user credentials
# used by the Kibana server to perform maintence on the kibana_index at statup. Your Kibana
# users will still need to authenticate with Elasticsearch (which is proxied thorugh
# the Kibana server)

在其下面添加:
elasticsearch.username: “kibanaserver”
elasticsearch.password: “123456”

启动kibana;

添加自定义角色,使其下面的用户可以监控特定的日志:比如,A用户只能查看A用户产生的日志

在Elasticsearch安装目录下面找到config文件
切换目录到:/config/shield;
找到roles.yml;

添加自定义的角色:

如:

syslog_role:
indices:
- names: ‘logstash-syslog-*’
privileges:
- read
access_role:
indices:
- names: ‘logstash-access-*’
privileges:
- read

在这两个角色下面分别创建用户:
bin/shield/esusers useradd demo_syslog -r syslog_role
bin/shield/esusers useradd demo_access -r access_role

将用户添加到kibana4_server组下
bin/shield/esusers roles demo_syslog -a kibana4_server
bin/shield/esusers roles demo_access -a kibana4_server

完成;
这样就可以在kibana界面登录查看用户的日志了,而看不到其他用户的日志;