Zabbix Timeout 设置不当导致的问题及解决方案
目录
- 问题
- 排查
- 解决
今天跟大家分享一个关于 zabbix Timeout 值设置不当导致的问题,这个问题不知道大家有没有碰到过
问题
事情经过是这样的:
把某一台 zabbix agent 的模板由原来的 Template OS Windows by Zabbix agent 换成了 Template OS Windows by Zabbix agent active

Template OS Windows by Zabbix agent active 使用 主动模式 主动获取数据
Template OS Windows by Zabbix agent 使用 被动模式 等待 Server 请求数据
也就是说在主动模式下,Zabbix Agent 主动连接到 Zabbix Server 并发送监控数据,Zabbix Server 只需监听指定的端口,接收 Agent 发送过来的数据
结果发现 zabbix server 接收不到数据
排查
查看 agent 日志(/var/log/zabbix/zabbix_agentd.log),发现 ZBX_TCP_READ() timed out
8452:20230620:134942.947 active check configuration update from [192.168.149.129:10051] started to fail (ZBX_TCP_READ() timed out) 8452:20230620:135044.072 active check configuration update from [192.168.149.129:10051] is working again 8452:20230620:140049.959 active check configuration update from [192.168.149.129:10051] started to fail (ZBX_TCP_READ() timed out) 8452:20230620:140149.093 active check configuration update from [192.168.149.129:10051] is working again
而且经过进一步排查,发现:
- server 节点运行正常,agent 节点正常运行
- server 节点和 agent 节点之间可以 ping 通,而且 Telnet 端口可用
综合上面的现象,怀疑是网络原因导致 TCP 建立连接时间超时,agent 向 server 发送数据失败
既然是网络原因,那为什么我在修改模板(即被动模式)之前,server 是能够向 agent 获取数据的
怎么被动模式就没超时,主动模式就超时了呢?
解决
在 Zabbix 中,timeout(超时)是指在进行监控数据获取或传输时,等待响应的时间限制
在配置文件中如下所示,默认值是 3 s
### Option: Timeout
# Spend no more than Timeout seconds on processing
# Timeout=3
我们分别来看下 server 和 agent 关于超时时间的配置
#server 端
Timeout=30#agent 端
Timeout=3
可以看到,sever 端设置的超时时间是 30 s,agent 端设置的超时时间是 3s,这两个时间相差太大了吧
如果 agent 的 timeout 设置得太短,可能会导致一些请求无法完成;而如果 server 的 timeout 设置得太短,可能会导致 agent 的请求被错误地判定为超时
结合上面的情况,可以得知:
- 主动模式下,agent 向 server 发送数据的时候,agent 端设置的超时时间是 3s,有可能会出现网络原因导致 TCP 建立连接时间超时,server 端获取不到数据,就会出现上面的问题
- 被动模式下,server 向 agent 获取数据,但是 server 端设置的超时时间是 30s,这个超时时间可以说是非常大了
我们把 agent 端的超时时间改一下,跟 server 端一致
#agent 端
Timeout=30
重启 agent 后发现日志没有报 started to fail (ZBX_TCP_READ() timed out) 错,zabbix server 端也能够获取数据了

总结一下:
- 在 Zabbix 中,timeout 是指在进行监控数据获取或传输时,等待响应时间的限制
- Agent 和 Server 之间的超时时间设置应该相互协调,并根据实际网络状况和环境来进行调整。如果 Agent 的 timeout 设置得太短,可能会导致一些请求无法完成;而如果 Server 的 timeout 设置得太短,可能会导致 Agent 的请求被错误地判定为超时
- 主动模式下 agent 的 timeout 值最好高于 server 配的 timeout 值,被动模式下 server 配的 timeout 值最好高于 agent 的 timeout
If used with the passive agent, Timeout value in server configuration may need to be higher than Timeout in the agent configuration file. Otherwise the item may not get any value because the server request to agent timed out first.
上一篇:docker start启动容器后仍然exit状态的解决
栏 目:其它服务器
本文标题:Zabbix Timeout 设置不当导致的问题及解决方案
本文地址:https://zz.feitang.co/server/29886.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





