二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Nexus系列文章

  • Jenkins系列文章

  • ELK笔记

    • ELK

    • FileBeat

    • LogStash

    • ElasticSearch

    • Kibana

      • kibana绘图实战
        • 如何在kibana中画出三维一体的图
        • kibana-7-x隐藏访问提示
    • Kubernetes笔记

    • LLM专题

    • 系列专题
    • ELK笔记
    • Kibana
    二丫讲梵
    2019-01-05
    目录

    kibana绘图实战

    文章发布较早,内容可能过时,阅读注意甄别。

    我们在网上见过无数的展示 elk 最终 dashboard 的文章,却从来没有见过哪篇文章详细讲解了那些漂亮的 dashboard 是如何绘制出来的,这,叫人恨的牙根生疼,无奈,只好去啃官方文档,官方文档非常好,它详细地介绍了每一个环节的每一个概念,但是唯一的缺憾就是,它给你了一百个点,却没有给一条线,如果你的心态不好,或者理解力差一点,恐怕早就淹没在那 100 个点里边了,事实上,我也曾不止一次淹没在那里边。

    这一次,算是苍天眷顾,在公司之前小伙伴做好的一个模板参考中,加之不懈钻研之下,总算将之啃下,晓知了其中精髓的万千之一二,恐怕再忘记,赶紧记录下来。

    进入正题之前,可以先看一眼最终的效果图:

    img

    # 1,简单介绍。

    点击可视化,选中创建一个视图,可以看到支持了很多种类型:

    以下简单列出,对应跳转链接是官方文档:

    • 其他
      • Markdown (opens new window)
      • Vega
      • 控制图
      • 标签云 (opens new window)
    • 地图
      • 区域地图
      • 坐标地图
    • 数据
      • 度量
      • 数据表 (opens new window)
      • 目标图
      • 量表
    • 时间序列
      • 可视化构建
      • 时间线
    • 基本图表
      • 垂直柱状图
      • 折线图
      • 水平柱状图
      • 热点图 (opens new window)
      • 面积图
      • 饼状图 (opens new window)

    # 2,从标签云开始看。

    可能你对这些丰富的功能还不熟悉,对上边定义了那么多的字段该如何应用也不清楚,简直有一些无从下手,那么,不要着急,就先从创建一个标签云开始吧,从标签云出发,慢慢熟悉,先了解一下我们所创建的那些字段的意义吧。

    事实上我个人在晕晕乎乎去摸索这些视图的时候,也是像无头苍蝇一样,不知哪里是哪里的,但当我在玩味标签云的时候,隐隐约约了解到了一些精髓,于是当即觉得,要入门画图行业,非先从标签云开始不可。

    现在,正式进入体验之旅。

    创建一个标签云的视图,会进入到索引选择界面:

    img

    选择我们定义了的nginx-access-这个索引,然后进行配置。

    针对各个参数详细说明一下,这个地方的说明整理自官方文档,可能有点详细,容易看蒙,建议先跳过,等熟悉了之后,可以再回过头来深入理解。

    • Metrics

      里边包含了不同的类型内容。

      • Count 计数 聚合返回所选索引模式中元素的原始计数。
      • Average 该聚合返回数字字段的平均值 。从下拉菜单中选择一个字段。
      • Sum 总和 聚合返回数字字段的总和。从下拉菜单中选择一个字段。
      • Min 最小值 聚合返回数字字段的最小值。从下拉菜单中选择一个字段。
      • Max 最大值 聚合返回数字字段的最大值。从下拉菜单中选择一个字段。
      • Unique Count 基数 聚合返回字段中唯一值的数量。从下拉菜单中选择一个字段。
    • Parent Pipeline Aggregations

      (父级管道聚合):就像使用父级管道聚合一样,您需要提供一个用于计算同级聚合的指标。除此之外,还需要提供一个桶聚合,它将定义同级聚合将在其中运行的桶。

      • Average Bucket 桶平均值 计算同级聚合中指定指标的(中数)平均值
      • Sum Bucket 桶总和 计算同级聚合中指定指标值的总和
      • Min Bucket 桶最小值 计算同级聚合中指定指标的最小值
      • Max Bucket 桶最大值 计算同级聚合中指定指标的最大值
    • Sibling Pipeline Aggregations

      (兄弟管道聚合):对于每个父管道聚合,您必须定义用于计算聚合的指标。这可能是您现有的指标之一或新的指标。

      • Cumulative Sum 累计总和 聚合计算父直方图中指定指标的累计总和。
      • Moving Average 移动平均值 聚合将动态移动数据窗口,生成该窗口数据的平均值。
      • Serial Diff 串行差分 是一种时间序列中的值在不同时间滞后或周期内从自身减去的技术。

    这个地方,我们就使用Count,下边的聚合当中,我们可以选择不同的字段,然后来通过右侧的显示效果,来理解字段所代表的意义。

    因为是第一张图,所以详细说明下:

    • 1,上边已经说明的够详细了,选择 count。
    • 2,唯一的选项,tags。
    • 3,选择我们自己定义的 terms。
    • 4,随便选择其中的某一个字段,这里选择了 agent.keyword。
    • 5,点击播放,可以在右侧看到配置效果。
    • 6,通过所显示的字段,大概可以明白,刚刚的agent.keyword所代表的意义是客户端类型。
    • 7,最下边是一些说明信息,可以在左侧的Custom Label当中填写以帮助理解。

    接下来就再更换一下 terms 类型,然后了解不同的字段意义。这就是我所说的,从标签云开始,来理解每个字段的意义。

    geoip.city_name.keyword:

    xff.keyword:

    还可以点点其他的,来画一些图,现在就把刚刚的访问地域那个保存下来,保存方法是:

    img

    # 3,客户端 ip 请求 top。

    创建一个数据表的视图–>度量依旧选择 count–>Custom Label 写入访问次数–>添加 Split Rows–>聚合依旧选择 terms–>字段选择 xff.keyword(你的可能要选择 clientip)–>下边 Size 填入 10–>Custom Label 写入访问 IP。

    然后点击播放,如此,一个前十请求的 IP 以及次数就都列出来了。

    然后保存一下。

    # 4,客户端类型 top。

    创建一个饼状图的视图–>度量依旧选择 count–>Custom Label 写入访问次数–>添加 Split Slices–>聚合依旧选择 terms–>字段选择 agent.keyword–>下边 Size 填入 10–>Custom Label 写入客户端。

    img

    然后保存一下。

    # 5,客户端 IP 切片。

    创建一个饼状图的视图–>度量依旧选择 count–>Custom Label 写入访问次数–>添加 Split Slices–>聚合依旧选择 terms–>字段选择 xff.keyword(你的可能要选择 clientip)–>下边 Size 填入 10–>Custom Label 写入客户端。

    img

    这里看到其中一个-占了很大一部分,其实这个是自身的一些请求,不过可以通过配置将这部分过滤掉,方法是点击绿色部分–>然后在左侧标签栏排除即可,这一点是刚刚在配置过程中发现的,那么上边的几个视图也可以对不需要查看的部分进行过滤的配置。

    如下是排除之后的效果:

    这个地方还可以在左侧标签栏中的选线处,进行更细致的配置,选中显示标签,然后保存这个视图。

    # 6,日志条数统计。

    创建一个度量的视图–>度量依旧选择 count–>Custom Label 写入日志条数–>添加 Split Group–>聚合依旧选择 Date Range–>字段选择@timestamp–>其余默认即可。

    img

    注意,这个日志的条数显示依据,是根据上边时间戳显示的,所以目前这个数字是最近 15 分钟的日志条数,可以调整其他时间戳,然后看日志的条数。

    # 7,网络流量监控。

    创建一个面积图的视图–>度量选择 Sum–>字段选择 Size–>添加 X-Axis–>聚合选择 Date Histogram–>字段选择@timestamp–>Interval 选择 second。

    img

    # 8,异常状态码统计。

    创建一个饼状图的视图–>度量依旧选择 count–>Custom Label 写入访问次数–>添加 Split Slices–>聚合依旧选择 terms–>字段选择 status.keyword(你的可能要选择 clientip)–>下边 Size 填入 10–>Custom Label 写入异常状态码–>右边选项当中选中显示标签。

    # 9,将所有视图聚合。

    接下来就可以进入到仪表盘界面,进行自由自在的绘图阶段了,上边的视图只是举了一些例子,还可以根据很多实际情况,绘制出许多的图,这里就不一一列举了。

    最后展示一下刚刚制作的几个视图聚合在一起的样子吧:

    img

    微信 支付宝
    #elk#kibana
    上次更新: 2024/07/04, 22:40:37
    如何优雅地下掉一台es节点
    如何在kibana中画出三维一体的图

    ← 如何优雅地下掉一台es节点 如何在kibana中画出三维一体的图→

    最近更新
    01
    学习周刊-总第213期-2025年第22周
    05-29
    02
    学习周刊-总第212期-2025年第21周
    05-22
    03
    从赵心童世锦赛夺冠聊聊我的斯诺克情缘
    05-16
    更多文章>
    Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式