2022 Zabbix中国峰会
2022 Zabbix中国峰会

5 Zabbix 3.4.0的新特征

5.1 新仪表板

新版本的Zabbix仪表板将汇总、概览重要信息这一功能提升到了一个新的水平,新版本现在可以支持建立多个仪表板,而在Zabbix之前的版本中只有一个。

每个仪表板由可以自定义的小部件组成,用户可以自己选择其中的内容。这部分升级是通过集成了Zabbix Screen中最优秀的一些功能和Dashboard的功能而实现的。因此,新版本的仪表板小部件包含以前的仪表板常用小部件,也新加入了Zabbix Screen管受好评的功能(如图形,简单图形,地图,触发器等)

许多以前可用于构建Zabbix Screen的元素现在可以作为仪表板的小部件放置在仪表板上,小部件也可以自定义名称。

还有全新的小部件:

  • 问题 - 这个小部件替换了上一个版本中 最近20个故障 部件的功能,采用类似于监控问题 部分的方式展示问题。
  • Map 导航树 - 这个小部件允许构建现有Map的等级结构,点击查看更多.

仪表板中的过滤功能已经被删除,反之,过滤功能可以应用于各个小部件,如主机状态,系统状态,etc.

更多详细内容,参见:

5.1.1 Map导航树

这个新的部件允许构建现有map的层次结构,同时也能显示每个map包含的问题的统计信息。

如果将Map小部件链接到导航树,它变得更加强大。在这种情况下,单击导航树中的map名称将在Map小部件中完全显示map内容。

层次结构中的第一级map的统计信息显示了所有子map和其自身问题的总和。

5.2 网络设备监控模板

为了提供开箱即用的监控功能给网络设备,如交换机和路由器,已经开发了基于SNMPv2的新模板。这些模板用于许多网络设备,更多信息,参见:

5.3 Proxies代理支持远程命令

如果目标主机是通过Zabbix proxy代理实现监控的话,过去无法由Zabbix Agent代理来执行远程命令和全局脚本。类似的,命令也不能被proxy代理自身执行,命令始终只能由Zabbix Server来执行。

在Zabbix 3.4中,远程命令和全局脚本在由proxy代理监控的主机上可以正确执行,该命令由目标主机上的agent代理执行。

还可以通过proxy代理本身执行远程命令或全局脚本,这种方式作为执行操作/全局脚本配置中的新选项提供

由server或proxy代理执行命令,具体取决于主机是由server还是proxy代理监控。

请注意,默认情况下未启用proxy代理执行远程命令。在安全环境中(加密,SSH等),可以通过将"EnableRemoteCommands"参数设置为1来启用proxy代理上的执行远程命令。即使禁用远程命令,也可以执行IPMI,SSH和Telnet脚本。

5.4 从属监控项

有一个监控项一次收集多个指标的场景,或者同时收集相关指标,例如:

  • 单个内核的CPU使用率
  • 流入/流出/总的网络流量

为了支持这项功能,Zabbix现在支持从属监控项目。从属监控项有一个主监控项,它在一个查询策略中收集所有的指标。从属监控项使用主监控项的数据来收集她们的数据,主监控项的新数据值自动填充从属监控项的值。

也可参见: 从属监控项

5.5 告警并行处理

在以前的版本中使用单个告警器进程来发送问题通知,告警是一个一个的发出,在大规模的环境中有大量事件紧挨连续发生的情况下,告警可能会发生延迟。类似地,在实时性较高和实时性较低的媒体类型(如短信和电子邮件)混合存在的环境中,可能会存在延时,邮件的发送需要等待短信发送完成。

在新版本中,并行处理告警功能已经实现,有一个新的告警管理器进程,如果需要,可以向多个“worker”进程分发告警。媒体类型被并行处理,每个媒体类型可以配置最大并发会话数,但服务器上的告警器进程总数只能由新的StartAlerters 参数限制,每个触发器生成的告警都会顺序的进行处理。

还有其他相关的更新:

  • 有三个可用的新告警处理选项在媒体类型配置中: 并发会话, 重试重试间隔:

  • 数据库看门狗进程的功能已经合并到告警管理器中,并且看门狗进程本身也被删除。

5.6 已通知的问题确认

现在可以在确认触发器生成的问题时收到Zabbix所有可用方式的通知,为了实现这一点,而创建了一种新的操作类型,称为确认操作,其有自己的专用配置选项卡。

在已确认的通知信息中可以包含用户和用户作为确认输入的文本,确认通知可以发送给指定的用户/用户组和/或者所有确认问题并留下评论的用户。

远程命令也可以在问题确认时执行。

也可以参见: 确认操作

5.7 监控项数据预处理

在将数据存储在数据库中之前,预先处理监控项数据,Zabbix已经有了几个选项,例如计算增量值,使用自定义乘数,转换值类型或修剪长文本值。这些选项作为监控项配置中的单独属性存在,或者是硬编码。

在新版本中,所有监控项数据预处理都汇集在一起,并在监控项配置的新功能预处理选项卡中下放入用户手中。

新预处理选项

几个新增的数据预处理功能选项:

  • 正则表达式 - 通过正则表达式/输出模板找到匹配内容;
  • XML XPath - 使用XPath从XML数据中提取数值或片段;
  • JSON Path - 使用JSONPath从JSON数据中提取数值或片段(仅支持一组有限的JSONPath功能)。

另外// Delta(简单更改) Delta(每秒速度)选项已重命名为简单更改每秒更改//。

有关监控项数据预处理选项和更多详细信息的完整列表,请参阅 监控项配置.

5.8 可配置的JMX端点

以前,一个JMX端点是在Zabbix中进行硬编码,这是有局限性的,因为有一些应用程序使用不同的端点。为了解决这个限制,在JMX监控项配置中,新添加了可配置作为单独字段的JMX端点支持,当您打开JMX监控项时,最初该字段将填充默认端点,但现在可以自由修改。

在JMX端点字段中支持{HOST.*}宏变量, 用户宏变量和低级别发现的宏变量。

5.9 JMX低级别发现

新的** jmx.discovery [<discovery mode>,<object name>] **监控项支持JMX对象的低级别发现,此监控项允许指定是发现MBean还是MBean属性,以及要查找的模式。 更多细节,参见JMX发现部分

5.10 用于正则表达式的PCRE库

Zabbix中的正则表达式支持已从POSIX扩展正则表达式切换到Perl Compatible Regular Expressions(PCRE),以增强正则表达式和前端的一致性。

<note warning>从以前的版本升级时,请务必阅读相应的升级注意事项! :::

5.11 Web监控中的URL编码支持

以前web监控中的变量值不变的情况,变量值的任何URL编码只能手动完成。

URL自动编码

现在,Web监控方案步骤中输入的GET和POST变量值将自动进行URL编码,无论使用什么类型的数据(文本,宏,场景级别变量或其任何组合)都应用此编码方式。 在执行步骤之前执行编码(数据保存在数据库中未编码)。

变量灵活的URL编码

可以灵活地对URL或变量(宏)的值进行编码/解码,这取决于Web监控方案步骤中选定的后变量设置。 例如:

版本 变 语法 结果
3.4版之前 {u er} 变量 按原样传递。
3.4版 user}
{user}
{{user}.urlencode()}
{{user}.urldecode()}
量值在表单模式中自动进行URL编码,用于后置变量。
变量值在原始模式中用于后变量。
变量值以原始模式为后置变量进行手动URL编码。
变量值在原始模式中用于后置变量进行手动URL解码。

域名支持Unicode编码

Web监控方案现在支持以Unicode字符指定域名,执行Web场景步骤时,Unicode字符将自动被转换为ASCII编码。

更多详细信息, 参见 web监控步骤.

5.12 Map改进

网络maps中的图形已从位图更新为SVG矢量图形。

maps中的其他改进如下:

  • 权限变更
  • 支持多触发器
  • 支持拖放多个元素
  • 支持复制粘贴多个元素
  • 可以添加形状和线条

权限变更

如果用户没有对所有map元素的读取权限,则不再隐藏map,而是显示map,提供用户对至少一个元素的读取和访问。用户没有读取权限的元素将以灰色图标显示,并且没有任何文本信息(除了具有标签的触发器)。

也可参见: 网络map配置

支持多触发器

当创建一个触发类型的map元素时,现在可以为此元素选择多个触发器,而不是像之前一样只能选择单个触发器。

此外,展开单个问题在map属性中的设置已经重新设计成三项选择,这里的新选项称为问题数量并扩展最关键的一个。此选项与多重触发器支持相关,如果选择此选项,最重要的问题(最高严重度触发)将通过其名称显示在map元素上,而问题总数将显示在另一行中。

也可参见: 网络map配置

移动元素

map元素的拖拉支持功能已经引入,通过点击所选元素之一,按住鼠标按钮并将光标移动到所需位置,可以将几个选定的元素移动到map中的另一个位置。

复制和粘贴元素

Map元素当被选中时,现在可以在同一个map中复制和粘贴

多个选定的元素现在也可以一起拖放到另一个地方。

添加形状和线条

矩形和椭圆形状现在可以在网络map中添加。这些形状主要是视觉展现,例如,矩形形状可以用作背景来对某些主机分组。形状不是map元素,不能配置链接,文字可以加入形状中。

map_shape_menu.png

自由绘制的线条是现在可以添加到网络map中的另一个元素。

map_line_new.png

5.13 在时间段内支持宏和时间后缀

在监控项更新间隔和Zabbix中指定时间段的更多位置,现在支持用户宏和时间后缀(如30秒,5分钟,2小时,1d,1w)。请注意,在某些时间段内,仅添加了用户宏支持,而仅在后缀支持中。 有关支持的位置的完整列表,请参阅:

用户宏对快速配置更改非常有用。例如,可以为监控项更新间隔定义用户宏,然后,如果需要更改监控项轮询频率,则只需更改用户宏的值,并在所有使用宏的监控项中更改监控项的更新间隔。

此外,监控项原型更新间隔和历史/趋势存储周期字段现在支持低级发现宏。

在相关的更新中,时间段的一些上限/下限已经改变。重要的是,监控项的历史存储期现在可以短至1小时。

5.14 事件标签中的主机宏支持

主机宏 - {HOST.HOST<1-9>}, {HOST.NAME<1-9>}, {HOST.CONN<1-9>}, {HOST.DNS<1-9>}, {HOST.IP<1-9>}, {HOST.PORT<1-9>}, {HOST.ID<1-9>}现在支持事件标签名称和值,使得更容易在模板上指定与主机相关的标签,或将全局事件关联到其主机。

5.15 前端的改进

5.15.1 去掉对IE9和IE10的支持

不再提供对微软IE9和IE10浏览器的支持。

5.15.2 完整克隆screens和maps

单个screen和模板screens以及网络map现在可以完全克隆,这意味着不仅可以布局,而且可以对所有screen/map元素进行克隆。

要完全克隆screen,请单击完全克隆按钮,这将临时保存screenid,然后给screen一个不同的名称,然后单击添加按钮,将创建一个新的,包含所有符合screen布局元素的screen。

5.15.3 单选按钮和复选框风格的统一

单选按钮和复选框的风格已在不同浏览器实现统一。

|<| |<| |-| |<|

5.15.4 将相同的权限应用于嵌套的主机组

在主机组配置中有一个新选项,允许将父主机组的权限级别设置为所有嵌套的主机组, 如果选中此复选框并更新主机组,对于可能已将不同权限分配给嵌套主机组的用户组,将在嵌套组上强制执行父组的权限级别。这是一个一次性选项,它不保存在数据库中,仅适用于Zabbix超级管理员用户,并且只在编辑现有主机组时才可用。

5.15.5 字段大小的增加

  • 监控项,监控项过滤器,低级发现规则和网络发现规则配置中的SNMP OID字段长度从255字节增加到512字节
  • 监控项配置中的灵活间隔周期字段长度由255字节增加到1024字节
  • 用户媒体中何时激活字段长度由100字节增加到1024字节。

5.15.6 其他

  • 现在非超级管理员用户也可以隐藏SQL报错。更多详细信息,请参阅Zabbix前端中的ZBX_SHOW_SQL_ERRORS的定义

5.16 守护进程改善

  • SNMP OID长度限制由255字节增加到512字节。
  • Zabbix可以读取的SNMP陷阱文件大小限制从2^31(2 GiB)增加到2^63(8 EiB)。
  • Java网关增加了对AtomicBoolean, AtomicInteger和AtomicLong类型的支持。
  • 优化了Server-Proxy代理数据交换协议,以减少从Proxy代理服务器发送历史(主机可用性,监控项历史记录,发现和自动注册)数据到Server的连接数。当让,Server也将接受来自3.2(及更旧版本)Proxy代理的历史数据,保持部分向下的兼容性。
  • 内部自动发现和Agent代理自动注册事件的默认数据存储期已从365天降至1天。
  • 错误消息最大长度已从128个符号增加到2048个符号或触发器和告警错误。这应该减少错误消息被裁剪的可能性。错误消息可以在配置 - > 主机 - > 触发器和用于警告的报告 - > 操作日志中查看,滚动鼠标时查看错误图标。
  • 信号量和共享内存管理已经重新设计,以消除Zabbix守护程序之间以及Zabbix和其他应用程序之间的IPC相关冲突的可能性。
  • 配置同步期间的缓存锁定时间已经减少。

5.16.1 IPMI轮询

以前一个BMC控制器可以被不同的进程查询,为了提高轮询速度,每个IPMI轮询器都保存一个连接缓存。有了大量的IPMI轮询器的情况下,可以轻松的超载BMC控制器。

自Zabbix 3.4以来,已经添加了一个新的IPMI管理器进程来规划对IPMI轮询器的IPMI检查。现在主机总是被同一个IPMI轮询器轮询,这样减少了与BMC控制器打开的连接数,通过这些更新,可以安全地增加IPMI轮询器的数量,而不必担心BMC控制器重载。只要有一个IPMI轮询器启动时,IPMI管理器进程也会自动启动。

5.16.2 配置参数

Zabbix Server配置新增了一个StartAlerters参数,此版本引入并行处理的告警机制,“StartAlerters”参数决定了Zabbix Server可以启动多少个报警器进程。

Zabbix Server和proxy配置新增一个SocketDir参数,此参数指向存储内部Zabbix套接字文件的目录(默认为/tmp)。Server和Proxy代理使用不同的套接字文件名,因此在同一系统上运行的Server和Proxy代理使用相同的“SocketDir”是安全的。但是,在同一系统中运行多个Server或Proxy代理将需要不同的“SocketDir”配置。

EnableRemoteCommandsLogRemoteCommands参数已被添加到Proxy代理配置文件中,因此现在也通过Proxy代理支持远程命令,两者默认都是禁用的。

虽然MaxLinesPerSecondAgent代理参数的上限保持不变(1000),当涉及到Agent代理可以读取的总行数时,Agent代理每秒可以向Zabbix Server发送的新日志行限制现在可以乘以10(而不是4)。

5.16.3 关于agent代理的公制线程崩溃的更多信息

以前,如果Zabbix agent代理公制线程崩溃,则只会记录一行错误消息。在这种情况下,agent代理日志文件中提供了附加信息,包括程序计数器,寄存器,堆栈帧(仅在32位版本中)和回溯。在其他额外的改进中,执行公制线程的记录返回值已从数字更新为字符串,以提高可读性。

5.17 监控项的变更和改进

已新增一个新的** vfs.dir.size **Agent代理监控项来监控目录的大小,这个监控项支持UNIX和Windows平台。

对于** proc.num **Agent代理监控项,支持两个附加状态:

  • disk - process in uninterruptible disk sleep (usually I/O)
  • disk - 不间断磁盘,睡眠中的进程(通常是I/O)
  • trace - process is stopped by job control signal
  • trace - 由作业控制信号的进程停止

添加一个新的zabbix[host,discovery,interfaces]内部监控项来返回在Zabbix前端配置的所有主机接口,这个监控项可以使用在低级返现中。

5.18 低级发现

  • 添加了对触发原型表达式的函数参数中的LLD宏的支持。
  • 添加在触发原型名称,描述和标签中使用ITEM.VALUE,ITEM.LASTVALUE的功能参数LLD宏支持。
  • 添加LLD宏在函数参数中的原型名称简单宏如{host:key [].func()}的支持。

5.19 脚本和命令返回码检查

现在Zabbix检查用户参数,远程命令和system.run[]监控项的退出代码,而没有对“nowait”标志以及Zabbix服务器执行的脚本(告警,外部脚本和全局脚本)的检查。在脚本或命令执行过程发生错误的情况下,Zabbix在前端提供错误描述,并创建相应的日志条目。