Skip to content
Back to Blog
Monitoring

Zabbix 7.0 Advanced Monitoring: Custom Dashboards

Creating enterprise-grade Zabbix dashboards with custom metrics, triggers, and Grafana integration for infrastructure visibility.

Apr 2025
10 min read

Zabbix 7.0 Custom Dashboards

Zabbix 7.0 introduced a completely redesigned dashboard engine with widget-based layouts and shared dashboards.

Installation (Ubuntu 22.04)

BASH
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_7.0-1+ubuntu22.04_all.deb
apt update
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

Custom Item Types

TEXT
# SNMP item for MikroTik CPU
Type: SNMP agent
OID: .1.3.6.1.4.1.14988.1.1.3.14.0
Key: mikrotik.cpu.load
Type of information: Numeric (float)
Update interval: 60s

Create Network Dashboard

Essential widgets for network monitoring:
  1. Graph widget: Bandwidth per interface (last 24h)
  2. Gauge widget: CPU utilization % (color thresholds: green<60, yellow<80, red>80)
  3. Top hosts: Hosts by traffic or CPU
  4. Map widget: Network topology with live status
  5. Problem widget: Active alerts by severity

Custom Template via API

PYTHON
import requests

zabbix_url = "http://zabbix.local/api_jsonrpc.php"

# Authenticate
auth = requests.post(zabbix_url, json={
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {"username": "Admin", "password": "zabbix"},
    "id": 1
}).json()["result"]

# Create item
requests.post(zabbix_url, json={
    "jsonrpc": "2.0",
    "method": "item.create",
    "params": {
        "name": "Interface {#IFNAME} — In traffic",
        "key_": "net.if.in[{#IFNAME}]",
        "hostid": "10001",
        "type": 0,
        "value_type": 3,
        "delay": "60s"
    },
    "auth": auth,
    "id": 2
})

Grafana Integration

BASH
# Install Grafana Zabbix plugin
grafana-cli plugins install alexanderzobnin-zabbix-app

# Configure data source in Grafana
# URL: http://zabbix.local/api_jsonrpc.php
# Username: zabbix-readonly

Alert Escalation

Configure multi-level escalation: 1st notify on-call → 15min → notify team lead → 30min → notify manager.