查看原文
其他

Kibana交互使用实践—— Kibana Lens

沐自 日志服务 2022-08-25


前言


Kibana 是一款开源的数据分析和可视化平台,它是Elastic Stack 成员之一,旨在与 Elasticsearch 配合使用。在Kibana中搜索、查看存储在 Elasticsearch 索引中的数据并与之交互,轻松地执行高级数据分析并在各种图表、表格和地图中可视化数据。系列文章将对Kibana的一些功能和交互进行拆解和分析,同时对比SLS中的类似功能,进行使用上的优化和探索。


基于Kibana 7.10.0



什么是Kibana Lens


成千上万的人已经在各种领域使用Kibana作为数据分析的手段,但是对于绝大多数开发者和分析人员来讲,想要快速掌握Kibana的使用方式,仍然存在一定的挑战性,特别是在可视化领域,如何用最佳的手段对数据进行可视化展示,往往要求使用者具备丰富的可视化经验,同时在使用诸如Kibana这样的分析工具时,也经常需要反复地调整可视化配置,才能得到想要的结果。Elastic在7.5推出Kibana Lens,想要改变这一现状


Kibana Lens直译过来就是【透镜】,通过Elastic对这个功能的定义我们可以发现这个命名很有意思:


  • Kibana Lens让您快速、轻松、直观地洞悉您的Elasticsearch数据。

  • Lens主要专注于易用性、可视化最佳实践以及灵活性。只需简单地将数据字段拖放到窗口中,您便可以创建可视化。

  • Lens中内置的智能建议功能可让您以全新方式对数据进行可视化,此外您还拥有更多灵活性,可以随时改变想法,并在图表类型和索引模式之间快速切换。

  • Lens使得 Kibana 中进行数据切片和切块不仅变得更简单,也会更有趣。


    不难看出,Kibana Lens目的非常明确,协助你去探索自己的数据,更加快速易用。



    Kibana Lens的优势


    Kibana Lens的提出,致力于解决可视化易用性问题,同时保证一定的灵活性,让使用者在不具备Elasticsearch aggregation的基本知识,也能使用Kibana Lens创建出丰富美观的可视化图表。






    Kibana Lens的使用实践


     入口

    通过Visualize菜单进入,创建一个新的可视化视图,通常情况下我们是去选择一个图表的类型,比如柱状图、饼图,第一个选项即为Lens,也能看出这类创建可视化视图的方式是Kibana首推的方法。




     探索数据

    Kibana在Lens的布局中,提供了左侧的Field查看列表,这个和Discover中的Filed快速查询十分类似,一开始我们也许并不知道要什么样的数据进行分析,而一个简单的Filed概览就可以方便你快速的去了解数据,得到一个大致的概念,比如这里的CallerType字段,我们就能拿到一个大致的访问范围。




     拖拽可视化

    在我们对已有的数据有了一个简单的探索之后,我们可以开始尝试对其进行可视化分析,通过拖拽的方式,我们来看看Lens给我们推荐的CallerType的可视化方案:



    这里我们拿到了一个非常简单的柱状分析图,与此同时我们还可以把我们关心的多个维度进行交叉分析,比如这里我可以将CallerType和ClientIp进行结合,只需要将ClientIp拖拽到视图区域即可



    这里,我们就能看到一个推荐好的堆叠柱状图,在CallerType的分布上,查看每一类中top的访问ip


     进一步分析

    在Lens的界面,我们也可以输入KQL,在创建可视化视图的过程中动态去修改我们想要的数据源,做一些提前的过滤和分析,这对于熟悉Kibana分析的用户来说,是一个非常好的补充





    Lens建议

    基于Lens对于Field类型的判断,Lens提供了几类建议的视图,用于快速调整图表的类型,这些图表类型也是Kibana根据经验推荐的符合数据类型的视图。当然,如果你对自己的可视化场景有个人的理解,也可以自己变换图表的类型





     Lens的灵活性

    Lens将常见的图表类型做了一定程度的归类,下面我们来看看场景的分类:


    1. 具备X轴和Y轴的图表


    可以看到,X轴一般给了时间分布、间隔、过滤以及Top值,Y轴给了平均值、最大最小值、总数、数量、唯一值等,同时增加聚合列(break down),提升多维分析能力,通过简单的组合,即可完成绝大多数可视化分析场景


    1. 分布
      分布的可视化多为饼图和矩形树图场景,支持Slice by 或者 Group by的语义,加上数值列和聚合列,覆盖分布可视化的场景

    1. 单值
      单值更多只是一个Metric上的最后点信息,利用类似Y轴的配置来进行处理,比如count of record,或者Maximum of Field:





    SLS可视化的思考


     对自己的提问

    SLS可视化也发展了3到4年时间,在可视化探索中,一直在问自己一个问题:如何让客户更加快速、简单、准确地配置出自己想要的可视化视图?要配置一张比较完整,覆盖各个分析关键点且好看的仪表盘,通过总结可以看到这个配置的人一般需要具备一些这样的能力:


    • 明白自己的数据是什么?Schema是什么样子的?

    • 明白自己数据分析的目的?要解决什么样子的问题?

    • 能写出来比较复杂的查询分析语句,将复杂的数据抽象为数据表的能力

    • 能有一定的可视化经验,知道哪一种图适合怎样的场景,有哪些常见的配置

    • 能有一定的设计能力


    但往往全部具备这些能力的人凤毛麟角。


    一个运维人员:关注各类机器指标数据,会写简单的SQL语句,能在简单了解SLS的查询分析语句后,倒腾出来一张监控大盘,但往往只有密密麻麻的线图数据:



    一个前端人员:关注各类访问日志数据,能做成来比较好看的大图,但往往不具备复杂分析的能力,仪表盘相对简单



    一个BI分析运营人员:绝大多数不具备agg的能力,无法在SLS上完成分析并进行可视化


    当然,我们也遇到一些喜欢倒腾的用户,能把SLS里的各类图表都玩得比较转,但是绝大多数适合,我们还是收到了【难用】这一类的反馈,本质上,其实还是过于高的分析门槛,过多的可视化配置导致用户无法找到最适合自己的可视化方案。



     我们给出的解决方案

    为了解决上述的一些问题,SLS可视化团队在发展的过程中,提出基于场景去构建可视化仪表盘模板,其实绝大多数国内的客户,更喜欢并倾向你给我一套完整的解决方案,通过简单的配置就能拿到想要的视图和结果。SLS在和阿里云上的云产品的合作过程中,用户想要获取到云产品上的操作日志、访问日志、错误日志等,基于云产品日志的特性,规整出一套最佳实践方案,对接时就提供默认的仪表模板并基于用户的存储空间进行创建,屏蔽掉创建的细节,来看一张SLB大盘的示例:



    虽然,这样带来了仪表盘使用量和访问量的增长,但这种解决方案,其实规避了问题的核心:


    • 用户不了解SLS可视化的具体能力,某种层面对SLS可视化的发展其实是有阻碍作用

    • 当用户有自定义的需求时候,面临同样的易用性问题


    Kibana推出Lens似乎也在寻找这个问题的答案,简单的推荐+灵活的配置,初次使用的人员和资深用户都可以玩转整个Elastic的可视化。SLS也在寻求问题的答案,我们会探索一套SQL Builder + 可视化中心的App模式,为SLS数据可视化场景找到一个更加符合自身发展的方式。




    进一步参考

    • 论坛分享视频:https://developer.aliyun.com/live/246820

    • SLS(日志服务)云原生观测分析平台:https://www.aliyun.com/product/sls

    • SLS新版告警文档首页:https://help.aliyun.com/document_detail/207609.html

    • 欢迎钉钉扫群加入阿里云-日志服务(SLS)技术交流, 获得第一手资料与支持


    • 更多SLS的系列直播与培训视频会同步到微信公众号与B站,敬请留意


    为您推荐(持续更新)


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存