今天你绿了吗?ZABBIX图标显示详解

张世宏(当代张思德) | Zabbix开源社区签约专家

2016-2021年Zabbix中国峰会演讲嘉宾

2020年Zabbix全球峰会演讲嘉宾

自主研发开源组件Zabbix报表系统ZbxTable,在社区大获好评

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

主被动模式
Zabbix Agent的采集分为二种模式,主动模式(Active checks)和被动模式(Passive checks)。可简单理解为拉取(被动模式),推送(主动模式),详细介绍可查看之前的二篇文章

Zabbix Agent主动模式配置

Zabbix Agent被动模式配置

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

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

新版本变化
为了解决以上问题,从Zabbix6.2版本开始,官方增加了主动模式下的心跳检测函数send_heartbeat_msg.详见源码 zabbix\src\zabbix_agent\active.c


```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,则禁用主动模式心跳检测。

```c
### 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=

在Zabbix6.2版本开始,主动和被动二种监控状态都可分显示:
在这里插入图片描述

如监控状态异常也会显示对应的错误信息,状态则为绿色和灰色二种:

状态被动模式(Passive checks)主动模式(Active checks)
监控正常绿色绿色
监控异常红色红色
如果一个主机同时配置了主动和被动模式,并且同时关联了这二种类型的监控指标,ZBX图标则会按照下列规则进行显示:

· 如果被动模式正常,主动模式正常,那么Zabbix图标会是绿色:
在这里插入图片描述

如果被动模式正常,主动模式异常,那么Zabbix图标会是黄色:
在这里插入图片描述

· 如果被动模式正常,主动模式未知,那么Zabbix图标会显示灰色:
在这里插入图片描述

如果你的Zabbix Server为6.2版本而Zabbix Agent 是低于6.2的版本,由于低版本Zabbix Agent无主动模式心跳检测,因此无法获取。主动模式状态会显示为Unknown,Zabbix图标会显示灰色。这就是有些同学最近反应新版本中ZBX图标配置主动模式后图标也为灰色的原因。
结语
Zabbix版本更新较快,新版本会带来很多新特性和功能,在使用新版本之前一定要先查看版本的What’s new内容,并查看相关版本的在线文档,避免使用经验来套新系统。对于版本选择,生产环境强烈建议选择LTS版本。

——————————————————————————————————

张思德将在B站首播,
11月17日(周四)晚8点,点击即可
https://live.bilibili.com/26373155

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
zabbix是一款开源的企业级分布式监控解决方案,可以监控各种网络参数、服务器状态和各种服务的运行状态。下面是zabbix配置的详解: 1.安装zabbix server和zabbix agent 在安装zabbix server和zabbix agent之前,需要先安装LAMP或LEMP环境。然后可以通过以下命令安装zabbix server和zabbix agent: ```shell sudo apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent ``` 2.配置zabbix server (1)创建zabbix数据库和用户 ```shell mysql -uroot -p create database zabbix character set utf8 collate utf8_bin; grant all privileges on zabbix.* to zabbix@localhost identified by 'password'; flush privileges; exit; ``` (2)导入zabbix数据库 ```shell cd /usr/share/doc/zabbix-server-mysql gunzip create.sql.gz mysql -uzabbix -p zabbix < create.sql ``` (3)修改zabbix server配置文件 ```shell sudo vim /etc/zabbix/zabbix_server.conf ``` 修改以下参数: ```shell DBName=zabbix DBUser=zabbix DBPassword=password ``` (4)启动zabbix server ```shell sudo systemctl restart zabbix-server sudo systemctl enable zabbix-server ``` 3.配置zabbix agent (1)修改zabbix agent配置文件 ```shell sudo vim /etc/zabbix/zabbix_agentd.conf ``` 修改以下参数: ```shell Server=127.0.0.1 ServerActive=127.0.0.1 Hostname=Zabbix server ``` (2)启动zabbix agent ```shell sudo systemctl restart zabbix-agent sudo systemctl enable zabbix-agent ``` 4.配置zabbix web界面 (1)修改zabbix web配置文件 ```shell sudo vim /etc/zabbix/apache.conf ``` 修改以下参数: ```shell php_value date.timezone Asia/Shanghai ``` (2)重启apache服务 ```shell sudo systemctl restart apache2 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值