标签:
本文内容
最近 ELK 搭建完成,赶紧着手把认证做啦~要是什么人都能用 head 插件访问,可受不了~
结果,还真经历了点坎坷~
0x01 需求
能想到的大概有如下几点:
对于这几个需求,应该看你更关注哪个,以及项目进度。
ES 2.1.1
找了相关资料,如果你想用 ES 2.2.* 以上版本,能选择的不多。因为,ELK 更新速度太快,很多插件,跟不上。比如,elasticsearch-head 插件,接下来提到的 elasticsearch-http-basic 验证插件,支持到 ES 1.7,作者明确说不支持 2 以上版本,可官网都已经出到 2.2.1 啦~
下面说一下,有几个选择:
elasticsearch-http-basic。的确简单,提供账号验证和白名单功能,可惜不支持 ES 1.7 以上版本。因为,作者在 github 上提供源代码,也提供编译后 jar 包,最新版本是 1.5,但我们粗略知道 ES 从 2.* 版本开始,所有插件都需要 plugin-descriptor.properties 文件,可 elasticsearch-http-basic 没有,想试试加一个是否好使,看了源代码,知道会调用什么类,但不好使,又发现,该插件依赖的 elasticsearch jar 包的版本只有 1.5,显然过低,结果还真是,运行 ES 报错,提示找不到 AbstractPlugin 类(自定义插件都需要继承该类),看来高版本的 ES 已经去掉或重新命名了该类——此路不通。而且,只能问题一
。kibana-authentication-proxy。现在可能不叫这个名字,但是
针对 kibana 肯定是有认证的,支持“Google OAuth2, BasicAuth(multiple users supported) and CAS Authentication
”,能解决单点登录,跟 elasticsearch-http-basic 一起使用,能解决第一个和第三个问题,但是个人感觉 kibana,版本杂了点,kibana 3和 kibana 4 思路和目标完全不同,对 ES 的版本要求比较严格。 Shield。ELK 官方提供,
文档自然丰富,功能也强大,能满足所有需求。另外,还能实现集群之间的单点登录。但有人说该插件是收费的,不过我最近按了,没看出有收费的意思啊。难道,之前是收费的,现在不收费了。 search-guard。
功能丰富,还免费,除了不能实现单点登录,其他都可以。但跟 elasticsearch-http-basic 的情况一样——不支持高版本 ES,而且署复杂,文档较少,这样的插件实在不敢用。因此,我选择了 Shield 插件。
简单起见,先不说开启 Shield 的SSL/TLS 加密身份验证功能(HTTPS 就是基础此)。我的理解是,集群内部通信是加密的,比如,节点发现,同步数据,传递密码当当然是加密最好。
标签:
原文地址:http://www.cnblogs.com/liuning8023/p/5463864.html