Akemi

Zabbix7自定义监控项与集成Grafana

2025/12/30

最简单的自定义监控项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 配置文件位置
/etc/zabbix/zabbix_agent2.conf
# 子配置文件位置
/etc/zabbix/zabbix_agent2.d/*.conf

# 创建子配置文件
vim /etc/zabbix/zabbix_agent2.d/custom_monitor.conf
# 配置文件格式说明
UserParameter=<key>,<command>
UserParameter=<key[*]>,<command $1 $2 ...>

<key>:监控项键值
<command>:要执行的命令或脚本
[*]:表示接受参数(方括号内可以自定义格式)
$1, $2, $3...:对应传递的参数位置

# 创建一个最简单的自定义键控制
cat /etc/zabbix/zabbix_agent2.d/custom_monitor.conf
UserParameter=<test_key>,<echo "test_sucessful">

使用shell脚本自定义监控项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 创建脚本
cat > /etc/zabbix/scripts/get_mem_cpu.sh <<EOF
#!/bin/bash
# 内存使用率
mem=$(free | awk '/Mem/{printf "%.1f", $3/$2*100}')

# CPU使用率(使用mpstat如果可用,否则用vmstat)
cpu=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)

echo "${mem}"
echo "${cpu}"
EOF

# 创建自定义监控项
cat /etc/zabbix/zabbix_agent2.d/custom_monitor.conf
UserParameter=test_key,echo "test_sucessful"
UserParameter=system.cpu.usage,/etc/zabbix/scripts/get_mem_cpu.sh | tail -1
UserParameter=system.mem.usage,/etc/zabbix/scripts/get_mem_cpu.sh | head -1

部署Grafana与添加数据源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 直接容器快速部署
docker run -d --name grafana \
-p 3000:3000 \
-e "GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app" \
grafana/grafana:10.4.3

# 官网插件(适用二进制安装的grafana)
https://grafana.com/grafana/plugins/all-plugins/

# 进入3000端口
默认用户名密码admin/admin
# 在设置-插件中,打开zabbix插件enable

# 添加数据源,选择zabbix

# 填入Connection信息、填入zabbix用户名密码Admin/zabbix

添加仪表盘(dashboard)

CATALOG
  1. 1. 最简单的自定义监控项
  2. 2. 使用shell脚本自定义监控项
  3. 3. 部署Grafana与添加数据源
  4. 4. 添加仪表盘(dashboard)