Zabbix的主动监控(Active Checks)和被动监控(Passive Checks)是两种不同的数据采集模式,主要区别如下:
1. 工作流程
主动监控 | 被动监控 |
---|---|
客户端(Agent)主动发起连接,向Zabbix Server或Proxy请求监控项列表,并定期上报数据。 | Zabbix Server或Proxy主动轮询客户端,向Agent发送请求获取数据。 |
数据流向:Agent → Server/Proxy | 数据流向:Server/Proxy → Agent |
2. 网络配置
主动监控 | 被动监控 |
---|---|
Agent需要能访问Server/Proxy的端口(默认10051 )。适用于Agent位于NAT或防火墙后的场景。 | Server/Proxy需要能访问Agent的端口(默认10050 )。要求Agent所在主机开放端口供Server访问。 |
3. 资源消耗
主动监控 | 被动监控 |
---|---|
Server负载更低:Agent自行管理数据采集和发送频率,适合大规模监控。 | Server负载更高:Server需频繁轮询所有Agent,可能成为性能瓶颈。 |
Agent需维护监控项缓存和调度逻辑。 | Agent仅响应请求,无需额外调度逻辑。 |
4. 配置方式
主动监控 | 被动监控 |
---|---|
Agent配置文件中需指定ServerActive (指向Server/Proxy的地址)。监控项类型需选择Zabbix Agent (Active)。 | Agent配置文件中需指定Server (允许连接的Server/Proxy地址)。监控项类型为Zabbix Agent。 |
5. 适用场景
主动监控 | 被动监控 |
---|---|
大规模分布式环境,Agent数量多。 网络限制严格(如Agent在私有网络)。 | 小规模环境或需要实时控制数据采集频率的场景。 Server与Agent网络直连无障碍。 |
6. 容错性
主动监控 | 被动监控 |
---|---|
若Server不可用,Agent会缓存数据直到恢复连接。 | 若Agent无响应,Server会立即标记为“不可达”。 |
7. 监控项灵活性
主动监控 | 被动监控 |
---|---|
支持自动注册(Auto Registration),适合动态环境(如云服务器)。 | 需手动配置Agent和监控项。 |
示例配置
主动监控
ini
复制
# Zabbix Agent配置文件 (zabbix_agentd.conf) ServerActive=192.168.1.10 # Zabbix Server地址 Hostname=MyHost # 必须与Zabbix Web中配置的主机名一致
被动监控
ini
复制
# Zabbix Agent配置文件 (zabbix_agentd.conf) Server=192.168.1.10 # 允许连接的Zabbix Server地址 Hostname=MyHost
总结
-
主动监控:适合大规模、分布式、网络受限的环境,降低Server负载。
-
被动监控:适合小规模或需要Server集中控制的场景,但对网络连通性要求更高。
通常建议混合使用两者,例如对关键服务使用被动监控(确保实时性),对其他指标使用主动监控(优化资源)。