当前位置: 首页 > news >正文

Zabbix状态图标灯显示

一、概览

Zabbix主机监控状态有四种类型:Zabbix(Zabbix agent) SNMP/JMX/IPMI,可通过对应图标的颜色直观判断主机数据采集是否正常。使用Zabbix Agent作为采集协议,有时会出现灰色的情况,对于初学者是一个较为困惑的点,本次主要阐述不同Zabbix版本中对ZBX标识的状态显示。

二、主被动模式

Zabbix Agent的采集分为二种模式,主动模式(Active checks)和被动模式(Passive checks)。可简单理解Zabbix主动拉取监控数据(被动模式),Agent主动往Server/Proxy推送监控数据(主动模式)。主动模式状态灯显示灰色。

一般默认情况下Zabbix Agent会同时配置主动和被动模式,被动监控指标Zabbix图标会显示绿色,如果Zabbix 被动模式连接出现问题,Zabbix图标会变成红色,鼠标停留在图标上面会显示具体的错误信息,可根据此错误信息进行问题排查。Zabbix图标显示状态必须具有对应类型的监控指标,否则图标图标一直显示灰色状态,对Zabbix6.2以下版本,图标显示情况如下:

被动模式(Passive checks) 主动模式(Active checks) 监控正常绿色、灰色、监控异常 红色,可以看到在Zabbix低版本中图标状态会跟随被动模式状态变化而变化,如果主动模式出现故障,则无法通过Zabbix图标显示。

三、新版本特性

为解决上述问题,从Zabbix6.2版本开始Zabbix官方增加了主动模式下的心跳检测函数send_heartbeat_msg,源码见: 解压目录/src/zabbix_agent/active.c

static void send_heartbeat_msg(zbx_vector_ptr_t *addrs)
static ZBX_THREAD_LOCAL int last_ret = SUCCEED;
int ret, level;
zbx_socket_t s;
struct zbx_json json;

zabbix_log(LOG_LEVEL_DEBUG, "In %s()", __func__);

zbx_json_init(&json, ZBX_JSON_STAT_BUF_LEN);

zbx_json_addstring(&json, ZBX_PROTO_TAG_REQUEST, ZBX_PROTO_VALUE_ACTIVE_CHECK_HEARTBEAT, ZBX_JSON_TYPE_STRING);
zbx_json_addstring(&json, ZBX_PROTO_TAG_HOST, CONFIG_HOSTNAME, ZBX_JSON_TYPE_STRING);
zbx_json_addint64(&json, ZBX_PROTO_TAG_HEARTBEAT_FREQ, CONFIG_HEARTBEAT_FREQUENCY);

level = SUCCEED != last_ret ? LOG_LEVEL_DEBUG : LOG_LEVEL_WARNING;

if (SUCCEED == (ret = zbx_connect_to_server(&s, CONFIG_SOURCE_IP, addrs, CONFIG_TIMEOUT, CONFIG_TIMEOUT,
configured_tls_connect_mode, 0, level)))
{
zabbix_log(LOG_LEVEL_DEBUG, "sending [%s]", json.buffer);

if (SUCCEED == (ret = zbx_tcp_send(&s, json.buffer)))
{
(void)zbx_tcp_recv(&s); /* allow Zabbix server or Zabbix proxy to close connection */

if (last_ret == FAIL)
{
zabbix_log(LOG_LEVEL_WARNING, "Successfully sent heartbeat message to [%s]:%d",
((zbx_addr_t *)addrs->values[0])->ip,
((zbx_addr_t *)addrs->values[0])->port);
}
}
}

if (SUCCEED != ret)
{
zabbix_log(level, "Unable to send heartbeat message to [%s]:%d [%s]",
((zbx_addr_t *)addrs->values[0])->ip, ((zbx_addr_t *)addrs->values[0])->port,
zbx_socket_strerror());
}

zbx_tcp_close(&s);
last_ret = ret;

zabbix_log(LOG_LEVEL_DEBUG, "Out %s()", __func__);
}

并且在6.2及以上版本Agent配置文件中增加了HeartbeatFrequency参数配置,可自行配置主动模式心跳检测时间,默认60秒发送一次心跳检测,当设置为0时,表示禁用主动模式心跳检测。

### Option: HeartbeatFrequency
# Frequency of heartbeat messages in seconds.
# Used for monitoring availability of active checks.
# 0 - heartbeat messages disabled.
# Mandatory: no
# Range: 0-3600
# Default: 60
# HeartbeatFrequency=

被动模式(Passive checks) 主动模式(Active checks) 监控正常、绿色、绿色、监控异常 红色、红色,当一个主机同时配置了主动和被动模式,并且同时使用主被动类型的监控指标,Zabbix图标则会按照以下规则显示:

1.被动模式正常,主动模式正常,Zabbix状态图标显示绿色:

2.被动模式正常,主动模式异常, Zabbix状态图标显示黄色:

3.被动模式正常,主动模式未知,Zabbix状态图标显示灰色:

如果Zabbix Server版本为6.2及以上版本,Zabbix Agent 低于Zabbix Server版本为6.2以下,此时由于低版本Zabbix Agent并无主动模式心跳检测功能及参数,因此无法获取状态显示Unknown,状态图标将显示为灰色。

四、总结

Zabbix版本更新迭代快,每个大的新版本将会对应增加很多新特性和功能,在使用新版本前一定要了解版本新特性,避免一些新的特性和功能导致部分实际场景功能失效。

欢迎一起交流探讨,解决你的技术难题!V:king_songax

http://www.dtcms.com/a/342893.html

相关文章:

  • K8s部署dashboard平台和基本使用
  • MySQL:MVCC机制及其在Java秋招中的高频考点
  • AutoTrack-IR-DR200平台的构建与实现过程
  • python采集义乌购(yiwugo)商品详情API接口,json数据返回
  • 透射TEM 新手入门:快速掌握核心技能
  • 【每日一道算法题 day5】盛最多水的容器 (Container With Most Water) - LeetCode 题解
  • 深度学习之NLP基础
  • 【React】tab切换功能和排序实现,classnames工具优化类名控制
  • Java基础环境jdk和maven安装及配置+开源项目下载及编译打包教程
  • Flutter如何通过GlobalKey调用组件内的方法
  • 微服务的编程测评系统13-我的竞赛列表-elasticSearch
  • 与H5交互,与flutter的交互
  • 求解三位数
  • 深度解析DeepSeek V3.1 :6850 亿参数开源模型如何以 71.6% 编码得分、68 倍成本优势重构全球 AI 竞争格局
  • 使用postman模拟http请求webservice服务
  • 企业如何用外贸进销存系统管理好库存产品?
  • Docker安装elasticsearch以及Kibana、ik分词器
  • 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十三)
  • 相似图像处理程序
  • mac的m3芯使用git
  • 1.2 亿篇论文数据集,多学科学术语料库,涵盖医学、化学、生物学、人文、物理、工程、数学、生态、经济与计算机科学,用于 NLP、知识图谱与大模型训
  • 意象驱动的深层语义:感知认知统一对自然语言处理与知识图谱的影响
  • 数据结构——二叉树(Binary Tree)
  • 自然语言处理NLP L4: 高级语言模型——四种泛化平滑方式
  • Spring全家桶之全局异常处理
  • Spring Boot生态中ORM对数据治理的支持有哪些?
  • Ubuntu22.04配置网络上网
  • linux-ubuntu里docker的容器portainer容器建立后如何打开?
  • Maven无法修改镜像,镜像在IDEA里不生效
  • 室外和室内 PoE 延长器有什么区别?