我目前正在调查ELK (Elasticsearch,Logstash,Kibana)堆栈,用于集中日志文件分析。
其计划是使用logstash和基于天的索引将多个应用程序的日志存储在同一个Elasticsearch集群中。
所有文档都包含一个名为application的字段,例如“application”:"superapp“。
现在,我们正在寻找一种实现这样的访问控制的方法:
A)超级用户:能够看到所有应用程序的日志条目。
B)开发人员:只能看到他允许的应用程序的日志条目。例如,应用程序"superapp“的dev团队应该只能看到这个应用程序的条目。
结束它:我们需要基于字段应用程序中的值的访问控制。
在阅读弹奏搜索和盾牌的文档时,我找不到一个显而易见的方法。
有什么想法,我们如何才能实现这一方式,也将与Kibana 3和4?
我的第一个想法是使用别名,这些别名使用索引模板自动分配给文档。我想知道这是否是正确的方向。
发布于 2015-05-22 13:08:44
我在elasticsearch上问了这里这个问题,得到了这样的回答:
“您可以将不同类型的日志分离到它们自己的索引中,这将使事情变得更容易,您还可以使用过滤器设置别名,然后向某些用户提供对别名的访问。目前KB不是多租户的,但它是一个将要添加的特性,您必须安装多个实例,每个实例都使用自己的别名。”
总之:多租户需要在前端(Kibana)和后端(Elasticsearch)进行处理。
前端:基巴纳使用代理
https://github.com/salyh/elastic-defender
https://github.com/fangli/kibana-authentication-proxy
后端:使用筛选的别名和别名模板的几种方法
每个有别名的用户伪造索引 -
http://engineering.aweber.com/using-elasticsearchs-aliases/
http://opennomad.com/content/controlling-access-elasticsearch-filtered-aliases-nginx-and-tokens
https://stackoverflow.com/questions/29170777
复制相似问题