使用zabbix的小伙伴应该都有关注到目前zabbix的大版本已经更新到了6.0,后面乐乐将会对如何使用zabbix6.0做一个使用教程的系列,大家可以持续关注,这篇我们主要聊聊zabbix6.0新增的一些功能介绍。
一、Zabbix server 的高可用集群
新版本附带了针对 Zabbix server 的原生高可用解决方案。该解决方案由多个zabbix_server 实例或节点组成,其中一次只能有一个节点处于活动状态(工作),而其他节点处于待机状态,准备好在当前节点停止或故障时接管。
另请参阅:[高可用集群]
1.1 服务
对服务的监控进行了一些更新。服务监控提供了 Zabbix 中受监控基础设施的高级视图。
Zabbix 现在有一个新的服务菜单,包含四个菜单组件:
下面概述了对服务功能的其他主要改进。
1.2 基于标签的服务到问题的映射
以前版本中 [服务(services)] 的可用性取决于触发器及其状态。在新版本中,它被相应服务的基于标签的问题映射所取代。
服务的配置和查看合并在 Monitoring → Services 中,并且在 Configuration → Services 中不再存在用于服务配置的单独部分。
在服务配置中,不再存在硬依赖和软依赖。相反,一个服务可以有多个父服务。
状态计算和传播规则
有新的状态计算规则和灵活的附加规则,用于基于直接子服务的状态和权重计算父服务的状态。现在还可以设置灵活的规则来将服务状态传播到父服务。
1.3 服务权限
在 [用户角色] 级别实现了对服务的灵活权限。可以向所有、无或选定的服务授予读写或只读访问权限(基于名称或标签)。
根本原因分析:
一个新的根本原因(Root cause) 列显示了直接或间接影响服务状态的潜在问题。
如果您单击问题名称,您可以在Monitoring → Problems中查看有关它的更多详细信息。
1.4 服务状态变化告警
现在可以接收有关服务状态更改的自动警报,类似于有关触发器状态更改的警报。
添加了一种新的 [服务动作] 类型,类似于 Zabbix 中的其他动作。服务可能动作包括与服务相关的问题、恢复和更新动作的步骤。可以配置两种类型的动作:向指定的收件人发送消息和在 Zabbix server 上执行远程命令。与触发动作类似,服务动作支持问题 [升级]场景。
新的消息模板 Service、Service recovery 和 Service update 已添加到 [媒体类型] 中,应该定义为能够正确发送服务动作的通知。
1.5 服务克隆
可以支持克隆服务。克隆按钮已添加到服务的[配置表单]中。克隆服务时,会保留其父链接,而不会保留子链接。
二、主键
主键现在用于新安装中的所有表,包括历史表。
现有安装不会自动升级主键。在现有安装中 手动升级 历史表主键的说明适用于[MySQL/MariaDB]、[PostgreSQL]、[TimescaleDB v1] 和 [v2] 以及 [Oracle]。
三、新增小部件
新版本中添加了以下几个仪表板小部件。
3.1 Top 主机
Top hosts 小部件被添加到仪表板小部件中。此小部件旨在替换弃用的 数据概览 小部件。
Top hosts 小部件允许为数据概览创建自定义表格,这对用于容量规划的类似 Top N 类报告和条形进度报告很有用。
有关更多信息,请参阅 [Top 主机小部件]
3.2 监控项值
监控项值(Item value)小部件被添加到仪表盘小部件中。
这种类型的小部件对于突出显示单个监控项的值很有用。不同的视觉风格的显示成为可能:
有关详细信息,请参阅 [Item value 小部件]
四、宏
4.1 新增宏
新增用于触发器表达式调试和内部动作的宏。
表达式调试宏简化了触发器表达式的调试过程:
内部动作的宏包含监控项、LLD 规则或触发器变得不受支持的原因:
有关更多详细信息,请参阅[支持的宏]
4.2 由表达式宏替换的简单宏
[Zabbix 5.4]中引入了触发器和可计算监控项的新表达式语法。然而,旧的语法仍然在简单的宏中使用。在新版本中,简单宏的功能已转移到表达式宏中,并使用了新的表达式语法。有关更改的详细信息,请参见下面的比较:
Zabbix 6.0 | Zabbix 6.0 之前
{?avg(/host/key,1h)}新版本中的表达式宏示例。 | {host.avg(1h)}之前版本中的简单宏示例。
现有的简单宏将在升级过程中转换为表达式宏。表达式宏的范围与简单宏提供的范围相同。因此,表达式宏可用于:
4.3 不再支持位置宏
自 Zabbix 4.0 起已弃用的监控项名称 ($1, $2…$9) 中对位置宏的支持已被完全删除。
不再支持监控项名称中的用户宏
自 Zabbix 4.0 起已弃用的监控项名称(包括发现规则名称)中对用户宏的支持已被完全删除。
4.4 Prometheus 指标的批量处理
在预处理队列中引入了依赖监控项的批量处理,以提高检索 Prometheus 指标的性能。
有关详细信息,请参阅 [Prometheus 检查] for more details。
4.5 Prometheus 模式的结果处理
预处理中的 Prometheus 模式步骤会产生匹配多行的结果。为了处理这种情况,Prometheus 模式预处理步骤中添加了一个新的结果处理 [参数],该参数允许通过引入 sum、min、max、avg 和 count 等函数来聚合潜在的多个匹配行的数据。
五、函数
Prometheus 直方图的函数
在 Zabbix 中收集 [Prometheus指标] 已经有一段时间了,但有些指标很难使用。具体来说,直方图类型的指标可以在 Zabbix 中呈现为具有相同键值名称但参数不同的多个监控项。然而,即使这些监控项在逻辑上相关并代表相同的数据,如果没有专门的功能,很难分析收集到的数据。为了弥补新版本中的这一功能空白,添加了 rate() 和 histogram_quantile() 函数,产生与 PromQL 对应的相同结果。
补充此功能的其他新增功能是bucket_rate_foreach() 和 bucket_percentile() 函数。有关更多信息,请参阅:
5.1 单调变化
现在可以使用新的 monoinc() 或 monodec() [历史函数] 检查监控项值的单调增加或减少。
5.2 更改计数
添加了一个新的 [历史函数]changecount() ,允许计算相邻值之间的更改次数。该函数支持三种不同的模式:计算所有变化,只减少,或者只增加。例如,它可用于跟踪用户数量的变化或系统正常运行时间的减少。
5.3 实体计数
添加了新的 [函数]来简化由 [foreach函数] 返回的特定主机、监控项或值的计数。
聚合函数:
Foreach 函数:
5.4 异常检测
Zabbix 5.2 引入了对基线监控有用的新趋势函数。但是,它们仍然需要定义相对阈值(例如,检查 2021 年 9 月的网络流量是否比 2020 年 9 月高出不到 2 倍)。存在难以定义此类阈值的用例。例如,一个新的但非常受欢迎的网站的网络流量可以在一年内自然增长很多倍,但增长速度是未知的。然而,无论自然流量增长如何,由于 DDOS 攻击导致的突然流量激增都必须生成警报。
异常检测算法正是这样做的——在其他值的上下文中查找看起来不正常的数据(异常值)。
添加了新的 [历史函数] trendstl(),它使用 ‘分解’ 方法来计算异常率。它将单个时间序列拆分为其他三个序列:
[字符串函数] concat 允许连接两个以上的参数。它可用于以不同的组合组合字符串和值,或将两个或多个值相互附加。还支持数字数据类型。
由于新功能介绍篇幅较长,乐乐将会在zabbix新增功能介绍2为大家详细介绍其余新增功能。
更多zabbix技术文章,可以持续关注乐维社区。