作者信息:https://home.cnblogs.com/u/huangjiabobk

在运维工作中,zabbix自定义发现是怎么做的?

在运维工作中,Zabbix 的自定义发现功能(Low-Level Discovery, LLD)是一个非常强大的工具,可以自动发现和监控系统中的资源,如文件系统、网络接口、服务等。以下是详细的步骤说明,帮助你实现 Zabbix 的自定义发现:

1. 创建自动发现规则

自动发现规则定义了如何发现特定的实体(如文件系统、网络接口等),并为这些实体生成监控项、触发器和图形。

  • 步骤
    1. 登录到 Zabbix Web 界面。
    2. 导航到 配置 > 模板 > 发现
    3. 点击 创建发现规则
    4. 填写发现规则的名称和键值。键值通常是内置的发现键(如 net.if.discovery)或自定义脚本返回的键。
    5. 设置更新间隔,指定多久运行一次发现规则。
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})及其对应的值。
3. 配置 Zabbix Agent

在 Zabbix Agent 的配置文件中(通常是 /etc/zabbix/zabbix_agentd.conf),添加自定义监控项。

  • 示例配置

    UnsafeUserParameters=1
    UserParameter=fs.discovery,/path/to/your/script.py
    
  • 说明

    • UnsafeUserParameters=1 允许使用自定义监控项。
    • UserParameter 定义了自定义监控项的键值和对应的脚本路径。
4. 添加监控项原型

在发现规则中,添加监控项原型,这些原型将用于生成具体的监控项。

  • 步骤
    1. 在发现规则页面,点击 添加监控项原型
    2. 填写监控项的名称、键值等信息。键值可以包含发现规则中定义的宏,如 vfs.fs.size[{#FSNAME},pfree]
    3. 设置监控项的其他参数,如更新间隔、历史数据保留时间等。
5. 添加触发器原型

同样地,可以为发现的实体添加触发器原型,这些触发器原型将用于生成具体的触发器。

  • 步骤
    1. 在发现规则页面,点击 添加触发器原型
    2. 填写触发器的名称、表达式等信息。表达式可以使用发现规则中定义的宏,如 {vfs.fs.size[{#FSNAME},pfree].last()}<10
    3. 设置触发器的其他参数,如优先级、描述等。
6. 应用发现规则

将创建的发现规则应用到目标主机或模板上。

  • 步骤
    1. 导航到 配置 > 主机配置 > 模板
    2. 选择目标主机或模板,点击 监控项 > 发现
    3. 将创建的发现规则链接到目标主机或模板。
7. 测试和验证
  • 测试发现规则:在 Zabbix Web 界面中,手动执行发现规则,查看是否能够正确发现目标实体。
  • 验证监控项和触发器:检查生成的监控项和触发器是否正常工作,是否能够正确收集数据和触发告警。

综上所述,通过以上步骤,你可以实现 Zabbix 的自定义发现功能,自动发现和监控系统中的资源,提高运维效率和监控的准确性。

posted @ 2025-04-10 22:33  黄嘉波  阅读(119)  评论(0)    收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波