Kibana5 都出来了......
简介
kibana 是 Elastic.co 提供的个性化统计数据、图标展示页面,而 kibana4 则是一个全新的改版,与 kibana3 有着本质的不同
kibana3 实质上是一组页面,通过 nginx 或 Apache 或其他任何一个服务器配置域名到目录的映射,实现访问,而全新的 kibana4 中集成了 nodejs,因此无需再依赖任何 webserver
而从页面上看,kibana4 也和 kibana3 有着十分巨大的区别,很多功能的配置方式有很大不同
安装与启动
kibana4 的安装十分简单,从官网上下载 kibana4 以后,目录中有 README 文件:
Download: http://www.elastic.co/downloads/kibana
Run bin/kibana on unix, or bin\kibana.bat on Windows.
Visit http://localhost:5601
You're up and running! Fantastic! Kibana is now running on port 5601, so point your browser at http://YOURDOMAIN.com:5601.
是的,只需要执行 ./bin/kibana,然后打开浏览器,访问 http://localhost:5601 就可以看到 kibana 已经启动了
kibana4 的配置
kibana4 的配置文件默认在源码路径的 config 目录下,你也可以通过启动参数的 -c 参数指定
同时,kibana4 还提供了几个启动参数,用来提供部分配置信息
执行 ./bin/kibana -h 可以看到:
与 elasticsearch 一样,kibana4 的配置文件使用的也是 yml 格式,其中有丰富的注释,可以实现对上游 elasticsearch 的各种配置,默认用户组、用户的配置,log 文件的配置,限制访问的 host、port 等等的配置,也可以指定出口占用的端口号,默认是 5601
为 kibana4 添加访问权限
当然,kibana 中记录了你所监控的大量数据,甚至可以通过他访问你的 elasticsearch 中的所有数据,在工程生产环境中,是不能让别人轻易地可以访问的,需要加密和控制权限
最直观的,修改 kibana 源码,在进入页面前加一层校验,我并没有这么做
我选择的是首先配置 kibana 限制访问 host 为 localhost,以便禁止外网访问,然后使用 nginx upstream 做一层转发,通过 nginx 内核中的 ngx_http_auth_basic_module 模块进行权限验证
限制外网访问
上面已经提到,只需要在 kibana 的配置文件 kibana.yml 中加入:
这样,外网将无法访问到你的 kibana 页面
使用 nginx 做反向代理
这里,nginx 配置了一个反向代理规则 kibana4,并通过 server 配置了一个 virtualhost,在其中配置了 rewrite 规则
凡是进入该 location 中的请求都会被转发到 kibana4 的 rewrite 规则中
ngx_http_auth_basic_module 配置
接下来,我们要对 nginx 的 upstream 传输进行加密,首先我们需要在 location 中加入 auth_basic 和 auth_basic_user_file 两个配置
- auth_basic 指令如果置为 "off" 则会负略下级指令继承的动作,一般我们需要设置为 "Restricted" 来限制外网的访问
- auth_basic_user_file 则指定了密码文件
密码文件中每行是一个用户名和密码的组合,通过下面的格式进行组织:
最后的注释信息是可选的
密码字段是通过 crypt 函数加密的,Apache 的 htpasswd 程序可以生成相应的密码,通过 php 的 crypt 函数也可以做到
kibana4 的使用
kibana4 使用配置中的 elasticsearch 作为数据源,并且需要指定 elasticsearch 的 index,kibana 可以管理多个 index,但是对 type 并没有区分,type 也作为了一个 elasticsearch 字段被处理
kibana 的选项卡中有四个选项,分别是:
- Discover -- 显示具体的日志信息及按时间进行的条数统计柱状图
- Visualize -- 统计图表画布,你可以在里面创建表格、折线图、饼图、条形图甚至是地图,监控各项数据,个性化程度非常强,也十分简单易用
- Dashboard -- 对保存后的 Visualize 进行显示的仪表板,与画布一样,你可以保存多个仪表板,同时每个仪表板还可以跨越不同的时间间隔,让监控变得更加方便和个性化
- Setting -- 编辑、增加 index,对 kibana 本身、Visualize、Dashboard 等都可以进行配置
总之,kibana 上手还算是非常容易的,功能却是十分的强大,也十分有趣,值得多多把玩和品位