哈喽大家好,我是咸鱼

今天跟大家分享一个关于 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.

Zabbix Timeout 设置不当导致的问题的更多相关文章

  1. Windows分页文件设置不当导致SQL Server服务被终止

    Windows分页文件设置不当导致SQL Server服务被终止 文章说明 在正式开始验证和测试之前,先介绍Windows分页文件和SQL Server的动态内存管理.下面测试将分为两种测试场景:场景 ...

  2. 一次由于 MTU 设置不当导致的网络访问超时

    转自:http://weibo.com/ttarticle/p/show?id=2309404140904511340923 API 服务正常,但是调用总是超时.api端日志显示,响应速度很快. ​​ ...

  3. 避免因为Arcgis Server服务设置不当导致Oracle Process溢出的方法

    我之前写过一篇文章<arcsoc进程无限增长导致oracle processes溢出>(见链接:https://www.cnblogs.com/6yuhang/p/9379086.html ...

  4. MTU设置不当导致ssh运行命令卡死

    MTU:最大网络传输单元,计算机网络课会介绍. 场景: 本地通过VPN连接某个机房内网的linux服务器,连接上之后,运行top命令.vi命令.yum update等需要刷新大量内容时导致ssh卡死, ...

  5. 备忘:有MTU值设置不当导致的部分网站无法访问问题

    如题,有时候突然weibo.com,webQQ等网站网络连接超时,怎么找也没得原因,今天管理电信的光猫,发现设置的MTU的1400,突然想起之前电脑和路由器上设置的MTU是1500,感觉可能是这个问题 ...

  6. Session设置不当导致API变成单线程问题的解决

    起因: 最近开发一个项目,有个接口很慢(数据库的问题),然后在执行期间,随手去点了其他功能(调用其他接口),发现不响应了.等那个很慢的接口返回结果了,这个功能才立马返回结果.  这明显是一个问题啊! ...

  7. 由于MTU设置不当导致的访问超时

    现象 工作中遇到一件怪事:搭建好服务器后(VPN服务器,创建了虚拟网卡),服务器和客户端之间响应正常且很稳定,客户端也能正常通过服务器访问外网.但是访问个别网站时可以打开文字,但是部分图片打不开(也不 ...

  8. JIRA应用的内存参数设置不当+容器没有对资源进行限制导致服务挂掉的例子

    背景: 应用的部署结构是这样的:使用rancher管理的Docker集群,有三台物理主机,二十多个Docker容器, 提供的功能是问题跟踪(JIRA),文档管理(Confluence),代码托管(sv ...

  9. zabbix 服务器设置邮件报警

    实验条件: Zabbix监控服务器.客户端都已经部署完成,被监控主机已添加完成,Zabbix监控运行正常. 实现目的: Zabbix监控服务器设置邮件报警,当被监控主机宕机或达到触发器预设值进,会自动 ...

  10. WPF--Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析

    原文地址: http://www.tuicool.com/articles/F7reem http://blog.csdn.net/yl2isoft/article/details/11711833 ...

随机推荐

  1. vue之过滤、筛选功能的实现

    目录 需求 代码 需求 给定一个列表(模拟数据),根据用户输入,自动筛选输入的内容并输出到屏幕 代码 <!DOCTYPE html> <html lang="en" ...

  2. Ansible 安装并简单使用

    Ansible 简介 Ansible 是一款 IT 自动化工具.主要应用场景有配置系统.软件部署.持续发布及不停服平滑滚动更新的高级任务编排. Ansible 本身非常简单易用,同时注重安全和可靠性, ...

  3. 迁移学习(SPI)《Semi-Supervised Domain Adaptation by Similarity based Pseudo-label Injection》

    论文信息 论文标题:Semi-Supervised Domain Adaptation by Similarity based Pseudo-label Injection论文作者:Abhay Raw ...

  4. SSM整合的所有配置(配置文件)

    mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE co ...

  5. 用 Gaussian Process 建模 state-action 空间相关性,加速 Multi-Fidelity RL

    目录 全文快读 1 intro 3 背景 4 method 4.1 model-based 算法:GP-VI-MFRL 4.2 model-free 算法:GPQ-MFRL 5 experiment ...

  6. Java学习笔记07

    1. API ​ API(Application Programming Interface):应用程序接口. Java中的API ​ 指的是JDK中提供的各种功能的Java类,这些类将底层的实现封装 ...

  7. SpringBoot自定义cron表达式注册定时任务

    springBoot自定义cron表达式注册定时任务 一.原理 1.使用Spring自带的TaskScheduler注册任务 2.注册后返回:ScheduledFuture,用于取消定时任务 3.注册 ...

  8. JVM有意思的图-持续更新

    放一些JVM有意思的图 通过一行代码联想JVM:

  9. 数据分析05-matplotlib基本绘图、高级绘图

    数据分析-05 数据分析-05 matplotlib基本功能详解 基本绘图 1)绘图核心API 2)设置线型.线宽 3)设置坐标轴范围 4)设置坐标刻度 5)设置坐标轴 6)图例 7)特殊点 8)备注 ...

  10. Centos7.x 安装 nmon性能监控工具

    一.简介 nmon 工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新.这个高效的工具可以工作于任何哑屏幕.telnet 会话.甚至拨号线路.另外,它并不会消耗大量的 CPU 周 ...