Zabbix 7 自动发现与自动注册配置
kubernetes.pod.discovery:用于发现Kubernetes集群中的Pods,包括Pod名称、命名空间、状态、IP地址等,可对Pods的资源使用和容器运行状态进行监控。docker.container.discovery:自动发现主机上运行的Docker容器,包括容器名称、ID、状态等信息,可用于监控容器资源使用情况和内部应用性能。aws.ec2.discovery:自动发现亚马
一、自动发现 (Network Discovery) 配置
1. 创建自动发现规则
-
登录 Zabbix Web 界面
-
导航到 Configuration → Discovery
-
点击 Create discovery rule
-
配置基本参数:
-
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. 配置发现动作
-
导航到 Configuration → Actions
-
选择 Discovery 事件源
-
点击 Create action
-
配置动作:
-
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. 创建自动注册动作
-
导航到 Configuration → Actions
-
选择 Auto registration 事件源
-
点击 Create action
-
配置动作:
-
Name: 动作名称(如 "Register Linux Production hosts")
-
Conditions: 设置条件(如 Host metadata contains Linux)
-
Operations: 添加操作(如 "Add host", "Link to templates"等)
-
最佳实践
-
使用 HostMetadata: 在自动注册中充分利用 HostMetadata 来分类主机
-
模板链接: 在动作中自动链接适当的模板
-
分组策略: 根据发现或注册条件自动将主机添加到主机组
-
测试规则: 先在小型网络或少量主机上测试发现/注册规则
-
监控发现过程: 设置监控项来跟踪自动发现和注册的状态
故障排除
-
发现不工作:
-
检查网络连接和防火墙设置
-
验证发现规则中的IP范围是否正确
-
检查Zabbix server/proxy日志
-
-
自动注册失败:
-
验证 agent 配置中的 ServerActive 设置
-
检查主机名是否唯一
-
确保 agent 能够连接到 Zabbix server/proxy
-
-
性能问题:
-
对于大型网络,考虑使用分布式发现
-
调整发现间隔以避免网络拥塞
-
在代理后面部署发现功能以减少服务器负载
-
附录:自动发现常用的键
-
操作系统相关
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:发现系统用户,用于安全监控等。
-
数据库相关
mysql.discovery:自动发现MySQL数据库的对象,如数据库、表等,用于监控数据库性能、连接数等指标。
oracle.discovery:用于发现Oracle数据库中的实例、表空间、数据文件等对象,可对数据库性能和状态进行监控。
postgres.discovery:能发现PostgreSQL数据库中的数据库、表、索引等对象,方便监控数据库的资源使用和查询性能。
-
中间件相关
tomcat.discovery:自动发现Tomcat中间件中的应用程序、Servlet、JSP页面等,可用于监控Tomcat的运行状态和性能指标。
rabbitmq.discovery:用于发现RabbitMQ消息队列中间件中的队列、交换机、绑定关系等,方便对消息队列的长度、消息收发速率等进行监控。
-
容器相关
docker.container.discovery:自动发现主机上运行的Docker容器,包括容器名称、ID、状态等信息,可用于监控容器资源使用情况和内部应用性能。
kubernetes.pod.discovery:用于发现Kubernetes集群中的Pods,包括Pod名称、命名空间、状态、IP地址等,可对Pods的资源使用和容器运行状态进行监控。
-
网络设备相关
snmp.if.discovery:如果设备支持SNMP协议,可自动发现网络设备的接口,用于监控接口的流量、状态等。
snmp.vlan.discovery:通过SNMP协议自动发现网络设备上的VLAN信息,包括VLAN ID、VLAN名称、VLAN成员端口等,用于监控VLAN相关的流量和端口状态。
cisco.config.discovery(主要用于Cisco设备):自动发现设备的配置信息,如接口配置、路由配置、访问控制列表等,用于及时发现设备配置变更。
-
云平台相关
aws.ec2.discovery:自动发现亚马逊AWS EC2实例的相关信息,如实例ID、实例类型、状态、IP地址等,可用于监控EC2实例的性能指标。
azure.vm.discovery:用于发现微软Azure云平台虚拟机的基本信息和性能指标,如虚拟机名称、状态、资源组、CPU使用率、磁盘I/O等,方便对虚拟机进行管理和监控。
更多推荐


所有评论(0)