Zabbix 4.2 发布

我们的团队非常高兴地分享一个免费的开源监控系统已经发布的消息 扎比克斯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版本的新功能和主要改进:

更多官方平台

Zabbix 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、代理和脚本以及其他源。 现在就来迎接普罗米修斯的支持吧!

严格来说,由于 HTTP/HTTPS 数据元素类型和正则表达式,过去可以从 Prometheus 导出器收集数据。

然而,由于内置了对 PromQL 查询语言的支持,新版本允许您尽可能高效地使用 Prometheus。 使用依赖指标可以让您最有效地收集和处理数据:您请求一次数据,然后我们根据必要的指标对其进行排序。

Zabbix 4.2 发布
获取特定指标的值

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

Zabbix 4.2 发布
使用 PromQL 查询语言中的过滤器查找指标

目前还有更多 300 种集成和监控方法 使用 Zabbix 的第三方服务和应用程序。 Prometheus 支持将允许您添加一整套具有官方或社区支持的 Prometheus 导出器的应用程序。 这是对流行服务、容器和云资源的监控。

有效的高频监测

我们想尽快发现问题吗? 当然,毫无疑问! 通常,这种方法会导致我们需要过于频繁地轮询设备和收集数据,这会给监控系统带来更大的负载。 如何避免这种情况?

我们在预处理规则中实现了节流机制。 本质上,限制让我们有机会跳过相同的值。

假设我们正在监视关键应用程序的状态。 我们每秒都会检查我们的应用程序是否正常运行。 同时,Zabbix从1(工作)和0(不工作)接收连续的数据流。 例如:1111111111110001111111111111...

当我们的应用程序一切正常时,Zabbix 只会收到一个流。 它们需要经过处理吗? 一般来说,不会,因为我们只对改变应用程序的状态感兴趣,我们不想收集和存储这么多数据。 因此,如果某个值与前一个值相同,则通过限制可以跳过该值。 因此,我们只会收到有关状态更改的数据,例如 01010101...这对于检测问题来说已经足够了!

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

Zabbix 4.2 发布
忽略重复值

伟大的! 我们现在可以非常频繁地轮询设备并立即检测问题,而无需在数据库中存储不必要的信息。

图形呢? 由于缺乏数据,它们将为空! 如果大部分数据丢失,如何判断 Zabbix 是否正在收集数据?

我们也想过这个问题! Zabbix 提供了另一种类型的节流,即心跳节流。

Zabbix 4.2 发布
我们每分钟检查一次指标是否有效

在这种情况下,尽管有重复的数据流,Zabbix 仍会在指定的时间间隔内存储至少一个值。 如果每秒收集一次数据,并且间隔设置为一分钟,那么 Zabbix 会将每秒的单位流转换为每分钟的流。 很容易看出,这导致接收数据压缩了 60 倍。

现在我们确信数据正在被收集,nodata() 触发函数正在工作,并且图表一切正常!

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

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

现在,可以使用预处理中内置的数据验证规则来确保符合或不符合正则表达式、值范围、JSONPath 和 XMLPath。

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

Zabbix 4.2 发布
温度应该是从0到100,忽略其余的

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

使用 JavaScript 进行任何数据转换

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

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

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

现在数据转换、聚合、过滤、算术和逻辑运算等等都成为可能!

Zabbix 4.2 发布
从 Apache mod_status 输出中提取有用信息!

测试预处理

现在我们不必猜测复杂的预处理脚本是如何工作的。 现在有一种方便的方法可以直接从界面检查预处理是否正常工作!

Zabbix 4.2 发布

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

在 Zabbix 4.2 之前,预处理由 Zabbix 服务器专门处理,这限制了使用代理进行负载分配的能力。

从 Zabbix 4.2 开始,我们通过对代理端预处理的支持获得了极其高效的负载扩展。 现在代理就可以做到!

Zabbix 4.2 发布

与节流相结合,这种方法可以实现高频、大规模的监控和每秒数百万次的检查,而无需加载中央 Zabbix 服务器。 代理处理大量数据,但由于节流,只有一小部分数据到达 Zabbix 服务器,减少了一两个数量级。

更容易发现底层

回想一下,低级发现(LLD)是一种非常强大的机制,可以自动发现任何类型的监控资源(文件系统、进程、应用程序、服务等),并基于它们自动创建数据项、触发器、网络节点等。对象。 这节省了令人难以置信的时间,简化了配置,并允许在具有不同监控资源的主机之间使用一个模板。

低级发现需要特殊格式的 JSON 作为输入。 就这样吧,不会再有这样的事了!

Zabbix 4.2 允许低级发现 (LLD) 使用 JSON 格式的任意数据。 它为什么如此重要? 例如,您可以与外部 API 进行通信,而无需借助脚本,并使用收到的信息自动创建主机、数据元素和触发器。

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

Zabbix 4.2 发布
使用 LLD 将 JSON 与有关进程的信息链接起来

可能性确实是无限的!

TimescaleDB 支持

Zabbix 4.2 发布

什么是TimescaleDB? 这是常规 PostgreSQL 加上 TimescaleDB 团队的扩展模块。 由于更高效的算法和数据结构,TimescaleDB 有望提供更好的性能。

另外,TimescaleDB的另一个优点是对有历史记录的表进行自动分区。 TimescaleDB 快速且易于维护! 尽管如此,我应该指出,我们的团队尚未与常规 PostgreSQL 进行认真的性能比较。

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

轻松的标签管理

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

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

Zabbix 4.2 发布
为网络节点定义标签

更灵活的自动注册

Zabbix 4.2 允许您使用正则表达式按名称过滤主机。 这使得为​​不同的网络节点组创建不同的检测场景成为可能。 如果我们使用复杂的设备命名规则就特别方便。

更灵活的网络发现

另一个改进涉及网络节点的命名。 现在可以在网络发现期间管理设备名称并从度量值获取设备名称。

这是一个非常必要的功能,特别是对于使用 SNMP 和 Zabbix 代理的网络发现。

Zabbix 4.2 发布
自动将本地主机名分配给可见名称

检查通知方法的功能

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

Zabbix 4.2 发布

Zabbix基础设施组件的远程监控

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

它是做什么用的? 该功能允许您从外部监控服务器和代理的内部指标,即使组件本身过载或者代理上有大量未发送的数据,您也可以快速检测并通知问题。

电子邮件的 HTML 格式支持

现在,由于 HTML 格式的支持,我们不再局限于纯文本,还可以创建精美的电子邮件。 是时候学习 HTML + CSS 了!

Zabbix 4.2 发布
即使使用最少的 HTML,消息也更容易理解

从网卡访问外部系统

自定义 URL 中支持一整套新宏,以便更好地将地图与外部系统集成。 例如,您可以通过单击一两次网络节点的图标来打开任务系统中的票证。

Zabbix 4.2 发布
在 Jira 中一键开票

发现规则可以是依赖数据项

为什么这是必要的——你可能会问。 这允许底层指标数据用于发现和直接数据收集。 例如,在从 Prometheus 导出器收集数据的情况下,Zabbix 将发出一个 HTTP 请求,并立即将收到的信息用于所有依赖的数据元素:指标值和低级发现规则。

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

现在支持地图上的动画 GIF 图像,以便更直观地显示问题。

Zabbix 4.2 发布
有问题的设备变得更加明显

Web监控中从HTTP标头中提取数据

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

这允许您使用在步骤之一中获得的授权令牌创建多步骤 Web 监控或第三方 API 监控场景。

Zabbix 4.2 发布
从 HTTP 标头中提取 AuthID

Zabbix Sender 使用所有 IP 地址

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

Zabbix 4.2 发布

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

触发器配置页面现在具有扩展的过滤器,可以根据指定条件快速方便地选择触发器。

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

显示准确时间

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

Zabbix 4.2 发布

其他创新

  • 实施了一种更可预测的算法来更改仪表板中小部件的顺序
  • 能够批量更改数据项原型的参数
  • IPv6 支持 DNS 检查:“net.dns”和“new.dns.record”
  • 为“vmware.eventlog”检查添加了“skip”参数
  • 预处理步骤执行错误包括步骤号

如何升级?

要从早期版本升级,您只需安装 新的二进制文件 (服务器和代理)和新界面。 Zabbix会自动更新数据库。 无需安装新代理。

我们正在为那些想要了解有关 Zabbix 4.2 的更多信息并有机会向 Zabbix 团队提问的人们举办免费的网络研讨会。 报名!

别忘了流行 电报频道 Zabbix 社区,在这里您可以随时从更有经验的同事那里用俄语获得建议和问题解答,如果幸运的话,还可以从 Zabbix 开发人员那里获得建议和答案。 推荐给初学者 初学者小组.

有用的链接

- 发行说明
- 升级说明
- 来源文章

来源: habr.com

添加评论