zabbix进阶:批量生成监控项教程

本文将详细介绍如何利用 Zabbix 的自动发现(Low-Level Discovery,简称 LLD)机制,快速实现监控项的批量生成与数据上报,帮助高效完成测试场景搭建。
在 Zabbix 的日常运维与测试工作中,常会遇到需要批量创建监控项的场景 —— 例如性能压力测试时,需模拟大量监控项来验证系统承载能力。手动逐个配置不仅效率低下,还易出现疏漏。本文将详细介绍如何利用 Zabbix 的自动发现(Low-Level Discovery,简称 LLD)机制,快速实现监控项的批量生成与数据上报,帮助高效完成测试场景搭建。

一、配置自动发现

Low-Level Discovery 是 Zabbix 的一种自动发现机制,允许你自动检测并添加多个具有相同结构的监控项,比如:服务器上的磁盘分区、网络接口、数据库中的表、自定义资源(如进程、日志文件等)。
LLD 的核心是返回一个特定格式的 JSON,例如:
{
    "data": [
        { "{#DISKNAME}": "sda1" },
        { "{#DISKNAME}": "sda2" }
    ]
}
了解了以上原理后,首先我们编写一个Python脚本,用于输出符合LLD格式的JSON数据,举例如下:
#!/usr/bin/env python

# -*- coding: utf-8 -*-
import json
# 生成 A1 到 A1000 的磁盘名
disk_list = ["A{}".format(i) for i in range(1, 1001)]
# 构造符合 Zabbix LLD 的数据结构
lld_data = {
    "data": [
        {"{#DISKNAME}": disk} for disk in disk_list
    ]
}
# 输出 JSON 格式
print(json.dumps(lld_data, indent=4, ensure_ascii=False))

将以上脚本放到zabbix外部检查脚本目录下后,创建一台用于生成指标的主机

Wis16U5z6870678de1b22.png


在此主机下,创建一个自动发现规则,类型选择外部检查,键值选择我们刚才新建的脚本即可

FWA0sGJ1687067d18c394.png

在此发现规则下,创建一个监控项原型,类型选择zabbix采集器,方便进行接收数据

2yKCEeJi687067e766e21.png

创建好之后,即可手动执行此发现规则

W028Pzbw687067f8275c2.png

执行后,可以看到生成了1000个监控项

0d69edyr6870680451cca.png


二、发送监控数据

以上步骤做好之后,还需要往监控项上报数据,这里通过zabbix_sender的方式进行。

以下为脚本举例:

#!/bin/bash

for i in $(seq 1 1000); do
    #echo "A[A$i]"
    /itops/zabbix/bin/zabbix_sender -z 127.0.0.1 -s test -k "A[A$i]" -o '0.01'

执行此脚本后,可看到监控项已有数据。

yS7zqqh56870681be80a7.png
至此,已简单实现批量生成监控项目。后续也可根据实际需求,进行监控类型,信息类型的更改,用于测试更复杂的场景~

0 条评论

请先 登录 后评论
细雨闲花
细雨闲花

13 篇文章

作家榜 »

  1. 乐维君 456 文章
  2. YOHOHO 14 文章
  3. 细雨闲花 13 文章
  4. 机灵小和尚 13 文章
  5. 我是一只小菜鸡 12 文章
  6. 。。。 9 文章
  7. 御前侍卫张五哥 9 文章
  8. 小黄人 8 文章