系列文章

Notes:

关于 Grafana系列-统一展示-6-Zabbix 数据源, 其实已经在之前的文章: 使用 Grafana 统一监控展示 - 对接 Zabbix 里详细介绍过了, 感兴趣的请移步阅读.

知识储备

一个图表上的多个 Items

我们可以在 metric 字段内使用正则表达式来建立有大量 items 的图表。Grafana使用JavaScript正则表达式实现。例如,如果你需要显示CPU时间(user、system、iowait等),你可以在Item字段中使用这个regex创建图表:

/CPU (?!idle).* time/

另一种使用regex的情况是比较不同主机的相同指标。使用/.*/ regex来显示所有的指标或编写你自己的过滤器。例如,我想显示所有主机组中名称以backend 开头的主机的CPU系统时间。我使用/.*/表示 Group,/^backend/表示 Host,CPU system time 表示 Item。

Template Variable

你可以使用模板变量来创建高度可重用和互动的仪表盘。模板化的总体思路是允许Grafana从数据源获取不同的指标,并提供一种无需修改仪表盘就能即时改变的方法。对于Zabbix来说,这意味着你可以获得主机组、主机、应用程序或项目的列表,并将其作为一个变量添加。

创建变量

Type: 默认情况下,Query 类型被选中。这意味着Grafana会向数据源询问变量的值。但也有一些其他类型:Interval(只是一个时间间隔),Data source(你可以切换数据源,例如,如果你有一个以上的Zabbix实例,并且每个实例都作为数据源添加到Grafana中),Custom(你可以为变量设置任何预定义的值)和Constant。

Query 格式

Zabbix数据源中的模板变量查询是一个字符串,包含4个用大括号({})包裹的部分。

{host group}{host}{application}{item name}

如:

{Zabbix servers}{Zabbix server}{CPU}{*}
{Frontend}{web01.mydomain.com}{*}{*}

每个部分都可以是对应 metric 的名称或*(表示所有 metric)。

示例:

  • {*} 返回所有可用的主机组的列表
  • {*}{*} Zabbix 中的所有主机
  • {Network}{*} 返回 group: Network 中的所有主机
  • {Linux servers}{*}{*} 返回Linux server group 中主机的所有应用程序
  • {Linux Servers}{backend01}{CPU}{*} 返回backend01中属于CPU应用的所有 items。

你可以使用另一个变量作为查询的一部分。例如,你有一个变量group,它返回主机组的列表,想用它来查询所选组的主机。下面是这种情况下的查询:

{$group}{*}

Variables 用法

当你创建一个变量时,你可以把它作为数据源查询的一部分。Grafana也支持在不同的地方使用变量,如面板和 row 的标题、文本面板的内容等。

实战

这里以在 Grafana Dashboards - Zabbix DataSource 里找到的第一个 Dashboard - Zabbix - Full Server Status(ID: 5363) 为例.

Variables

Group Variable

  • Name: Group
  • Type: Query
  • Data source: zabbix
  • Query Type: Group
  • Group: /env:[a-z].*/ 这里默认是 /.*/, 即所有的 Group, 但是可以根据实际情况, 编写正则选择部分 group, 如 /env:[a-z].*/ 就是选择以env:[a-z] 开头的group.

完整配置示例如下:

Host Variable

  • Name: Host
  • Type: Query
  • Data source: zabbix
  • Query Type: Host
  • Group: $Group 即根据 Group Variable 的结果进一步查询
  • Host: /.*/ 即查询对应 Group 下的所有 Host

Disk Variable

  • Name: Disk
  • Type: Query
  • Data source: zabbix
  • Query Type: Application

Panel 查询

对于不同版本的 Zabbix, Item 名字可能不尽相同, 需要按需调整.

如在我这里, 该 Dashboard 的 Total memory panel 无法正常显示. 需要将调整, 调整后如下:

  • Query Mode: Metrics
  • Group: $Group
  • Host: $Host
  • Application: Memory
  • Item: /Memory utilization|Available memory/

如下图:

另外, 为了 Linux/Windows 指标的兼容性, 对于 CPU 总数, Item 可以调整为:

Item: /Number of (CPUs|cores)/

Zabbix Problems

另外, Grafana Zabbix Plugin 还自带 Zabbix Problems Panel. 可以和 Zabbix 的 Problems 对接, 实现较好的展示效果. 具体效果如下:

其具体的 Query 如下:

  • Query Mode: Problems
  • 然后: Group Host Application Problem Tags 等按需填写.

具体配置如下:

并且每个 Problem 还可以点击查看详情, 并跳转回 Zabbix 界面处理, 执行脚本, 认领该问题, 手动关闭... 可以说是非常强大了.

如下图:

️参考文档

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

Grafana系列-统一展示-6-Zabbix仪表板的更多相关文章

  1. Grafana 系列文章(十二):如何使用Loki创建一个用于搜索日志的Grafana仪表板

    概述 创建一个简单的 Grafana 仪表板, 以实现对日志的快速搜索. 有经验的直接用 Grafana 的 Explore 功能就可以了. 但是对于没有经验的人, 他们如何能有一个已经预设了简单的标 ...

  2. 分布式监控系统Zabbix--使用Grafana进行图形展示

      今天介绍一款高颜值监控绘图工具Grafana,在使用Zabbix监控环境中,通常我们会结合Grafana进行图形展示.Grafana默认没有zabbix作为数据源,需要手动给zabbix安装一个插 ...

  3. Grafana 系列文章(三):Tempo-使用 HTTP 推送 Spans

    ️URL: https://grafana.com/docs/tempo/latest/api_docs/pushing-spans-with-http/ Description: 有时,使用追踪系统 ...

  4. Grafana 系列文章(四):Grafana Explore

    ️URL: https://grafana.com/docs/grafana/latest/explore/ Description: Explore Grafana 的仪表盘 UI 是关于构建可视化 ...

  5. Grafana 系列文章(十四):Helm 安装Loki

    前言 写或者翻译这么多篇 Loki 相关的文章了, 发现还没写怎么安装 现在开始介绍如何使用 Helm 安装 Loki. 前提 有 Helm, 并且添加 Grafana 的官方源: helm repo ...

  6. 性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据

    CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据   by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 2 1.安装influxdb ...

  7. 性能测试五十:Jmeter+Influxdb+Grafana实时数据展示系统搭建

    如果用生成jtl文件再分析结果的方式的话,每一次请求就会往jtl里面写一条数据,在进行长时间的稳定性测试的时候,特别是当TPS很高的时候,写入的数据会非常的大,这个时候等稳定性测试完成,再对jtl进行 ...

  8. Grafana 系列文章(一):基于 Grafana 的全栈可观察性 Demo

    ️Reference: https://github.com/grafana/intro-to-mlt 这是关于 Grafana 中可观察性的三个支柱的一系列演讲的配套资源库. 它以一个自我封闭的 D ...

  9. Grafana 系列文章(二):使用 Grafana Agent 和 Grafana Tempo 进行 Tracing

    ️URL: https://grafana.com/blog/2020/11/17/tracing-with-the-grafana-cloud-agent-and-grafana-tempo/ ✍A ...

  10. Grafana 系列文章(五):Grafana Explore 查询管理

    ️URL: https://grafana.com/docs/grafana/latest/explore/query-management/ Description: Explore 中的查询管理 ...

随机推荐

  1. C#中字符数组,字节数组和string之间的转化(转)

    原文链接:http://hi.baidu.com/endyli/item/7bf074945de35e1f934f41fe 来源: NDC(NetworkDiskClient)的界面和后台程序之间用S ...

  2. vue3 vue-i18n 入口文件配置报警

    报警: You are running the esm-bundler build of vue-i18n. It is recommended to conf 解决: 在vue.config.js文 ...

  3. pandas 某几列转为json/dic 格式

    #%% import pandas as pd df=pd.read_excel('工作表.xlsx') col_list=list(df.columns) del_col_list =['c','d ...

  4. .net core 使用 Nlog 配置文件

    nlog.config文件 安装nuget包: NLog.Web.AspNetCore 配置开始 <?xml version="1.0" encoding="utf ...

  5. Bitcask — 日志结构的快速 KV 存储引擎

    Bitcask 介绍 Bitcask 是一种高性能的键值存储引擎,基于日志结构和哈希索引来提供高速的读写操作和数据持久性,适用于处理大量写入请求和快速查找键值对的应用场景. 核心概念 Bitcask ...

  6. 在surging 微服务引擎下如何搭建webservice和身份验证

    一.前言 现实生产中,有一些比较老的系统对外提供的接口都是WebService,尤其是比较老的系统都是围绕ESB进行搭建,而对外提供就需要WebService ,为了更好完善其解决方案,故集成了web ...

  7. Unity JobSystem使用及技巧

    什么是JobSystem 并行编程 在游戏开发过程中我们经常会遇到要处理大量数据计算的需求,因此为了充分发挥硬件的多核性能,我们会需要用到并行编程,多线程编程也是并行编程的一种. 线程是在进程内的,是 ...

  8. 自己动手从零写桌面操作系统GrapeOS系列教程——21.汇编语言写硬盘实战

    学习操作系统原理最好的方法是自己写一个简单的操作系统. 在上一讲中我们学习了用汇编语言读硬盘,本讲我们来学习用汇编语言写硬盘.同样也是设计一个简单的实验,实验内容为: 在内存中准备一段有特征的512字 ...

  9. python入门教程之八列表,字典,字符串,集合常用操作

    一列表常用方法 Python包含以下函数: 序号 函数 1 cmp(list1, list2)比较两个列表的元素 2 len(list)列表元素个数 3 max(list)返回列表元素最大值 4 mi ...

  10. 浅析Nordic nRF5 SDK例程架构

    很多刚接触Nordic nRF5 SDK的初学者出于对新平台的不熟悉,会觉得这个SDK很难,本文讲浅析nRF5 SDK中例程的架构,让初学者能够快速上手SDK. 在开始之前,先推荐阅读观看下面这些文章 ...