kibana4 的安装、配置和使用

Kibana 是为 Elasticsearch 设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图标的形式展现出来。

Kibana 让海量数据变得更容易理解。简单的基于浏览器的界面让你可以快速创建并分享动态的仪表板,用以实时修改 Elasticsearch 请求。

 

数据发现和可视化

让我们看看你可能要怎么用 Kibana 来探索和展示数据。我们会从伦敦交通局的交通运输卡的一周使用情况里导入一些数据。

在 Kibana 的 Discover 页,我们可以提交搜索请求,过滤结果,然后检查返回的文档里的数据。比如,我们可以通过排除公交出行,获取地铁出行的情况。

现在,我们可以看到早晚上下班高峰期的直方图。默认情况下,Discover 页会显示匹配搜索条件的前 500 个文档。你可以修改时间过滤器,拖拽直方图下钻数据,查看部分文档的细节。Discover 页上如何探索数据,详细说明见 Discover

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 的配置文件默认在源码路径的 config 目录下,你也可以通过启动参数的 -c 参数指定

同时,kibana4 还提供了几个启动参数,用来提供部分配置信息

执行 ./bin/kibana -h 可以看到:

 

 

与 elasticsearch 一样,kibana4 的配置文件使用的也是 yml 格式,其中有丰富的注释,可以实现对上游 elasticsearch 的各种配置,默认用户组、用户的配置,log 文件的配置,限制访问的 host、port 等等的配置,也可以指定出口占用的端口号,默认是 5601

 

当然,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 使用配置中的 elasticsearch 作为数据源,并且需要指定 elasticsearch 的 index,kibana 可以管理多个 index,但是对 type 并没有区分,type 也作为了一个 elasticsearch 字段被处理

kibana 的选项卡中有四个选项,分别是:

  1. Discover -- 显示具体的日志信息及按时间进行的条数统计柱状图
  2. Visualize -- 统计图表画布,你可以在里面创建表格、折线图、饼图、条形图甚至是地图,监控各项数据,个性化程度非常强,也十分简单易用
  3. Dashboard -- 对保存后的 Visualize 进行显示的仪表板,与画布一样,你可以保存多个仪表板,同时每个仪表板还可以跨越不同的时间间隔,让监控变得更加方便和个性化
  4. Setting -- 编辑、增加 index,对 kibana 本身、Visualize、Dashboard 等都可以进行配置

 

总之,kibana 上手还算是非常容易的,功能却是十分的强大,也十分有趣,值得多多把玩和品位

参考:http://www.code123.cc/docs/kibana-logstash/v3/source-code-analysis/panel.html

 

发表评论