[comment]: # ({825145a8-825145a8})
# 1 配置网络拓扑图

[comment]: # ({/825145a8-825145a8})

[comment]: # ({c474f3f9-b1737d97})
#### 概述

在 Zabbix 中配置地图时，首先需要通过定义其通用参数来创建一个地图，然后再开始用元素及其链接填充实际的地图。

你可以用以下元素来填充地图：主机、主机组、触发器、图像或其他地图。

图标用于表示地图元素。你可以定义随图标显示的信息，并设置最近问题以特殊方式显示。你还可以链接这些图标，并定义在链接上显示的信息。

你可以添加自定义 URL，以便通过单击图标进行访问。因此，你可以将主机图标链接到主机属性，或将地图图标链接到另一张地图。

地图中的问题计数仅显示根本原因问题。

地图在 *监控* >
*[地图](/manual/web_interface/frontend_sections/monitoring/maps)* 中进行管理，可在此进行配置、管理和查看。在监控视图中，你可以单击图标，并利用指向某些脚本和 URL 的链接。

网络地图基于矢量图形（SVG）。

[comment]: # ({/c474f3f9-b1737d97})

[comment]: # ({d3a50f08-8ca16024})
#### 公共和私有拓扑图

Zabbix 中的所有用户（包括非管理员用户）都可以创建网络拓扑图。
拓扑图有一个所有者——即创建它们的用户。拓扑图可以设为公共
或私有。

-   *公共* 拓扑图对所有用户可见，但要查看它们，用户
    必须对至少一个拓扑图元素具有读权限。公共拓扑图可以
    被编辑，前提是某个用户/用户组对此拓扑图具有读写权限，
    并且对相应拓扑图的所有元素（包括链接中的触发器）
    至少具有读权限。

```{=html}
<!-- -->
```
-   *私有* 拓扑图仅对其所有者以及所有者与之[共享](/manual/config/visualization/maps/map#sharing)
    的用户/用户组可见。普通（非超级管理员）用户只能与其所属的组
    以及属于这些组的用户共享。管理员级别用户无论是否为所有者或是否属于
    共享用户列表，都可以查看私有拓扑图。私有拓扑图可以由其所有者编辑；
    如果某个用户/用户组对此拓扑图具有读写权限，并且对相应拓扑图的所有元素
    （包括链接中的触发器）至少具有读权限，也可以进行编辑。

用户没有读权限的拓扑图元素会以灰显图标显示，并且该元素上的所有文本信息都会被隐藏。
但是，即使用户对触发器没有权限，触发器标签仍然可见。

要向拓扑图添加元素，用户还必须对该元素至少具有读权限。

[comment]: # ({/d3a50f08-8ca16024})

[comment]: # ({6a321f6f-2202cec4})
#### 创建拓扑图

要创建拓扑图，请执行以下操作：

1.  前往 *监测 > 拓扑图*。
2.  进入显示所有拓扑图的视图。
3.  单击 *创建拓扑图*。

您也可以在现有拓扑图的配置表单中使用 *克隆* 按钮来创建新的拓扑图。  
此拓扑图将具有现有拓扑图的所有属性，包括常规布局属性以及现有拓扑图中的元素。

**拓扑图**选项卡包含拓扑图的一般属性：

![](../../../../../assets/en/manual/config/visualization/map_config.png){width="600"}

所有必填输入字段都以红色星号标记。

拓扑图的一般属性：

|参数|说明|
|--|--------|
|*Owner*|拓扑图所有者的名称。|
|*Name*|唯一的拓扑图名称。|
|*Width*|拓扑图宽度，以像素为单位。|
|*Height*|拓扑图高度，以像素为单位。|
|*Background image*|使用背景图像：<br>**No image** - 不使用背景图像（白色背景）<br>**Image** - 使用所选图像作为背景图像。您可以使用地理地图或任何其他图像来增强您的拓扑图。|
|*Background scale*|使用背景缩放：<br>**None** - 不缩放；<br>**Proportionally** - 覆盖整个拓扑图背景，但保持图像比例（默认）。|
|*Automatic icon mapping*|您可以设置使用自动图标映射，该映射在 *Administration > General > Icon mapping* 中配置。图标映射允许将某些图标映射到某些主机清单字段。|
|*Icon highlight*|如果选中此复选框，拓扑图元素将被高亮显示。<br>具有活动触发器的元素将获得圆形背景，颜色与最高严重性触发器相同。此外，如果所有问题都已确认，圆圈周围将显示一条粗绿色线。<br>处于“disabled”或“in maintenance”状态的元素将分别获得灰色和橙色的方形背景。<br>另请参见：[查看拓扑图](/manual/web_interface/frontend_sections/monitoring/maps#viewing-maps)|
|*Mark elements on trigger status change*|最近的触发器状态变化（最近的问题或恢复）将通过标记进行高亮显示（指向元素图标内部的红色三角形），这些标记显示在元素图标未被标签占用的三侧。标记显示 30 分钟。|
|*Display problems*|选择如何在拓扑图元素中显示问题：<br>**Expand single problem** - 如果只有一个问题，则显示问题名称。否则，显示问题总数。<br>**Number of problems** - 显示问题总数<br>**Number of problems and expand most critical one** - 显示最严重问题的名称以及问题总数。<br>“最严重”根据问题严重性确定；如果严重性相同，则根据问题事件 ID 确定（ID 更高或较晚的问题优先显示）。对于 *trigger map element*，则根据问题严重性确定；如果相同，则根据触发器在触发器列表中的位置确定。如果同一触发器有多个问题，则显示最近的一个。|
|*Advanced labels*|如果选中此复选框，您将能够为不同的元素类型定义不同的标签类型。|
|*Host group label type*|用于拓扑图元素的标签类型：<br>**Label** - 拓扑图元素标签<br>**IP address** - IP 地址<br>**Element name** - 元素名称（例如，主机名称）<br>**Status only** - 仅状态（OK 或 PROBLEM）<br>**Nothing** - 不显示标签|
|*Host label type*|^|
|*Trigger label type*|^|
|*Map label type*|^|
|*Image label type*|^|
|*Map element label location*|标签相对于拓扑图元素的位置：<br>**Bottom** - 在拓扑图元素下方<br>**Left** - 在左侧<br>**Right** - 在右侧<br>**Top** - 在上方|
|*Show map element labels*|选择如何显示拓扑图元素标签：<br>**Always** - 始终显示（默认）；<br>**Auto hide** - 如果未悬停或未选中，则隐藏标签。|
|*Show link labels*|选择如何显示链接标签：<br>**Always** - 始终显示（默认）；<br>**Auto hide** - 如果未悬停或未选中，则隐藏标签。|
|*Problem display*|将问题计数显示为：<br>**All** - 显示完整的问题计数<br>**Separated** - 将未确认的问题计数作为总问题计数中的一个数字单独显示<br>**Unacknowledged only** - 仅显示未确认的问题计数|
|*Minimum severity*|低于所选最低严重性级别的问题将不会显示在拓扑图上。<br>例如，选择 *Warning* 时，*Information* 和 *Not classified* 级别触发器的变化将不会反映在拓扑图中。|
|*Show suppressed problems*|选中此复选框可显示原本会因主机维护而被抑制（不显示）的问题。|
|*URLs*|可在此为每种元素类型定义 URL，其中：<br>**Name** - URL 的标签；<br>**URL** - URL（最多 2048 个字符）；<br>**Element** - 元素类型（例如 *Host*、*Host group* 等）。<br>当用户在拓扑图查看模式下单击元素时，这些 URL 将显示为链接。<br>可在拓扑图 URL 名称和值中使用宏。完整列表请参见 [supported macros](/manual/appendix/macros/supported_by_location)，并搜索“map URL names and values”。|

[comment]: # ({/6a321f6f-2202cec4})

[comment]: # ({f156cb1c-01e19658})
#### 共享

**共享** 选项卡包含地图类型以及私有地图的共享选项
（用户组、用户）：

![](../../../../../assets/en/manual/config/visualization/map_config2.png)

|Parameter|Description|
|--|--------|
|*Type*|选择地图类型：<br>**Private** - 地图仅对所选用户组和用户可见<br>**Public** - 地图对所有人可见|
|*List of user group shares*|选择该地图可访问的用户组。<br>您可以允许只读或读写访问。|
|*List of user shares*|选择该地图可访问的用户。<br>您可以允许只读或读写访问。|

当您点击 *Add* 保存此地图时，您就创建了一个空地图，
其中包含名称、尺寸和某些首选项。现在您需要添加
一些元素。为此，请在地图列表中点击 *Edit* 以打开
可编辑区域。

[comment]: # ({/f156cb1c-01e19658})

[comment]: # ({ea98313b-3ed51336})
#### 添加元素

要添加一个元素，请点击 `Map element` 旁边的 *Add*。新元素将出现在地图的左上角。将其拖放到你喜欢的任何位置。

请注意，当 Grid 选项为 "On" 时，元素将始终与网格对齐（你可以从下拉菜单中选择不同的网格大小，也可以隐藏/显示网格）。如果你希望将元素放置在任意位置而不对齐，请将该选项设为 "Off"。（之后你仍然可以通过点击 *Align map elements* 将随机放置的元素与网格对齐。）

现在你已经放置了一些元素，可能希望通过为它们命名等方式来区分它们。点击元素后会显示一个表单，你可以设置元素类型、指定名称、选择不同的图标等。

![](../../../../../assets/en/manual/config/visualization/map_element.png){width="600"}

地图元素属性：

|Parameter|Description|
|--|--------|
|*Type*|元素类型：<br>**Host** - 表示所选主机所有触发器状态的图标<br>**Map** - 表示地图中所有元素状态的图标<br>**Trigger** - 表示一个或多个触发器状态的图标<br>**[Host group](/manual/config/visualization/maps/host_groups)** - 表示所选组中所有主机的所有触发器状态的图标<br>**Image** - 不关联任何资源的图标|
|*Label*|图标标签，任意字符串。<br>可使用宏和多行字符串。<br>此字段支持表达式 [macros](/manual/appendix/macros/supported_by_location)，但仅支持带时间参数的 `avg`、`last`、`min` 和 `max` 函数（例如，`{?avg(/host/key,1h)}`）。<br>有关支持的宏完整列表，请参见 [supported macros](/manual/appendix/macros/supported_by_location)，并搜索 'map element labels'。|
|*Label location*|标签相对于图标的位置：<br>**Default** - 地图的默认标签位置；<br>**Bottom** - 位于图标下方；<br>**Left** - 位于左侧；<br>**Right** - 位于右侧；<br>**Top** - 位于图标上方。|
|*Show label*|选择元素标签的显示方式：<br>**Default** - 使用地图配置中的 *Show map element labels* 设置（默认）；<br>**Always** - 始终显示（默认）；<br>**Auto hide** - 当未悬停或未选中时隐藏标签。|
|*Host*|选择一个主机；或者输入主机名。此字段支持自动补全，因此开始输入主机名时会显示匹配主机的下拉列表。向下滚动以选择一个。点击删除（x）图标可移除所选项。<br>此字段仅适用于类型为 *Host* 的元素。|
|*Map*|选择一个地图；或者输入地图名称。此字段支持自动补全，因此开始输入地图名称时会显示匹配地图的下拉列表。向下滚动以选择一个。点击删除（x）图标可移除所选项。<br>此字段仅适用于类型为 *Map* 的元素。|
|*Triggers*|在下面的 *New triggers* 字段中选择一个或多个触发器，然后点击 *Add*。或者，开始输入触发器名称，并从匹配触发器的下拉列表中选择一个。点击删除（x）图标可移除所选项。<br>此字段仅适用于类型为 *Trigger* 的元素。<br>所选触发器的顺序可以更改，但仅限于相同严重级别的触发器。多触发器选择还会影响编辑模式和查看模式下 {HOST.\*} 宏的解析。<br>在编辑模式下，首先显示的 {HOST.\*} 宏将根据列表中的第一个触发器进行解析（基于触发器严重级别）。<br>查看模式取决于常规地图属性中的 [Display problems](/manual/config/visualization/maps/map#creating-a-map) 参数：<br>- 如果选择 *Expand single problem* 模式，首先显示的 {HOST.\*} 宏将根据最近检测到的问题触发器进行解析（不考虑严重级别）；如果未检测到问题，则根据列表中的第一个触发器进行解析。<br>- 如果选择 *Number of problems and expand most critical one* 模式，首先显示的 {HOST.\*} 宏将根据触发器严重级别进行解析。<br>|
|*Host group*|选择一个主机组；或者输入主机组名称。此字段支持自动补全，因此开始输入主机组名称时会显示匹配主机组的下拉列表。向下滚动以选择一个。点击删除（x）图标可移除所选项。<br>此字段仅适用于类型为 *Host group* 的元素。|
|*Problem tags*|指定标签以限制小组件中显示的问题数量。可以包含或排除特定标签及标签值。可设置多个条件。标签名称匹配始终区分大小写。<br>每个条件可使用以下运算符：<br>**Exists** - 包含指定的标签名称<br>**Equals** - 包含指定的标签名称和值（区分大小写）<br>**Contains** - 包含标签值中含有输入字符串的指定标签名称（子串匹配，不区分大小写）<br>**Does not exist** - 排除指定的标签名称<br>**Does not equal** - 排除指定的标签名称和值（区分大小写）<br>**Does not contain** - 排除标签值中含有输入字符串的指定标签名称（子串匹配，不区分大小写）<br>条件有两种计算类型：<br>**And/Or** - 必须满足所有条件，具有相同标签名称的条件将按 Or 条件分组<br>**Or** - 满足任一条件即可<br>此字段仅适用于类型为 *Host* 和 *Host group* 的元素。|
|*Automatic icon selection*|勾选后，将使用图标映射来确定显示哪个图标。|
|*Icons*|你可以为元素在以下情况下选择显示不同的图标：*Default*、*Problem*、*Maintenance* 和 *Disabled*。<br>此字段仅适用于类型为 *Host* 的元素。|
|*Coordinates*|地图元素的 **X** 和 **Y** 坐标。|
|*URLs*|可在此为元素设置特定 URL，其中：<br>**Name** - URL 的标签；<br>**URL** - 一个 URL（最多 2048 个字符）。<br>当用户在地图查看模式下点击元素时，这些内容将作为链接显示。如果该元素有自己的 URL，并且已为其类型定义了地图级 URL，则它们会合并到同一菜单中。<br>可在地图元素名称和值中使用宏。完整列表请参见 [supported macros](/manual/appendix/macros/supported_by_location)，并搜索 'map URL names and values'。|

::: noteimportant
新增的元素不会自动保存。如果你离开此页面，所有更改都可能丢失。

因此，建议点击右上角的 **Update** 按钮。点击后，无论你在随后弹出的窗口中选择什么，修改都会被保存。

所选的网格选项也会随每张地图一起保存。
:::

[comment]: # ({/ea98313b-3ed51336})

[comment]: # ({e720d30b-e720d30b})


#### 选择元素

要选择多个元素，请选择一个，然后按住 *Ctrl* 选择其他元素。

您也可以通过在可编辑区域拖动一个矩形并选择其中的所有元素来选择多个元素。

一旦选择了多个元素，元素属性形式就会发生变化到批量更新模式，以便您可以一次性更改选定的属性元素。为此，请使用复选框标记属性，然后为其输入一个新值。您可以在此处使用宏（例如，下图标签中使用的host.name宏）。

![](../../../../../assets/en/manual/config/visualization/map_update.png){width="600"}

[comment]: # ({/e720d30b-e720d30b})

[comment]: # ({ddff11fe-d9136de4})
#### 关联元素

在地图上放置一些元素后，就可以开始将它们关联起来了。要关联两个元素，必须先选中它们。选中元素后，点击 Link 旁边的 *Add*。

创建关联后，单个元素表单现在会包含一个额外的 *Links* 部分。点击 *Edit* 可编辑关联属性。

![](../../../../../assets/en/manual/config/visualization/map_links.png){width="600"}

关联属性：

|Parameter|Description|
|--|--------|
|*Label*|显示在关联上方的标签。<br>此字段支持表达式 [macros](/manual/appendix/macros/supported_by_location)，但仅支持带时间参数的 `avg`、`last`、`min` 和 `max` 函数（例如，`{?avg(/host/key,1h)}`）。|
|*Show label*|选择如何显示关联标签：<br>**Default** - 使用地图配置中的 *Show map element labels* 设置（默认）；<br>**Always** - 始终显示（默认）；<br>**Auto hide** - 如果未悬停或未选中，则隐藏标签。|
|*Connect to*|该关联连接到的元素。|
|*Type (OK)*|默认关联样式。选择样式：*Line*、*Bold line*、*Dot* 或 *Dashed line*。|
|*Color (OK)*|默认关联颜色。点击颜色样本可选择其他颜色。|
|*Indicator type*|选择关联指示器类型：<br>**Static link** - 无指示器；<br>**Trigger** - 允许基于触发器的关联指示器；<br>**Item value** - 允许基于监控项值的关联指示器。|
|*Item*|选择监控项。此监控项的值将影响关联样式。<br>当 *Indicator type* 选择 *Item value* 时，此字段可用。|
|*Indicators*|[关联指示器](/manual/config/visualization/maps/links)列表。<br>当 *Indicator type* 设置为 *Trigger* 或 *Item value* 时，此字段可用。<br>如果设置为 *Trigger*，则可以将触发器分配为关联指示器。当触发器处于 *Problem* 状态时，其样式（所选颜色和线型）将应用于该关联。<br>如果设置为 *Item value* 且在 *Item* 字段中选择了监控项，则可以将监控项值分配为关联指示器。当监控项值达到指定阈值（对于数值监控项）或匹配模式（对于文本监控项）时，其样式（所选颜色和线型）将应用于该关联。|

[comment]: # ({/ddff11fe-d9136de4})

[comment]: # ({374334ab-726a54c2})
#### 移动和复制粘贴元素

可以通过单击任一已选中的元素，按住鼠标按钮，并将光标移动到所需位置，将多个已选中的元素**移动**到地图中的其他位置。

可以通过选择这些元素，然后用鼠标右键单击一个已选中的元素，并从菜单中选择 *Copy*，来**复制**一个或多个元素。

![](../../../../../assets/en/manual/config/visualization/map_copy.png){width="600"}

要粘贴这些元素，请用鼠标右键单击地图区域，并从菜单中选择 *Paste*。*Paste without external links* 选项会粘贴这些元素，但仅保留所选元素之间的链接。

复制粘贴仅在同一个浏览器窗口内有效。不支持键盘快捷键。

[comment]: # ({/374334ab-726a54c2})

[comment]: # ({dbdb8b67-96d93aaf})
#### 元素排序

要将一个元素置于另一个元素前面（或反之），请用鼠标右键单击该元素，然后选择 *前移一层*/*置于顶层* 或 *后移一层*/*置于底层*。

![](../../../../../assets/en/manual/config/visualization/map_element_menu.png)

[comment]: # ({/dbdb8b67-96d93aaf})

[comment]: # ({63507e6d-26543c2f})
#### 添加形状

除了地图元素之外，还可以添加一些形状。形状不是地图元素；它们只是视觉表示。例如，矩形形状可用作背景，以分组一些主机。可以添加矩形和椭圆形状。

要添加形状，请单击 Shape 旁边的 *Add*。新形状将出现在地图的左上角。将其拖放到任意位置即可。

新形状会以默认颜色添加。单击该形状后，会显示一个表单，您可以自定义形状的外观、添加文本等。

![](../../../../../assets/en/manual/config/visualization/map_shape.png){width="600"}

要选择多个形状，先选中一个，然后按住 *Ctrl* 再选择其他形状。选中多个形状后，可以像处理元素一样批量更新公共属性。

可以在形状中添加文本。文本中支持表达式 [macros](/manual/appendix/macros/supported_by_location)，但仅支持带时间参数的 `avg`、`last`、`min` 和 `max` 函数（例如，`{?avg(/host/key,1h)}`）。

如果只想显示文本，可以通过移除形状边框来使形状不可见（在 *Border* 字段中选择 'None'）。例如，请注意上方截图中可见的 {MAP.NAME} 宏实际上是一个带文本的矩形形状，单击该宏即可看到这一点：

![](../../../../../assets/en/manual/config/visualization/map_name_macro.png)

在查看地图时，{MAP.NAME} 会解析为已配置的地图名称。

如果文本中使用了超链接，在查看地图时它们会变为可点击。

在形状内，文本换行始终处于“开启”状态。不过，在椭圆形中，换行方式会像椭圆是矩形一样进行处理。当前未实现按词换行，因此较长的单词（无法放入形状中的单词）不会换行，而是会被遮罩（在地图编辑页面）或裁剪（其他带地图的页面）。

[comment]: # ({/63507e6d-26543c2f})

[comment]: # ({d742b9f5-ef42602b})
#### 添加线条

除了形状之外，还可以添加一些线条。线条可用于在地图中链接元素或形状。

要添加线条，请单击 Shape 旁边的 *Add*。一个新的形状将出现在地图的左上角。选中它，然后在编辑表单中单击 *Line*，将该形状更改为线条。接着调整线条属性，例如线条类型、宽度、颜色等。

![map\_line.png](../../../../../assets/en/manual/config/visualization/map_line.png){width="600"}

[comment]: # ({/d742b9f5-ef42602b})

[comment]: # ({a7dcc366-1b4ca573})
#### 排列形状和线条

要将一个形状置于另一个形状前面（或反之），请用鼠标右键单击该形状以打开地图形状菜单。

![](../../../../../assets/en/manual/config/visualization/map_shape_menu.png)

[comment]: # ({/a7dcc366-1b4ca573})
