新版本附带了针对 Zabbix server 的原生高可用解决方案。
该解决方案由多个 zabbix_server 实例或节点组成,其中一次只能有一个节点处于活动状态(工作),而其他节点处于待机状态,准备好在当前节点停止或故障时接管。
另请参阅:高可用集群。
对服务的监控进行了一些更新。服务监控提供了 Zabbix 中受监控基础设施的高级视图。
Zabbix 现在有一个新的服务菜单,包含四个菜单组件:
下面概述了对服务功能的其他主要改进。
以前版本中 服务(services) 的可用性取决于触发器及其状态。在新版本中,它被相应服务的基于标签的问题映射所取代。
服务的配置和查看合并在 Monitoring → Services 中,并且在 Configuration → Services 中不再存在用于服务配置的单独部分。
在服务配置中,不再存在硬依赖和软依赖。相反,一个服务可以有多个父服务。
Services menu
There is now a new Services menu in Zabbix, with four menu sections:
有新的状态计算规则和灵活的附加规则,用于基于直接子服务的状态和权重计算父服务的状态。现在还可以设置灵活的规则来将服务状态传播到父服务。
在 用户角色 级别实现了对服务的灵活权限。可以向所有、无或选定的服务授予读写或只读访问权限(基于名称或标签)。
一个新的 根本原因(Root cause) 列显示了直接或间接影响服务状态的潜在问题。
如果您单击问题名称,您可以在Monitoring → Problems中查看有关它的更多详细信息。
现在可以接收有关服务状态更改的自动警报,类似于有关触发器状态更改的警报。
添加了一种新的 服务动作 类型,类似于 Zabbix 中的其他动作。服务可能动作包括与服务相关的问题、恢复和更新动作的步骤。可以配置两种类型的动作:向指定的收件人发送消息和在 Zabbix server 上执行远程命令。与触发动作类似,服务动作支持问题 升级场景。
新的消息模板 Service、Service recovery 和 Service update 已添加到 媒体类型 中,应该定义为能够正确发送服务动作的通知。
可以支持克隆服务。克隆按钮已添加到服务的配置表单中。克隆服务时,会保留其父链接,而不会保留子链接。
主键现在用于新安装中的所有表,包括历史表。
现有安装不会自动升级主键。在现有安装中 手动升级 历史表主键的说明适用于MySQL/MariaDB、PostgreSQL、TimescaleDB v1 和 v2 以及 Oracle。
新版本中添加了以下几个仪表板小部件。
Top hosts 小部件被添加到仪表板小部件中。此小部件旨在替换弃用的 数据概览 小部件。
Top hosts 小部件允许为数据概览创建自定义表格,这对用于容量规划的类似 Top N 类报告和条形进度报告很有用。
有关更多信息,请参阅 Top 主机小部件。
监控项值(Item value)小部件被添加到仪表盘小部件中。
这种类型的小部件对于突出显示单个监控项的值很有用。不同的视觉风格的显示成为可能:
有关详细信息,请参阅 Item value 小部件。
新增用于触发器表达式调试和内部动作的宏。
表达式调试宏简化了触发器表达式的调试过程:
内部动作的宏包含监控项、LLD 规则或触发器变得不受支持的原因:
有关更多详细信息,请参阅支持的宏。
Zabbix 5.4 中引入了触发器和可计算监控项的新表达式语法。然而,旧的语法仍然在简单的宏中使用。在新版本中,简单宏的功能已转移到表达式宏中,并使用了新的表达式语法。有关更改的详细信息,请参见下面的比较:
Zabbix 6.0 | Zabbix 6.0 之前 |
---|---|
{?avg(/host/key,1h)} 新版本中的表达式宏示例。 |
{host:key.avg(1h)} 之前版本中的简单宏示例。 |
现有的简单宏将在升级过程中转换为表达式宏。表达式宏的范围与简单宏提供的范围相同。因此,表达式宏可用于:
自 Zabbix 4.0 起已弃用的监控项名称 ($1, $2...$9) 中对位置宏的支持已被完全删除。
自 Zabbix 4.0 起已弃用的监控项名称(包括发现规则名称)中对用户宏的支持已被完全删除。
在预处理队列中引入了依赖监控项的批量处理,以提高检索 Prometheus 指标的性能。
有关详细信息,请参阅 Prometheus 检查 for more details。
预处理中的 Prometheus 模式步骤会产生匹配多行的结果。为了处理这种情况,Prometheus 模式预处理步骤中添加了一个新的结果处理 参数 ,该参数允许通过引入 sum、min、max、avg 和 count 等函数来聚合潜在的多个匹配行的数据。
在 Zabbix 中收集 Prometheus指标 已经有一段时间了,但有些指标很难使用。具体来说,直方图类型的指标可以在 Zabbix 中呈现为具有相同键值名称但参数不同的多个监控项。然而,即使这些监控项在逻辑上相关并代表相同的数据,如果没有专门的功能,很难分析收集到的数据。为了弥补新版本中的这一功能空白,添加了 rate() 和 histogram_quantile() 函数,产生与 PromQL 对应的相同结果。
补充此功能的其他新增功能是bucket_rate_foreach() 和 bucket_percentile() 函数。有关更多信息,请参阅:
现在可以使用新的 monoinc() 或 monodec() 历史函数 检查监控项值的单调增加或减少。
添加了一个新的 历史函数changecount() ,允许计算相邻值之间的更改次数。该函数支持三种不同的模式:计算所有变化,只减少,或者只增加。例如,它可用于跟踪用户数量的变化或系统正常运行时间的减少。
添加了新的 函数 来简化由 foreach函数 返回的特定主机、监控项或值的计数。
聚合函数:
Foreach 函数:
Zabbix 5.2 引入了对基线监控有用的新趋势函数。但是,它们仍然需要定义相对阈值(例如,检查 2021 年 9 月的网络流量是否比 2020 年 9 月高出不到 2 倍)。存在难以定义此类阈值的用例。例如,一个新的但非常受欢迎的网站的网络流量可以在一年内自然增长很多倍,但增长速度是未知的。然而,无论自然流量增长如何,由于 DDOS 攻击导致的突然流量激增都必须生成警报。
异常检测算法正是这样做的——在其他值的上下文中查找看起来不正常的数据(异常值)。
添加了新的 历史函数 trendstl(),它使用 '分解' 方法来计算异常率。它将单个时间序列拆分为其他三个序列:
异常检测与余数序列一起工作,并检查是否存在与大多数余数相差太远的值。"远" 表示余数序列的绝对值比标准差或平均差大 N 倍。
字符串函数 concat 允许连接两个以上的参数。它可用于以不同的组合组合字符串和值,或将两个或多个值相互附加。还支持数字数据类型。
监控项配置表单会自动建议匹配的信息类型,如果选定的监控项键值仅返回特定类型的数据(例如,log[] 监控行需要信息类型:Log)。 信息类型* 参数现在位于监控项选项卡上的键值参数下,如果指定了至少一个预处理步骤,则在预处理选项卡上重复。如果 Zabbix 检测到所选信息类型和密钥可能不匹配,则会在 信息类型 字段旁边显示一个警告图标。
Zabbix agent/agent 2 中添加了几个新监控项:
此外:
mode
参数(crc32, md5, sha256)有关详细信息,请参阅agent监控项。
可计算监控项现在不仅支持数字,还支持文本、日志和字符类型的信息。
现在可以从配置文件重新加载用户参数,而无需重新启动 agent。为此,请运行新的userparameter_reload
运行时控制选项,例如:
或
UserParameter 是唯一将使用此命令重新加载的 agent 配置选项。
以前,基于 BSD 的系统不支持 Zabbix server 和 Zabbix proxy 运行时控制选项。更改运行时命令传输方法已允许取消此限制。现在FreeBSD、NetBSD、OpenBSD 和 **BSD* 系列的其他操作系统都支持大多数命令。有关确切列表,请参阅 Zabbix server 或 proxy 的 运行时控制 。
以前,插件只能编译到 Zabbix agent 2 中,每次需要更改可用插件集时都需要重新编译 agent。现在,通过添加外部插件加载器,插件不必直接集成到 agent 2 中,并且可以作为单独的外部插件添加,从而使用于收集新监控指标的附加插件的创建过程更加容易。
外部插件的引入导致以下配置参数更改: - Plugins.<PluginName>.Path 参数已移至 Plugins.<PluginName>.System.Path。 - Plugins.<PluginName>.Capacity 参数虽然仍受支持,但已被弃用,请改用 Plugins.<PluginName>.System.Capacity 。
现在可以为 Zabbix 内部 身份验证方法 提供自定义密码复杂性要求。为了防止 Zabbix 用户设置弱密码,可以强制执行以下限制:
为了创造最佳的用户体验并确保在各种生产环境中获得最佳的 Zabbix 性能,已经放弃了对一些旧数据库版本的支持。这主要适用于接近使用寿命的数据库版本以及存在可能会干扰正常性能的未修复问题的版本。
从 Zabbix 6.0 开始,官方支持以下 数据库 版本:
默认情况下,如果检测到不支持的数据库版本,Zabbix server 和 proxy 将不会启动。虽然不推荐,但现在可以通过修改 server 或 proxy 的 AllowUnsupportedDBVersions 配置参数来关闭数据库版本检查。
使用 MySQL/MariaDB 数据库的 Zabbix 安装现在支持使用 utf8mb4_bin 排序规则的 utf8mb4 编码。
以前只支持 utf8 编码,MySQL 代表 utf8mb3 编码,因此只支持正确 UTF-8 字符的子集。在新版本中,增加了对 utf8mb4 的支持,并支持 完整的 UTF-8 字符集。使用 utf8mb3 的旧安装保持不变,并且可以继续使用该编码。
Zabbix get 和 Zabbix sender 实用程序现在支持 -t <seconds>
或 --timeout <seconds>
超时参数。有效范围是:
SNMP 网关现在可以提供有关处于问题状态的触发器的信息,并在触发器详细信息中显示主机信息。
此外,现在可以限制 SNMP 网关发送 SNMP traps 的速率。
支持的 OID 列表已扩展为新的 OID .10,用于以逗号分隔的触发器主机名列表。
SNMP 网关配置文件中添加了新参数: - ProblemBaseOID - 问题触发表的 OID; - ProblemMinSeverity - 最低严重性,不包括严重性较低的触发器; - ProblemHideAck - 如果指定,仅包含未确认问题的触发器; - ProblemTagFilter - 如果指定,仅包含具有指定标签名称的触发器; - TrapTimer - 如果设置,Zabbix 将在给定时间范围内发送不超过一个严重性最高的trap。
有关详细信息,请参阅 Zabbix SNMP 网关。
Zabbix web 监控中增加了处理压缩内容的能力。支持libcurl支持的所有编码格式。
Zabbix Prometheus 预处理 查询语言 支持两个额外的标签匹配运算符:
HTTP 方法 PATCH、HEAD、OPTIONS、TRACE、CONNECT 已添加到 JavaScript 引擎中。此外,引擎现在允许使用新的 JS 方法 HttpRequest.customRequest 发送自定义 HTTP 方法请求。
另请参阅:其他 JavaScript 对象。
审计日志现在包含有关所有 Zabbix 对象的所有配置更改的记录,包括由于执行 LLD 规则、网络发现操作、自动注册操作或脚本执行而发生的更改。以前,从 Zabbix server 发起的配置更改,例如作为执行发现规则的结果,不会被记录。现在,此类对象修改将存储为归属于用户系统的审计记录。
添加了通过导致这些条目的前端操作过滤记录的功能。如果由于单个操作(例如链接/取消链接模板)而创建了多个日志记录,则这些记录将具有相同的Recordset ID。
新的 Audit log 部分 已添加到 Administration→General 菜单,允许启用或禁用审计日志。以前位于 Housekeeper 部分下的用于审核的管家设置也已移至新的 Audit log 部分。
已添加对 PCRE2 的支持,并且针对 RHEL/CentOS 7 及更高版本、SLES(所有版本)、Debian 9 及更高版本、Ubuntu 16.04 及更高版本的 Zabbix 安装包已更新为使用 PCRE2。
仍然支持 PCRE,但 Zabbix 只能使用 PCRE 或 PCRE2 库之一进行编译,两者不能同时使用。
处理 ODBC 检查已从常规轮询器进程转移到单独的 server/proxy 进程 ODBC pollers。此更改允许限制轮询进程创建的与数据库的连接数。以前,ODBC 检查是由常规轮询器执行的,它也适用于 Zabbix agent 监控项、SSH 检查等。
Zabbix server 和 proxy 配置文件中添加了一个新的配置参数StartODBCPollers 。
您可以使用内部监控项 zabbix[process,<type>] 来监控 ODBC 轮询器负载。
Webhook 集成允许使用 webhook 媒体类型从 Zabbix 通知创建 Github事件。
新的官方模板可用于监控:
要启用 Kubernetes 监控,您需要使用新工具 Zabbix Helm Chart,它会在 Kubernetes 集群中安装 Zabbix proxy 和 Zabbix agent。
要了解有关配置模板的更多信息,请参阅 HTTP 模板操作。
可以获得以下模板:
为了使模板链接更加可见,现在将其放置在主机、主机原型和模板配置表单以及主机/模板批量更新表单的第一个选项卡中。
因此,已从所有相应表单中删除了用于模板链接的单独选项卡。
在相关的开发中,主机原型配置中的主机组/主机组原型选择的字段也已从单独的选项卡移动到第一个选项卡。
Zabbix server 和 proxy 运行时命令现在通过套接字而不是 Unix 信号发送。此更改可以改善使用运行时控制选项的用户体验:
为仪表板引入了一个新的地理地图小部件,提供了一种在地理地图上显示主机的方法。有关详细信息,请参阅 Geomap 仪表板小部件和地理地图。
在Latest data部分中添加了一个子过滤器。子过滤器对于快速一键访问相关监控项组很有用。
子过滤器显示 可点击的链接 ,允许基于通用实体(主机、标签名称或标签值)过滤项目。单击实体后,立即过滤监控项。
有关详细信息,请参阅 最新数据(latest data) 部分。
Monitoring → Hosts → Graphs 中的图表页面已经看到了一些可用性改进:
有关更多详细信息,请参阅 图表 页面。
现在还可以从Monitoring → Hosts 建新主机。
管理员和超级管理员用户可以使用 Create host 按钮。
主机创建和编辑的表单可以在任何页面中通过点击 Configuration → Hosts、Monitoring → Hosts 通过(弹出)窗口模式打开,其中有主机菜单或其他直接链接到主机配置。
指向主机编辑页面的直接链接仍然有效,并且正在整页打开主机编辑页面。
最新数据 中引入了新的监控项上下文菜单,允许访问监控项配置和可用图表:
相反,在配置菜单的 监控项列表 中引入了一个新的上下文菜单,允许访问监控项的最新数据和其他有用的选项:
此菜单取代了以前版本中的向导选项。还为 模板监控项和 监控项原型 引入了类似的菜单。
在配置 动作操作时,可以通过取消选中相应选项的复选框来取消有关取消升级的通知。
对最新数据部分进行了一些改进:
监控菜单中的概览(Overview)部分已被完全删除。使用数据概览(Data overview) 和 触发器概览(Trigger overview)* 仪表板小部件 仍然可以访问相同的功能。
为了实现 审计日志 功能的变化,以前存在的数据库结构必须重新设计。在升级过程中auditlog
,auditlog_details
数据库表将被具有不同格式的新表 auditlog
替换。*现有的审核日志记录将被删除**。
Zabbix server 和 proxy 现在将在启动前检查数据库版本,如果版本超出支持范围,将不会启动。有关更多详细信息,请参阅 数据库。
Zabix 现在支持 PCRE 和 PCRE2。用于 RHEL/CentOS 7 及更高版本、SLES(所有版本)、Debian 9 及更高版本、Ubuntu 16.04 及更高版本的 Zabbix 软件包已更新为使用 PCRE2 而不是 PCRE 进行编译。从源代码编译时,用户可以选择指定 ''--with-libpcre'' 或 ''--with-libpcre2'' 标志。如果您要升级现有安装,将 PCRE 更改为 PCRE2 可能会导致某些正则表达式表现不同 - 请参阅 已知问题了解详细信息。
每个 Zabbix agent 2 插件现在都有一个单独的 配置文件。默认情况下,这些文件位于./zabbix_agent2.d/plugins.d/
目录中。该路径在 agent 2 配置文件的 Include
参数中指定,查看 zabbix_agent2.conf 或 zabbix_agent2.win.conf 文件相对路径。
可用的基线监控选项集已通过两个新功能 baselinedev 和 baselinewma 进行了扩展。
在这些函数的上下文中,术语 'season' 指的是可配置的时间范围,可以是几小时、几天、几周、几个月或几年。 'season' 长度和要分析的季节数量在函数参数中设置。
有关更多信息,请参阅 历史函数 。