一、自动发现 (Network Discovery) 配置

1. 创建自动发现规则

  1. 登录 Zabbix Web 界面

  2. 导航到 Configuration → Discovery

  3. 点击 Create discovery rule

  4. 配置基本参数:

    • Name: 规则名称(如 "Local Network Discovery")

    • IP range: 要扫描的IP范围(如 192.168.1.1-254)

    • Update interval: 扫描频率(如 1h)

    • Checks: 选择发现方式(如 ICMP ping, Zabbix agent, SNMP等)

    • Device uniqueness criteria: 选择如何识别唯一设备(通常使用IP地址)

2. 配置发现动作

  1. 导航到 Configuration → Actions

  2. 选择 Discovery 事件源

  3. 点击 Create action

  4. 配置动作:

    • Name: 动作名称(如 "Add discovered hosts")

    • Conditions: 设置触发条件(如 Service = Zabbix agent)

    • Operations: 添加操作(如 "Add host", "Link to templates"等)

二、自动注册 (Auto Registration) 配置

1. 配置 Zabbix Agent

在每个需要自动注册的主机上编辑 Zabbix agent 配置文件(通常为 /etc/zabbix/zabbix_agentd.conf):

ServerActive=zabbix.server.ip
Hostname=Unique_Hostname
HostMetadata=Linux,Production

2. 创建自动注册动作

  1. 导航到 Configuration → Actions

  2. 选择 Auto registration 事件源

  3. 点击 Create action

  4. 配置动作:

    • Name: 动作名称(如 "Register Linux Production hosts")

    • Conditions: 设置条件(如 Host metadata contains Linux)

    • Operations: 添加操作(如 "Add host", "Link to templates"等)

最佳实践

  1. 使用 HostMetadata: 在自动注册中充分利用 HostMetadata 来分类主机

  2. 模板链接: 在动作中自动链接适当的模板

  3. 分组策略: 根据发现或注册条件自动将主机添加到主机组

  4. 测试规则: 先在小型网络或少量主机上测试发现/注册规则

  5. 监控发现过程: 设置监控项来跟踪自动发现和注册的状态

故障排除

  1. 发现不工作:

    • 检查网络连接和防火墙设置

    • 验证发现规则中的IP范围是否正确

    • 检查Zabbix server/proxy日志

  2. 自动注册失败:

    • 验证 agent 配置中的 ServerActive 设置

    • 检查主机名是否唯一

    • 确保 agent 能够连接到 Zabbix server/proxy

  3. 性能问题:

    • 对于大型网络,考虑使用分布式发现

    • 调整发现间隔以避免网络拥塞

    • 在代理后面部署发现功能以减少服务器负载

附录:自动发现常用的键

  1. 操作系统相关

Linux

system.uname:键通常用于获取系统相关的信息,包括操作系统名称、内核版本等

net.if.discovery:自动发现网络接口,可用于监控网卡的流量、状态等信息。

vfs.fs.discovery:发现文件系统,方便监控磁盘空间使用情况、文件系统类型等。

proc.discovery:用于发现正在运行的进程,有助于监控进程的资源占用和状态。

service.discovery:发现系统服务,可对服务的启动、停止等状态进行监控。

hw.sensor.discovery:自动检测硬件传感器,例如温度和风扇转速传感器,用于硬件状态监测。

user.discovery:发现系统用户,能用于监控用户登录活动等安全相关内容。

Windows

net.if.discovery:同Linux下的功能类似,用于发现网络接口。

vfs.fs.discovery:发现文件系统,可监测磁盘分区等情况。

win_service.discovery:专门用于发现Windows服务,方便对服务状态进行监控。

proc.discovery:发现运行的进程,可用于监控进程资源占用等情况。

user.discovery:发现系统用户,用于安全监控等。

  1. 数据库相关

mysql.discovery:自动发现MySQL数据库的对象,如数据库、表等,用于监控数据库性能、连接数等指标。

oracle.discovery:用于发现Oracle数据库中的实例、表空间、数据文件等对象,可对数据库性能和状态进行监控。

postgres.discovery:能发现PostgreSQL数据库中的数据库、表、索引等对象,方便监控数据库的资源使用和查询性能。

  1. 中间件相关

tomcat.discovery:自动发现Tomcat中间件中的应用程序、Servlet、JSP页面等,可用于监控Tomcat的运行状态和性能指标。

rabbitmq.discovery:用于发现RabbitMQ消息队列中间件中的队列、交换机、绑定关系等,方便对消息队列的长度、消息收发速率等进行监控。

  1. 容器相关

docker.container.discovery:自动发现主机上运行的Docker容器,包括容器名称、ID、状态等信息,可用于监控容器资源使用情况和内部应用性能。

kubernetes.pod.discovery:用于发现Kubernetes集群中的Pods,包括Pod名称、命名空间、状态、IP地址等,可对Pods的资源使用和容器运行状态进行监控。

  1. 网络设备相关

snmp.if.discovery:如果设备支持SNMP协议,可自动发现网络设备的接口,用于监控接口的流量、状态等。

snmp.vlan.discovery:通过SNMP协议自动发现网络设备上的VLAN信息,包括VLAN ID、VLAN名称、VLAN成员端口等,用于监控VLAN相关的流量和端口状态。

cisco.config.discovery(主要用于Cisco设备):自动发现设备的配置信息,如接口配置、路由配置、访问控制列表等,用于及时发现设备配置变更。

  1. 云平台相关

aws.ec2.discovery:自动发现亚马逊AWS EC2实例的相关信息,如实例ID、实例类型、状态、IP地址等,可用于监控EC2实例的性能指标。

azure.vm.discovery:用于发现微软Azure云平台虚拟机的基本信息和性能指标,如虚拟机名称、状态、资源组、CPU使用率、磁盘I/O等,方便对虚拟机进行管理和监控。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐