Grafana Series - Unified Display - 6 - Zabbix Dashboard

This article was last updated on: May 17, 2026 am

Series Articles

│ 📝Notes:

│ Regarding Grafana Series - Unified Display - 6 - Zabbix Data Source, it has already been covered in detail in a previous article: Using Grafana for Unified Monitoring Display - Integrating with Zabbix. Please refer to that article if you’re interested.

Prerequisites

Multiple Items on a Single Chart

We can use regular expressions in the metric field to build charts with a large number of items. Grafana uses JavaScript regular expressions. For example, if you need to display CPU time (user, system, iowait, etc.), you can create a chart using this regex in the Item field:

1
/CPU (?!idle).* time/

Zabbix multi items with regex

Another use case for regex is comparing the same metric across different hosts. Use the /./ regex to display all metrics, or write your own filter. For example, if I want to display the CPU system time for hosts whose names start with backend across all host groups, I use /./ for Group, /^backend/ for Host, and CPU system time for Item.

Backend system time

Template Variable

You can use template variables to create highly reusable and interactive dashboards. The general idea of templating is to allow Grafana to fetch different metrics from the data source and provide a way to change them on the fly without modifying the dashboard. For Zabbix, this means you can retrieve a list of host groups, hosts, applications, or items and add them as variables.

Creating Variables

Type: By default, the Query type is selected. This means Grafana will ask the data source for the variable values. However, there are other types as well: Interval (just a time interval), Data source (you can switch data sources — for example, if you have more than one Zabbix instance and each is added as a data source in Grafana), Custom (you can set any predefined values for the variable), and Constant.

Query Format

Template variable queries in the Zabbix data source are strings containing 4 parts wrapped in curly braces ({}).

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

For example:

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

Each part can be the name of the corresponding metric or * (meaning all metrics).

Examples:

  • {*} returns a list of all available host groups
  • {}{} all hosts in Zabbix
  • {Network}{*} returns all hosts in the Network group
  • {Linux servers}{}{} returns all applications for hosts in the Linux servers group
  • {Linux Servers}{backend01}{CPU}{*} returns all items belonging to the CPU application on backend01

You can use another variable as part of the query. For example, if you have a variable group that returns a list of host groups and you want to use it to query hosts in the selected group, the query would be:

1
{$group}{*}

Variables Usage

When you create a variable, you can use it as part of a data source query. Grafana also supports using variables in various places, such as panel and row titles, text panel content, etc.

Query with variables

Hands-On

Here we use the first dashboard found in Grafana Dashboards - Zabbix DataSource as an example — Zabbix - Full Server Status (ID: 5363).

Zabbix - Full Server Status

Variables

Group Variable

  • Name: Group
  • Type: Query
  • Data source: zabbix
  • Query Type: Group
  • Group: /env:[a-z]./ — the default is /./, which matches all groups, but you can write a regex to select specific groups based on your needs. For example, /env:[a-z].*/ selects groups starting with env:[a-z].

Full configuration example:

Zabbix Group Variable

Host Variable

  • Name: Host
  • Type: Query
  • Data source: zabbix
  • Query Type: Host
  • Group: $Group — queries further based on the Group Variable result
  • Host: /.*/ — queries all hosts under the corresponding group

Disk Variable

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

Panel Query

🐾 Item names may vary across different Zabbix versions and need to be adjusted accordingly.

For example, in my case, the Total memory panel of this dashboard was not displaying correctly. It needed to be adjusted as follows:

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

As shown below:

Zabbix Panel Query

Additionally, for Linux/Windows metric compatibility, the Item for total CPU count can be adjusted to:

Item: /Number of (CPUs|cores)/

Zabbix Problems

The Grafana Zabbix Plugin also comes with a built-in Zabbix Problems Panel. It integrates with Zabbix Problems to provide a polished display. Here’s what it looks like:

Problems Panel

The specific query configuration is as follows:

  • Query Mode: Problems
  • Then fill in Group, Host, Application, Problem, Tags, etc. as needed.

Detailed configuration:

Zabbix Problems Panel Config

Each problem can also be clicked to view details, with the ability to jump back to the Zabbix interface to handle it — execute scripts, acknowledge the problem, manually close it, and more. It’s quite powerful.

As shown below:

Zabbix Problems Detail

📚️References


Grafana Series - Unified Display - 6 - Zabbix Dashboard
https://e-whisper.com/posts/18827/
Author
east4ming
Posted on
May 6, 2023
Licensed under