# - \#5 Zabbix 3.4.0的新特征

### - 新仪表板

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

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

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

![](../../../assets/en/manual/introduction/dashboard.png){width="600"}

还有全新的小部件:

-   *问题* - 这个小部件替换了上一个版本中 *最近20个故障*
    部件的功能，采用类似于*监控* → *问题* 部分的方式展示问题。
-   *Map 导航树* -
    这个小部件允许构建现有Map的等级结构，[点击](/manual/introduction/whatsnew340#map_navigation_tree)查看更多.

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

更多详细内容，参见:

-   [仪表板](/manual/web_interface/frontend_sections/monitoring/dashboard)
-   [仪表板部件](/manual/web_interface/frontend_sections/monitoring/dashboard/widgets)

#### - Map导航树

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

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

![](../../../assets/en/manual/introduction/map_to_display.png){width="600"}

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

### - 网络设备监控模板

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

-   [标准化网络模板](/manual/config/templates_out_of_the_box/network_devices)

### - Proxies代理支持远程命令

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

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

还可以通过proxy代理本身执行远程命令或全局脚本，这种方式作为执行操作/全局脚本配置中的新选项提供
-
由server或proxy代理执行命令，具体取决于主机是由server还是proxy代理监控。

![](../../../assets/en/manual/introduction/remote_comm_proxy.png)

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

### - 从属监控项

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

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

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

也可参见: [从属监控项](/manual/config/items/itemtypes/dependent_items)

### - 告警并行处理

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

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

还有其他相关的更新：

-   有三个可用的新告警处理选项在媒体类型[配置](/manual/config/notifications/media/email#configuration)中:
    *并发会话*, *重试* 和 *重试间隔*:

![](../../../assets/en/manual/introduction/media_type_new.png){width="550"}

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

### - 已通知的问题确认

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

![](../../../assets/en/manual/introduction/ack_operation_new.png)

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

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

也可以参见:
[确认操作](/manual/config/notifications/action/acknowledgement_operations)

### - 监控项数据预处理

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

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

![](../../../assets/en/manual/introduction/item_preprocessing.png)

#### 新预处理选项

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

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

另外// Delta（简单更改）*和*
Delta（每秒速度）*选项已重命名为*简单更改*和*每秒更改//。

有关监控项数据预处理选项和更多详细信息的完整列表，请参阅
[监控项配置](/manual/config/items/item#item_value_preprocessing).

### - 可配置的JMX端点

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

![](../../../assets/en/manual/introduction/configurable_jmx_endpoint.png)

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

### - JMX低级别发现

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

### - 用于正则表达式的PCRE库

Zabbix中的正则表达式支持已从POSIX扩展正则表达式切换到[Perl Compatible
Regular
Expressions](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions)（PCRE），以增强正则表达式和前端的一致性。

<note
warning>从以前的版本升级时，请务必阅读相应的[升级注意事项](/manual/installation/upgrade_notes_340#pcre_library_for_regular_expressions)!
:::

### - Web监控中的URL编码支持

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

#### URL自动编码

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

#### 变量灵活的URL编码

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

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

#### 域名支持Unicode编码

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

更多详细信息, 参见
[web监控步骤](/manual/web_monitoring#configuring_steps).

### - Map改进

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

maps中的其他改进如下：

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

#### 权限变更

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

![](../../../assets/en/manual/introduction/map_greyed_out.png)

也可参见:
[网络map配置](/manual/config/visualisation/maps/map#access_based_on_permissions)

#### 支持多触发器

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

![](../../../assets/en/manual/introduction/multiple_triggers.png){width="600"}
此外，*展开单个问题*在map属性中的设置已经重新设计成三项选择，这里的新选项称为*问题数量并扩展最关键的一个*。此选项与多重触发器支持相关，如果选择此选项，最重要的问题（最高严重度触发）将通过其名称显示在map元素上，而问题总数将显示在另一行中。

![](../../../assets/en/manual/introduction/multiple_problems.png)

也可参见:
[网络map配置](/manual/config/visualisation/maps/map#creating_a_map)

#### 移动元素

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

#### 复制和粘贴元素

Map元素当被选中时，现在可以在同一个map中[复制和粘贴](/manual/config/visualisation/maps/map#copying_and_pasting_elements)。

![](../../../assets/en/manual/introduction/map_copy_new.png)

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

#### 添加形状和线条

矩形和椭圆形状现在可以在网络map中[添加](：manual / config / visualization / maps / map＃adds_shapes)。这些形状主要是视觉展现，例如，矩形形状可以用作背景来对某些主机分组。形状不是map元素，不能配置链接，文字可以加入形状中。

![map\_shape\_menu.png](../../../assets/en/manual/introduction/map_shape_menu.png)

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

![map\_line\_new.png](../../../assets/en/manual/introduction/map_line_new.png)

### - 在时间段内支持宏和时间后缀

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

-   [用户宏支持](/manual/appendix/macros/supported_by_location_user)
-   [时间后缀](/manual/appendix/suffixes#time_suffixes)

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

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

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

### - 事件标签中的主机宏支持

主机宏 - {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>}现在支持事件标签名称和值，使得更容易在模板上指定与主机相关的标签，或将全局事件关联到其主机。

### - 前端的改进

#### - 去掉对IE9和IE10的支持

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

#### - 完整克隆screens和maps

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

![](../../../assets/en/manual/introduction/screens_full_clone.png)

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

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

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

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

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

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

![](../../../assets/en/manual/introduction/host_group_new.png)

#### - 字段大小的增加

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

#### - 其他

-   现在非超级管理员用户也可以隐藏SQL报错。更多详细信息，请参阅Zabbix前端中的ZBX\_SHOW\_SQL\_ERRORS的[定义](/manual/web_interface/definitions#parameters)。

### - 守护进程改善

-   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相关冲突的可能性。
-   配置同步期间的缓存锁定时间已经减少。

#### - IPMI轮询

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

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

#### - 配置参数

Zabbix
Server配置新增了一个`StartAlerters`参数，此版本引入[并行处理](/manual/introduction/whatsnew340#parallel_processing_of_alerts)的告警机制，“StartAlerters”参数决定了Zabbix
Server可以启动多少个报警器进程。

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

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

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

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

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

### - 监控项的变更和改进

已新增一个新的\*\* vfs.dir.size
\*\*Agent代理[监控项](/manual/config/items/itemtypes/zabbix_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\]**内部[监控项](/manual/config/items/itemtypes/internal)来返回在Zabbix前端配置的所有主机接口，这个监控项可以使用在[低级返现](/manual/discovery/low_level_discovery/host_interfaces)中。

### - 低级发现

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

### - 脚本和命令返回码检查

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

![](../../../assets/en/manual/introduction/frontend_return_code_error.png)
