Zabbix 4.2发布

我们的团队非常高兴与您分享免费的开源监控系统Zabbix 4.2的发布消息!



4.2版是否可以回答有关生命,宇宙和监视的主要问题? 让我们来看看!

回想一下,Zabbix是一个通用系统,用于监视服务器,工程和网络设备,应用程序,数据库,虚拟化系统,容器,IT服务和Web服务的性能和可用性。

Zabbix实施了一个完整的周期,从收集数据,处理和转换数据,分析接收到的数据到最后存储此数据,使用升级规则可视化和发送警报,到整个过程。 该系统还提供了灵活的选项,可扩展用于收集数据和警报的方法以及通过API的自动化功能。 单个Web界面提供对监视配置的集中管理以及对各种用户组的访问权限的分配。 项目代码根据GPLv2许可证免费分发。

Zabbix 4.2是新的非LTS版本,官方支持期缩短了。 建议在长期使用软件产品的情况下指导用户使用LTS版本,例如3.0和4.0。

因此,让我们谈谈4.2版的最新更新和主要改进:

更多官方平台



除了现有的官方软件包,我们还提供以下新版本:

  • RaspberryPi,Mac OS / X,SUSE Enterprise Linux Server 12
  • 适用于Windows代理的MSI
  • Docker映像

内置的Prometheus支持应用程序监视


Zabbix可以通过各种方式(推/拉)从不同的数据源收集数据。 这些是JMX,SNMP,WMI,HTTP / HTTPS,RestAPI,XML Soap,SSH,Telnet,代理和脚本以及其他来源。 现在获得Prometheus支持!

严格来说,得益于HTTP / HTTPS数据元素类型和正则表达式,可以更早地从Prometheus出口商处收集数据。

但是,由于对PromQL查询语言的内置支持,新版本允许尽可能高效地使用Prometheus。 而且,使用依赖指标可以使您最有效地收集和处理数据:申请数据后,然后根据必要的指标进行布局。


获取特定指标的值

重要的是要注意,现在低级发现可以使用收集的数据自动创建指标。 在这种情况下,Zabbix会将接收到的数据转换为JSON格式,使用起来非常方便。


使用PromQL查询语言的过滤器查找指标

目前,有300多种集成和配方可用于使用Zabbix 监视第三方服务和应用程序。 对Prometheus的支持将添加具有官方或社区支持的Prometheus出口商的所有应用程序。 这是对流行服务,容器和云资源的监视。

高效的高频监测


我们要尽快发现问题吗? 当然,毫无疑问! 大多数情况下,这种方法导致我们需要查询设备并过于频繁地收集数据这一事实,这导致监视系统的负担更大。 如何避免这种情况?

我们在预处理规则中实现了节流机制。 实际上,小跑可以让我们跳过相同的值。

假设我们监视关键应用程序的状态。 每秒,我们检查我们的应用程序是否正常运行。 在这种情况下,Zabbix从1(正常)和0(无效)接收连续的数据流。 例如:111111111111000111111111111111 ...

当我们的应用程序一切正常时,Zabbix仅从一个单元接收流。 我需要处理它们吗? 通常,不,因为我们只对更改应用程序的状态感兴趣,所以我们不想收集和存储这么多数据。 因此,如果与前一个值相同,则小跑可以跳过该值。 结果,我们仅获得有关状态变化的数据,例如01010101 ...有足够的信息来检测问题!

Zabbix只是忽略丢失的值,它们不会被写入历史记录,并且不会以任何方式影响触发器。 从Zabbix的角度来看,不存在缺失值。


忽略重复值

哇! 现在,我们可以经常轮询设备,同时立即检测问题而无需在数据库中存储不必要的信息。

但是图形呢? 由于缺少数据,它们将为空! 以及您如何知道如果大多数数据被跳过,Zabbix是否会收集数据?

我们考虑过了! Zabbix提供了另一种类型的节流,即通过心跳进行节流。


每分钟检查一次指标是否有效

在这种情况下,尽管有重复的数据流,Zabbix仍将在指定的时间间隔内保存至少一个值。 如果每秒收集一次数据,并且时间间隔设置为一分钟,则Zabbix将把一秒钟的数据流变成一分钟的数据流。 显而易见,这导致接收数据的60倍压缩。

现在,我们确定已在收集数据,nodata()触发函数可以正常使用,并且一切都与图表保持一致!

验证收集的数据和错误处理


我们谁也不想收集错误或不准确的数据。 例如,我们知道温度传感器应返回0°C至100°C之间的数据,而其他任何值都应视为错误和/或被忽略。

现在可以借助内置的预处理规则进行数据验证,以匹配或不匹配正则表达式,值范围,JSONPath和XMLPath。

现在我们可以控制对错误的响应了。 如果温度超出范围,我们可以简单地忽略此值,设置默认值(例如0°C),或定义我们自己的错误消息,例如“传感器损坏”或“更换电池”。


温度应在0到100之间,忽略其余部分

使用验证的一个很好的例子是能够检查输入是否存在错误消息,并为整个度量设置此错误。 从外部API检索数据时,此功能非常有用。

使用JavaScript进行任何数据转换


如果内置的预处理规则对我们来说还不够,那么现在我们可以使用任意JavaScript脚本提供完全的自由!


只需一行代码即可将华氏度转换为摄氏度

这为处理传入数据开辟了无限可能。 此功能的实际好处是,现在我们不需要用于任何数据操作的外部脚本。 现在,所有这些都可以使用JavaScript完成。

现在,数据转换,聚合,过滤器,算术和逻辑运算以及更多的功能成为可能!


我们从Apache mod_status的输出中提取有用的信息!

测试预处理


现在,我们不必怀疑复杂的预处理脚本如何工作。 直接从界面可以方便地检查预处理的正确性!




我们每秒处理数百万个指标!


在Zabbix 4.2之前,只有Zabbix服务器参与预处理,这限制了使用代理进行负载平衡的可能性。

从Zabbix 4.2版本开始,由于在代理端支持前处理,我们获得了难以置信的高效负载缩放。 现在代理正在这样做!



结合节流,此方法可进行高频大规模监视和每秒数百万次检查,而无需加载中央Zabbix服务器。 代理处理大量数据,而由于节流,只有一小部分到达Zabbix服务器,减少了一个或两个数量级。

更简单的低电平检测


回想一下,低级检测(LLD)是一种非常强大的机制,可以自动检测要监视的任何类型的资源(文件系统,进程,应用程序,服务等),并根据它们自动创建数据元素,触发器,网络节点和其他对象。 这非常节省时间,简化了配置,并允许您将一个模板用于具有不同监视资源的主机。

低层发现需要特制的JSON输入。 就是这样,不再了!

Zabbix 4.2允许低级发现(LLD)使用任意JSON格式的数据。 为什么这很重要? 这允许在不诉诸脚本的情况下与外部API通信,并使用接收到的信息自动创建网络节点,数据元素和触发器。

与JavaScript支持一起,这为创建用于处理各种数据源的模板提供了绝佳的机会,例如,云API,应用程序API,XML,CSV格式的数据等等。


将JSON与具有LLD的流程信息相关联

可能性是无止境的!

TimescaleDB支持





什么是TimescaleDB? 这是TimescaleDB团队的常规PostgreSQL加扩展模块。 TimescaleDB通过更有效的算法和数据结构保证更好的性能。

此外,TimescaleDB的另一个优点是可以自动对具有历史记录的表进行分区。 TimescaleDB是速度和易于维护! 虽然,我应该指出,我们的团队尚未将性能与常规PostgreSQL进行认真的比较。

目前,TimescaleDB是一个相当年轻且发展迅速的产品。 请谨慎使用!

易于标签管理


如果以前的标签只能在触发级别进行控制,那么标签管理现在将更加灵活。 Zabbix支持模板和主机的标签!

所有检测到的问题不仅会收到触发器的标签,还会收到主机的标签以及该主机的模板。


定义主机的标签

更灵活的自动注册


Zabbix 4.2允许您使用正则表达式按名称过滤主机。 这样就可以为不同的主机组创建不同的发现脚本。 如果我们使用复杂的设备命名规则,则特别方便。

更灵活的网络发现


另一个改进是主机的命名。 现在,您可以在网络发现期间管理设备名称,并从指标值中获取设备名称。

这是非常必要的功能,尤其是对于使用SNMP和Zabbix代理的网络发现而言。


自动将本地主机名分配给可见名称

检查通知方法的可操作性


现在,直接从Web界面,您可以向自己发送测试消息,并检查通知方法是否有效。 此功能对于检查将Zabbix与各种警告系统,任务系统以及其他外部程序和API结合在一起的脚本特别有用。



远程监控Zabbix基础架构组件


现在,您可以远程监视内部Zabbix服务器和代理指标(Zabbix组件的性能和运行状况指标)。

这是为了什么 功能允许您从侧面监视服务器和代理的内部指标,即使组件本身过载或例如大量未发送的数据发送到代理,也可以快速检测并通知问题。

电子邮件的HTML格式支持


现在,由于HTML格式的支持,我们不仅限于简单的文本,而且可以形成漂亮的电子邮件。 现在该学习HTML + CSS!


即使很少使用HTML,消息也更易于阅读

从网络接口卡访问外部系统


在自定义URL中支持一整套新宏,以便更好地将地图与外部系统集成。 这允许在主机图标上单击一两次,以打开任务系统中的故障单。


一键打开吉拉车票

发现规则可以是从属数据项。


你为什么需要这个-你问。 这允许将基本指标数据用于检测和直接数据收集。 例如,在从Prometheus导出器收集数据的情况下,Zabbix将发出一个HTTP请求,并立即将接收到的信息用于所有相关的数据元素:度量值和低级发现规则。

在地图上可视化问题的新方法


已经出现了对地图上GIF动画图像的支持,以便更直观地显示问题。


问题设备变得更加明显

在Web监视中从HTTP标头检索数据


在Web监视中,已添加了从接收的HTTP标头中选择数据的功能。

这使您可以使用步骤之一中获得的授权令牌创建用于Web监视或监视第三方API的多步骤脚本。


从HTTP标头中提取AuthID

Zabbix Sender使用所有IP地址


Zabbix Sender现在将数据从代理配置文件的ServerActive参数发送到所有IP地址。



触发配置中方便的新过滤器


触发器配置页面上有一个高级过滤器,可根据指定条件快速方便地选择触发器。


选择与K8S服务相关的触发器

我们显示确切时间


很简单,现在Zabbix会在您将鼠标悬停在图形上时显示确切的时间。



其他创新


  • 实现了更可预测的算法,用于更改仪表板(面板)中小部件的顺序
  • 大规模更改数据元素原型参数的能力
  • IPv6支持DNS检查:“ net.dns”和“ new.dns.record”
  • 为vmware.eventlog检查添加了skip参数
  • 预处理步骤执行错误包括步骤号

如何升级?


要从早期版本迁移,您只需要安装新的二进制文件 (服务器和代理)和新的接口。 Zabbix将自动更新数据库。 不需要安装新代理。

我们为那些想了解更多关于Zabbix 4.2并能够向Zabbix团队提出问题的人举办免费的网络研讨会。 报名!

不要忘记Zabbix社区中流行的Telegram频道 ,您可以在该频道中始终从经验丰富的同事那里获得建议和答案,并可以用俄语从Zabbix开发人员自己那里获得建议和答案。 对于初学者,我们建议一个初学者小组

有用的链接


- 发布说明
- 升级说明
- 原创文章

Source: https://habr.com/ru/post/zh-CN444894/


All Articles