以下是学习Kibana时做的笔记

介绍

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

Kibana 是 Elasticsearch 分析和搜索仪表板。已经历经了 v1, v2, v3, v4 个版本,分别采用了 PHP,Ruby,AngularJS,JRuby,NodeJS 等不同语言编写。我们主要关注v3 和 v4 的区别。实际项目中尽量用v4

Kibana 非常容易安装和使用。整个项目都是用 HTML 和 Javascript 写的,所以 Kibana 不需要任何服务器端组件,一个纯文本发布服务器就够了

ELK 这一套体系,不应该和 Hadoop 体系同质化。定期的离线报表,不是 Elasticsearch 专长所在.

Kibana 的使用场景,应该集中在两方面:

  • 实时监控
    • 通过 histogram 面板,配合不同条件的多个 queries 可以对一个事件走很多个维度组合出不同的时间序列走势。时间序列数据是最常见的监控报警了。
  • 问题分析

关于 elk 的用途,可以参照其对应的商业产品 splunk 的场景:使用 Splunk 的意义在于使信息收集和处理智能化。而其操作智能化表现在:

  • 搜索,通过下钻数据排查问题,通过分析根本原因来解决问题;
  • 实时可见性,可以将对系统的检测和警报结合在一起,便于跟踪 SLA 和性能问题;
  • 历史分析,可以从中找出趋势和历史模式,行为基线和阈值,生成一致性报告。

v3 / v4对比

Kibana4 在使用 Aggregation 接口提供更复杂功能和更高性能的同时,彻底改变了用户的使用形式。用户必须明确了解 ES 各个 aggs 接口的意义,请求和响应体的数据情况;还要想清楚可视化的展现形式,充分理解数据字段的作用。然后才能实现想要的结果。毫无疑问,这是有学习成本的。

metric 和 bucket是什么

知识点

  1. 你可以在 Visualization页为你的搜索结构构造可视化。每个可视化都是跟一个搜索关联着的
  2. 本地安装:跨平台,无依赖
    • 5601端口
  3. 默认情况下,Kibana 会连接运行在 localhost 的 Elasticsearch。要连接其他 Elasticsearch 实例,修改 kibana.yml 里的 Elasticsearch URL,然后重启 Kibana。如何在生产环境下使用 Kibana,阅读 [Using Kibana in a Production Environment].
  4. 索引:
    • 默认情况下,Kibana 认为你要访问的是通过 Logstash 导入 Elasticsearch 的数据。这时候你可以用默认的 logstash-* 作为你的 index pattern。
    • 选择一个包含了时间戳的索引字段,可以用来做基于时间的处理。Kibana 会读取索引的映射,然后列出所有包含了时间戳的字段(译者注:实际是字段类型为 date 的字段,而不是“看起来像时间戳”的字段)。如果你的索引没有基于时间的数据,关闭 Index contains time-based events 参数。
  5. 默认的时间过滤器设置为最近 15 分钟
    • 发挥:意味着这是一个real-time展示
  6. discover
    • 你可以直接输入简单的请求字符串,也就是用 Lucene query syntax,也可以用完整的基于 JSON 的 Elasticsearch Query DSL。
    • 当你提交搜索的时候,直方图,文档表格,字段列表,都会自动反映成搜索的结果。hits(匹配的文档)总数会在直方图的右上角显示。文档表格显示前 500 个匹配文档。
    • 默认的,文档倒序排列,最新的文档最先显示
    • 发挥:要搜素课程太容易了,探索课程和学生staff
      • 使用 Lucene query syntax就可以做简易搜索
    • 你可以在 Discover 页加载已保存的搜索,也可以用作 visualizations 的基础。保存一个搜索,意味着同时保存下了搜索请求字符串和当前选择的索引模式。
  7. Visualize
    • 你可以保存可视化,以后再用,或者合并到 dashboard 里。一个可视化可以基于以下几种数据源类型:
      • 一个新的交互式搜索
      • 一个已保存的搜索
      • 一个已保存的可视化
    • 可视化是基于 Elasticsearch 1 引入的聚合(aggregation) 特性。
    • 可以通过Settings > Edit Saved Objects 来管理已存的可视化。
    • 用页面左侧的聚合构建器配置你的可视化要用的 metric 和 bucket 聚合。桶(Buckets) 的效果类似于 SQL GROUP BY 语句。
  8. dashboard
    • 要用仪表板,你需要至少有一个已保存的 visualization。
    • 分享仪表板
      • 你可以分享仪表板给其他用户。可以直接分享 Kibana 的仪表板链接,也可以嵌入到你的网页里。
      • 用户必须有 Kibana 的访问权限才能看到嵌入的仪表板。

认证鉴权

v3

参考:用 nodejs 实现 CAS 认证

v4

Todo:思考

关于可视化 , 二维平面在展示什么 每种图表的特性。
一些概念:向量,特征值,降维,桶(Buckets)

关于图表的可视化,推荐阅读《数据可视化的基本原理与方法》

参考