zabbix批量生成监控项教程

zabbix使用过程中,可能会有大批量监控性能测试的场景,这时候可能需要模拟生成大批量的监控项用于测试,这里演示使用自动发现的方式进行创建。

配置自动发现

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外部检查脚本目录下后,创建一台用于生成指标的主机

 

 

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

 

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

 

 

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

 

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

 

 

 

发送监控数据

以上步骤做好之后,还需要往监控项上报数据,这里通过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'

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

 

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

 

 

 

 

posted @ 2025-07-02 12:01  乐维_lwops  阅读(34)  评论(0)    收藏  举报