网上很少有关于这方面的讲解或者是老版本的,不适合,自己摸索参照英文文档,实验成功的,写下来给大家分享。
不懂得可以一起讨论啊,下面评论就好了;
这里说的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界面登录查看用户的日志了,而看不到其他用户的日志;