在运维工作中,zabbix自定义发现是怎么做的?
在运维工作中,Zabbix 的自定义发现功能(Low-Level Discovery, LLD)是一个非常强大的工具,可以自动发现和监控系统中的资源,如文件系统、网络接口、服务等。以下是详细的步骤说明,帮助你实现 Zabbix 的自定义发现:
1. 创建自动发现规则
自动发现规则定义了如何发现特定的实体(如文件系统、网络接口等),并为这些实体生成监控项、触发器和图形。
- 步骤:
- 登录到 Zabbix Web 界面。
- 导航到 配置 > 模板 > 发现。
- 点击 创建发现规则。
- 填写发现规则的名称和键值。键值通常是内置的发现键(如
net.if.discovery)或自定义脚本返回的键。 - 设置更新间隔,指定多久运行一次发现规则。
2. 编写自定义脚本
如果需要自定义发现规则,需要编写一个脚本,该脚本返回符合 Zabbix 规定格式的 JSON 数据。
-
示例脚本:
#!/usr/bin/env python3 import json data = [ {"{#FSNAME}": "root", "{#FSTYPE}": "ext4"}, {"{#FSNAME}": "boot", "{#FSTYPE}": "ext2"} ] print(json.dumps({"data": data})) -
脚本要求:
- 脚本必须返回一个 JSON 对象,其中包含一个
data键,其值是一个字典列表。 - 每个字典包含一个或多个宏(如
{#FSNAME})及其对应的值。
- 脚本必须返回一个 JSON 对象,其中包含一个
3. 配置 Zabbix Agent
在 Zabbix Agent 的配置文件中(通常是 /etc/zabbix/zabbix_agentd.conf),添加自定义监控项。
-
示例配置:
UnsafeUserParameters=1 UserParameter=fs.discovery,/path/to/your/script.py -
说明:
UnsafeUserParameters=1允许使用自定义监控项。UserParameter定义了自定义监控项的键值和对应的脚本路径。
4. 添加监控项原型
在发现规则中,添加监控项原型,这些原型将用于生成具体的监控项。
- 步骤:
- 在发现规则页面,点击 添加监控项原型。
- 填写监控项的名称、键值等信息。键值可以包含发现规则中定义的宏,如
vfs.fs.size[{#FSNAME},pfree]。 - 设置监控项的其他参数,如更新间隔、历史数据保留时间等。
5. 添加触发器原型
同样地,可以为发现的实体添加触发器原型,这些触发器原型将用于生成具体的触发器。
- 步骤:
- 在发现规则页面,点击 添加触发器原型。
- 填写触发器的名称、表达式等信息。表达式可以使用发现规则中定义的宏,如
{vfs.fs.size[{#FSNAME},pfree].last()}<10。 - 设置触发器的其他参数,如优先级、描述等。
6. 应用发现规则
将创建的发现规则应用到目标主机或模板上。
- 步骤:
- 导航到 配置 > 主机 或 配置 > 模板。
- 选择目标主机或模板,点击 监控项 > 发现。
- 将创建的发现规则链接到目标主机或模板。
7. 测试和验证
- 测试发现规则:在 Zabbix Web 界面中,手动执行发现规则,查看是否能够正确发现目标实体。
- 验证监控项和触发器:检查生成的监控项和触发器是否正常工作,是否能够正确收集数据和触发告警。
综上所述,通过以上步骤,你可以实现 Zabbix 的自定义发现功能,自动发现和监控系统中的资源,提高运维效率和监控的准确性。

浙公网安备 33010602011771号