参见重大变更了解此version。
新版version为Zabbix server提供了原生高可用性解决方案.
该解决方案由多个zabbix_server实例或节点组成, 其中同一时间只能有一个节点处于活动(工作)状态,其他节点处于待命状态, 在当前节点停止或发生故障时随时准备接管.
另请参阅: High availability cluster.
对服务的监控进行了多项更新。服务监控提供了Zabbix中被监控基础设施的高级视图。
基于标签的服务与问题映射
在先前版本的Zabbix中 services 的可用性取决于触发器及其状态。在新的 version中,这被替换为基于标签的映射,用于对应服务的问题。
在服务配置中,硬依赖和软依赖不再存在。取而代之的是,一个服务可以拥有多个父服务。
服务菜单
Zabbix现在新增了一个服务菜单,包含四个菜单部分:
请注意,独立的服务配置部分已不存在(原位于配置 → 服务)。
状态计算与传播规则
新增了基于直接子服务状态及权重的父服务状态计算规则,以及灵活的可扩展规则。现在还可以为服务状态向父服务的传播设置灵活的规则。
权限
服务级别的灵活权限已在 user role 层级实现。可对所有服务、无服务或选定服务(基于名称或标签)授予读写或只读访问权限。
根本原因分析
新增的根本原因列列出了直接影响或间接影响服务状态的潜在问题。
点击问题名称可在 监控 → 问题 页面查看更详细信息。
服务状态变更告警
现在可以接收关于服务状态变更的自动化告警,类似于触发器状态变更的告警。
新增了service action功能,与Zabbix中的其他操作类似。服务操作可包含与服务相关的问题、恢复及update操作步骤。可配置两种类型的操作:向指定接收者发送消息以及在Zabbix server上执行远程命令。与触发器操作类似,服务操作支持问题escalation场景。
新的消息模板服务、服务恢复和服务update已添加到通用参数中,需定义这些模板以确保正确发送服务操作的通知。
服务克隆
现在可以对服务进行克隆。在服务的 服务配置 中新增了克隆按钮。克隆服务时,其父级链接会被保留,而子级链接则不会保留。
新版version中新增了多个仪表板小部件
仪表板小部件中新增了Top 主机小部件。该小部件旨在替代现已弃用的数据概览小部件。
Top 主机小部件支持create自定义表格进行数据概览,这对于类似Top N的报告以及容量规划中使用的条形进度报告非常有用。
更多信息请参阅 Top hosts widget。
仪表板小部件中新增了监控项值小部件。
该类型小部件适用于突出显示单个监控项的数值。支持多种可视化显示样式:
更多信息请参阅 Item value widget。
仪表板新增了一个地理地图部件,提供了在地理地图上显示主机的功能。更多信息请参阅地理地图 dashboard widget和 地理地图。
Zabbix 已支持采集Prometheus metrics有一段时间了,但部分指标难以直接使用。特别是直方图类型的指标在Zabbix中会呈现为多个具有相同键名但参数不同的监控项。尽管这些监控项在逻辑上相关联并代表同一组数据,但缺乏专用函数时分析采集数据一直较为困难。为填补这一功能空白,新版本version中新增了rate()和histogram_quantile()函数,其计算结果与PromQL对应函数完全一致。
为完善此功能还新增了: bucket_rate_foreach()和bucket_percentile()函数 更多信息请参阅:
现在可以通过新的monoinc()或monodec() history functions来检查监控项值的单调递增或递减情况。
新增了一个history function changecount() 函数,用于计算相邻值之间的变更次数。该函数支持三种不同模式:统计所有变更、仅统计减少次数或仅统计增加次数。例如,可用于追踪用户数量变化或系统运行时间减少次数。
新增functions用于简化特定主机、监控项或foreach functions返回值的计数操作。
聚合函数:
count - foreach函数返回的array中值的总数(返回integer类型);
监控项_count - 当前启用的监控项中符合匹配条件的总数
filter criteria (returns an integer).
Foreach函数:
可用的基线监控选项集已扩展为包含两个新函数baselinedev和baselinewma。
在这些函数的上下文中,术语'季节'指可配置的时间段,可以是小时、天、周、月或年。季节长度和待分析季节数量通过函数参数设置。
更多信息请参阅history functions。
Zabbix 5.2引入了适用于基线监控的新趋势函数。然而这些函数仍需定义相对阈值(例如检查2021年9月的网络流量是否比2020年9月高出不到2倍)。在某些使用场景中此类阈值难以界定。例如一个新上线但极受欢迎的网站在一年内的自然流量可能增长数倍但增长率未知。然而无论自然流量如何增长由DDOS攻击导致的突发流量激增都必须generate触发告警。
异常检测算法正是为此而生——在其他数值的上下文中找出看起来不正常的数据(异常值)。
新增的trend function trendstl() 函数采用"分解"方法来计算异常率。它将单个时间序列分解为三个子序列:
异常检测作用于残差序列检查是否存在偏离大多数残差值过远的数值。"过远"意味着残差序列中的绝对值超过标准偏差或平均偏差的N倍。
String function concat 现在允许连接超过两个参数。该函数可用于以不同方式组合字符串和数值,或将两个及以上的值相互追加。同时支持数值数据类型。
监控项配置表单现在会自动建议匹配的信息类型,如果选定的监控项键返回的数据仅属于特定类型(例如log[]监控项需要信息类型:日志)。 信息类型参数现在位于主监控项标签页的键参数下方,并在预处理标签页上重复显示(如果至少指定了一个预处理步骤)。当Zabbix检测到所选信息类型与键可能存在不匹配时,会在信息类型字段旁显示警告图标。
多个新监控项已添加到Zabbix agent/agent 2:
agent.hostmetadata - 返回 主机 元数据
kernel.openfiles - 返回已打开的file描述符数量
net.tcp.socket.count[] - 返回TCP套接字的数量 匹配参数
net.udp.socket.count[] - 返回UDP套接字的数量 匹配参数
vfs.dir.get[] - 以JSON格式返回目录文件列表
vfs.file.get[] - 以JSON格式返回file的相关信息
vfs.file.owner[] - 返回file的所有权信息
vfs.file.permissions[] - 返回一个包含4位数字的string
octal number with Unix permissions
此外:
vfs.file.cksum[] 现在支持第二个 mode
参数 (crc32, md5, sha256)
vfs.file.size[] 现在支持第二个 mode
参数 (字节 或 行)
vfs.fs.discovery 和 vfs.fs.get 现在会返回一个 {#FSLABEL}
macro on Windows (with volume names)
更多详情请参阅agent items。
计算型监控项现在不仅支持数值类型,还支持文本、日志和字符类型的信息。
预处理队列中引入了对依赖监控项的批量处理机制,以提升Prometheus指标获取的性能。
详见批量处理获取更多细节。
JavaScript引擎已新增支持PATCH、HEAD、OPTIONS、TRACE、CONNECT等HTTP方法。同时,该引擎现在允许通过新的JS方法HttpRequest.customRequest发送自定义HTTP方法请求。
另请参阅:Additional JavaScript objects。
Zabbix网页监控已新增对压缩内容的处理能力。支持libcurl支持的所有编码格式。
Zabbix Prometheus预处理query language现在支持两种额外的标签匹配运算符:
在预处理阶段,Prometheus模式步骤可能会产生匹配多行数据的结果。为应对这种情况,我们为Prometheus模式预处理步骤新增了parameter结果处理功能,通过引入sum、min、max、avg和count等聚合函数,可对可能匹配的多行数据进行聚合计算。
现在支持用于触发器表达式调试和内部操作的新宏.
表达式调试宏简化了触发器表达式的调试过程:
用于内部操作的宏包含以下原因:为何某个监控项、LLD规则或触发器变为不受支持状态:
更多详细信息,请参阅Supported macros。
在Zabbix 5.4中引入了针对触发器和计算型监控项的新表达式语法。 然而旧语法仍被用于简单宏。在新版version中,简单宏的功能已迁移至 表达式宏并采用新表达式语法。具体变更细节请参阅以下对比:
Zabbix 6.0版本 | Zabbix 6.0之前版本 |
---|---|
{?avg(/host/key,1h)} 新版version中的表达式宏示例。 |
{host:key.avg(1h)} 旧版本中的简单宏示例。 |
升级过程中现有简单宏将被转换为表达式宏。表达式宏的适用范围 完全覆盖原先简单宏的功能。因此表达式宏可用于:
Zabbix 4.0起已弃用的监控项名称中位置宏($1, $2...$9)支持现已被完全移除。
自Zabbix 4.0起弃用的在监控项名称(包括发现规则名称)中使用用户宏的支持已被完全移除。
为了create最佳用户体验并确保Zabbix在各种生产环境中获得最佳性能 部分旧版数据库版本已停止支持。这主要适用于那些已 接近其服务寿命终点且版本存在未修复的问题问题,可能影响正常性能。
自Zabbix 6.0起,以下所需软件版本正式 支持
默认情况下,如果检测到不支持的数据库version,Zabbix server和proxy将不会启动。现在可以, 尽管不推荐,但可以通过修改AllowUnsupportedDBVersions配置参数来关闭数据库version检查 server 或 proxy。
新安装的Zabbix系统中所有表(包括历史数据表)现在均使用主键。
现有安装不会自动升级为主键配置。 针对已有系统的历史数据表手动升级主键的操作指南适用于: mysql、 postgresql、 postgresql-timescaledb和 postgresql-timescaledb, 以及oracle。
现在支持使用utf8mb4编码及utf8mb4_bin排序规则的Zabbix安装,适用于MySQL/mariadb数据库。
此前仅支持utf8编码,在MySQL中该编码实际指代utf8mb3编码,因此仅支持标准UTF-8字符的子集。新版本version已添加对utf8mb4的支持,可完整支持 full UTF-8字符集。使用utf8mb3的旧有安装不受影响,可继续沿用该编码。
另请参阅升级至6.0后执行utf8mb4 conversion的操作说明。
用户参数现在可以从配置file重新加载而无需重启agent。为此,run新的userparameter_reload
运行时控制选项,例如:
或
UserParameter是唯一会通过此命令重新加载的agent配置选项。
已添加对PCRE2的支持,并且针对RHEL 7及以上版本、SLES(所有版本)、Debian 9及以上版本、Ubuntu 16.04及以上版本的Zabbix安装包已更新为使用PCRE2。 PCRE仍然受支持,但Zabbix只能使用PCRE或PCRE2其中一个库进行编译,无法同时使用两者。
Zabbix get 和 Zabbix sender 工具现在支持 -t <seconds>
或 --timeout <seconds>
超时参数. 有效范围为:
SNMP网关现在可以提供处于问题状态的触发器信息,并在触发器详情中显示主机信息。
此外,现在可以限制SNMP网关发送SNMP陷阱的速率。
支持的OID列表已扩展,新增了用于逗号分隔触发器主机名列表的OID .10。
SNMP网关配置file中新增了以下参数:
详情请参阅Zabbix SNMP Gateway。
ODBC检查的处理已从常规轮询器进程迁移至独立的server/proxy进程ODBC轮询器. 这一变更允许限制轮询器进程创建的数据库连接数量. 原先ODBC检查由常规轮询器执行, 这些轮询器还需处理Zabbix agent监控项, SSH检查等任务.
Zabbix新增了一个配置参数StartODBCPollers, 该参数可配置于server和proxy配置文件中.
您可以使用内部监控项zabbix[process,<type>]来监控ODBC轮询器的负载情况.
Zabbix server和proxy运行时命令现在通过套接字而非Unix信号发送。这一改进提升了运行时控制选项的用户体验:
此前,基于BSD的系统不支持Zabbix server和Zabbix proxy运行时控制选项。通过更改运行时命令传输方式,现已解除该限制。目前大多数命令可在FreeBSD、NetBSD、OpenBSD及其他*BSD系列操作系统上运行。
具体支持列表请参阅Zabbix的Runtime control文档运行时控制或运行时控制。
独立配置文件
每个Zabbix agent 2插件现在拥有独立的configuration file。默认情况下,这些文件位于./zabbix_agent2.d/plugins.d/
目录中。路径通过agent 2配置file的Include
参数指定,可以是相对于zabbix_agent2.conf或zabbix_agent2.win.conffile位置的相对路径。
外部插件加载器
以往插件只能编译到Zabbix agent 2中,每次需要更改可用插件集时都必须重新编译agent。现在通过添加外部插件加载器,插件无需直接集成到agent 2中,可以作为独立的外部附加组件(可加载插件)添加,从而简化了为收集新监控指标创建额外插件的过程。
可加载插件的引入导致了以下配置参数变更:
新的官方模板可用于监控。
要启用Kubernetes监控,您需要使用新工具 Zabbix Helm Chart, 该工具会在Kubernetes集群中安装Zabbix proxy和Zabbix agents。
要了解有关配置模板的更多信息,请参阅HTTP template operation。
您可以get这些模板:
新集成功能现已可用,支持使用 webhook 媒体类型从Zabbix通知创建 Github issues。
在配置配置操作时 现在可以通过取消勾选相应选项的复选框来取消有关已取消升级的通知
现在可以为Zabbix内部内部认证提供自定义密码复杂度要求。 为防止Zabbix用户设置弱密码,可以强制执行以下限制:
记录
审计日志现在包含所有Zabbix objects配置变更的记录,包括因执行LLD规则、网络发现动作、自动注册动作或脚本执行而产生的变更。先前,由Zabbix server发起的配置变更(例如执行发现规则的结果)不会被记录。现在这类object修改将作为归属于系统用户的审计记录存储。
记录过滤器
新增了一项功能,可通过触发这些条目的前端操作来筛选记录。如果多个日志记录是由单一操作(例如关联/取消关联模板)产生的,这些记录将具有相同的记录集ID。
审计设置
新增 审计日志 审计日志功能已添加到管理→常规菜单中,允许启用或禁用审计日志记录。 原先位于Housekeeper部分的审计数据清理设置也已迁移至新的审计日志版块。
为了使模板链接更加直观,现在它被放置在主机、主机原型和模板的第一个标签页中 配置表单和主机/模板批量update表单
因此,所有相关表单中用于模板链接的独立标签页已被移除。
在一项相关进展中,主机原型配置中用于主机组/主机组原型选择的字段 也已从单独的标签页移至首个标签页。
在最新数据部分新增了子过滤器功能. 该子过滤器可快速一键访问相关联的监控项组.
子过滤器显示可点击链接, 支持基于共同实体-主机,标签名称或标签值来筛选监控项. 点击实体后,监控项将立即被过滤.
更多详情请参阅latest data章节.
监控 → 主机 → 图表 页面进行了多项可用性改进:
更多详情请参阅graph页面。
现在还可以通过监控 → Hosts来create新的主机.
创建主机按钮对管理员和超级管理员用户可见.
主机创建和编辑表单现已在模态窗口(弹出窗口)中打开,包括配置→主机、监控→主机以及任何包含一个主机菜单或其他直接链接至主机配置的页面。
指向主机编辑页面的直接链接仍然有效,并会在完整页面中打开主机编辑界面。
在Latest data中新增了监控项的上下文菜单 可访问监控项配置和可用图表:
相应地 在配置菜单的item list中 新增了上下文菜单 可访问监控项的最新数据 及其他实用选项:
该菜单取代了旧版本中的向导选项 类似的菜单也已 在template items和item prototypes中实现
最新数据部分进行了多项改进:
监控菜单中的概览部分已被完全移除。 相同功能仍可通过数据概览和触发器概览仪表盘widgets访问。
为实现审计日志功能的变更,必须重构先前存在的数据库结构。在升级过程中,auditlog
和auditlog_details
数据库表将被格式不同的新表auditlog
取代。现有审计日志记录将被删除。
Zabbix server 和 proxy 现在会在启动前检查数据库 version 并在 version 超出支持范围时拒绝启动. 更多详情请参阅 databases.
Zabbix现已同时支持PCRE和PCRE2。针对RHEL 7及以上版本、SLES(所有版本)、Debian 9及以上版本、Ubuntu 16.04及以上版本的Zabbix软件包已更新为使用PCRE2而非PCRE进行编译。从源代码编译时,用户可通过指定''--with-libpcre''或''--with-libpcre2''flag进行选择。若升级现有安装环境,将PCRE切换为PCRE2可能导致部分正则表达式行为差异——详见切换到pcre2后无效的正则表达式获取详细信息。