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'

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容