创建监控项
概述
要在 Zabbix 前端中创建监控项,请执行以下操作:
- 转到 数据采集 > 主机。
- 在主机所在行中单击 监控项。
- 单击屏幕右上角的 创建监控项。
- 在表单中输入监控项的参数。
或者,您也可以打开现有监控项,单击 克隆 按钮,然后使用其他名称保存。
配置
监控项选项卡包含监控项的一般属性。

所有必填字段均以红色星号标记。
| 参数 | 描述 |
|---|---|
| 名称 | 监控项名称。 支持用户宏。 |
| 类型 | 监控项类型。请参阅各个监控项类型部分。 |
| 键值 | 监控项键值(最多 2048 个字符)。 支持的监控项键值可在各个监控项类型部分中找到。 在单个主机内,键值必须唯一。 如果键值类型为“Zabbix agent”、“Zabbix agent (active)”或“Simple check”,则键值必须受 Zabbix agent 或 Zabbix 服务器支持。 另请参阅正确的键值格式。 |
| 信息类型 | 用于验证监控项值并将其存储在数据库中的数据类型,包括进行任何转换之后的数据: 数值(无符号) - 64 位无符号整数; 数值(浮点) - 64 位浮点数; 字符 - 短文本; 日志 - 带有或不带日志属性(时间戳、来源、严重性、日志事件 ID)的长文本; 文本 - 长文本; 二进制 - 二进制数(仅依赖监控项支持); JSON - 结构化 JSON 数据,以原生格式存储在数据库中(计算监控项不支持)。 返回二进制或 JSON 数据类型值的监控项不支持用于计算监控项公式或触发器表达式。 有关每种数据类型及数据库后端的存储限制,请参阅监控项数据限制。 对于以单一特定格式返回数据的监控项,系统会自动选择匹配的数据类型——例如, system.cpu.load 和 system.cpu.util 都返回 64 位浮点数,因此会自动选择数值(浮点)。 |
| 主机接口 | 选择主机接口。在主机级别编辑监控项时,此字段可用。 |
| 单位 | 如果设置了单位符号,Zabbix 会对接收到的监控项值进行后处理,并使用指定的单位后缀显示该值。 支持特殊格式的单位符号(以及接收到的监控项值 → 显示值示例): B - 字节(1024 → 1 KB) Bps - 每秒字节数(1024 → 1 KBps) s - 秒,使用最多三个最大的非零时间单位显示(881764 → 10d 4h 56m) uptime - 以 hh:mm:ss 或 N days, hh:mm:ss 格式显示的运行时间(881764 → 10 days, 04:56:04) unixtime - Unix 时间戳,格式为 yyyy.mm.dd hh:mm:ss(881764 → 1970-01-11 04:56:04 AM);要正确格式化,接收到的监控项值必须为数值(无符号)。 对于其他单位(如 Hz、W 等),如果接收到的值超过 1000,则会除以 1000,并使用相应的前缀显示(5000 → 5 KHz,881764 → 881.76 KW)。 如果单位符号以 ! 开头,则会禁用单位转换和前缀处理(1024 !B → 1024 B,61 !s → 61 s)。有关单位符号和单位转换的更多示例及详细信息,请参阅监控项值后缀。 |
| 更新间隔 | 每 N 秒获取一次此监控项的新值。允许的最大更新间隔为 86400 秒(1 天)。 支持时间后缀,例如 30s、1m、2h、1d。 支持用户宏。 单个宏必须填充整个字段。不支持在一个字段中使用多个宏,也不支持宏与文本混合使用。 注意:仅当存在值不为零的自定义间隔时,更新间隔才能设置为“0”。如果设置为“0”,并且存在值不为零的自定义间隔(灵活或计划),则会在自定义间隔持续时间内轮询监控项。 注意,监控项变为活动状态后,或更新间隔发生更改后,第一次轮询可能早于配置的值发生。 新监控项将在创建后的 60 秒内进行检查,除非该监控项使用计划或灵活更新间隔,且更新间隔设置为 0。 可以通过点击立即执行按钮,立即轮询现有被动监控项的值。 |
| 自定义间隔 | 可以为监控项创建自定义检查规则: 灵活 - 为更新间隔创建例外(使用不同频率的间隔)。 计划 - 创建自定义轮询计划。 有关详细信息,请参阅自定义间隔。 间隔字段支持时间后缀,例如 30s、1m、2h、1d。 支持用户宏。 单个宏必须填充整个字段。不支持在一个字段中使用多个宏,也不支持宏与文本混合使用。 |
| 超时 | 设置监控项检查超时时间(适用于受支持的监控项类型)。选择超时选项: 全局 - 使用 proxy/全局超时(显示在灰显的超时字段中)。 覆盖 - 使用自定义超时(在超时字段中设置;允许范围:1 - 600s)。支持时间后缀(例如 30s、1m)和用户宏。 点击超时链接,可以配置proxy超时或全局超时(未使用 proxy 时)。请注意,只有具有超级管理员类型且拥有管理 > 常规或管理 > Proxy前端部分权限的用户,才能看到超时链接。 |
| 历史数据 | 选择以下选项之一: 不存储 - 不存储监控项历史数据。适用于主监控项仅需由依赖监控项保留历史数据的情况。 此设置不能被全局 housekeeper 设置覆盖。 存储时长 - 指定在数据库中保留详细历史数据的时长(1 小时至 25 年)。更早的数据将由 housekeeper 删除。以秒为单位存储。 支持时间后缀,例如 2h、1d。支持用户宏。 存储时长值可以在管理 > Housekeeping中进行全局覆盖。 如果存在全局覆盖设置,则会显示橙色 信息图标。将鼠标放在该图标上时,会显示警告消息,例如:已被全局 housekeeper 设置覆盖(1d)。建议将记录值保留尽可能短的时间,以减小数据库中值历史数据的大小。与其存储较长的值历史,不如存储更长时间的趋势数据。 另请参阅历史数据和趋势。 |
| 趋势 | 选择以下选项之一: 不存储 - 不存储趋势数据。 此设置不能被全局 housekeeper 设置覆盖。 存储时长 - 指定在数据库中保留聚合历史数据(每小时最小值、最大值、平均值、计数)的时长(1 天至 25 年)。更早的数据将由 housekeeper 删除。以秒为单位存储。 支持时间后缀,例如 24h、1d。支持用户宏。 存储时长值可以在管理 > Housekeeping中进行全局覆盖。 如果存在全局覆盖设置,则会显示橙色 信息图标。将鼠标放在该图标上时,会显示警告消息,例如:已被全局 housekeeper 设置覆盖(7d)。注意:非数值数据(字符、日志和文本)不支持保留趋势数据。 另请参阅历史数据和趋势。 |
| 值映射 | 将值映射应用于此监控项。值映射不会更改接收到的值,仅用于显示数据。 适用于数值(无符号)、数值(浮点)和字符监控项。 例如:“Windows 服务状态”。 |
| 日志时间格式 | 仅适用于日志类型的监控项。支持以下占位符: y:年份(1970-2038)。 M:月份(01-12)。 d:日期(01-31)。 h:小时(00-23)。 m:分钟(00-59)。 s:秒(00-59)。 如果留空,时间戳将设置为 Unix 时间 0,即 1970 年 1 月 1 日。 例如,考虑以下来自 Zabbix agent 日志文件的行: “ 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211).” 该行以 6 个字符位置的 PID 开头,后面依次为日期、时间和其余消息。 此行的日志时间格式为“pppppp:yyyyMMdd:hhmmss”。 请注意,“p”和“:”字符是占位符,可以是除“yMdhms”之外的任意字符。 |
| 填充主机资产清单字段 | 可以选择一个主机资产清单字段,由监控项的值填充。当主机启用了自动资产清单填充,并且监控项类型为数值(无符号)、数值(浮点)、字符或文本时,此功能有效。 |
| 描述 | 输入监控项描述。支持用户宏。 |
| 启用 | 选中复选框以启用监控项,使其得到处理。 禁用监控项时,它会立即从历史缓存中移除(日志除外,日志的最后一个值会保留)。 |
| 最新数据 | 点击链接查看监控项的最新数据。 仅在编辑已存在的监控项时提供此链接。 |
监控项类型特定字段在相应页面中进行了说明。
在主机级别编辑现有的模板级别监控项时,部分字段为只读。 可以使用表单标题中的链接转到模板级别并在那里进行编辑,但请注意,在模板级别进行的更改将修改与该模板关联的所有主机上的监控项。
标签选项卡允许您定义监控项级别的标签。

监控项值预处理
预处理选项卡允许您为接收到的值定义转换规则。
监控项测试
要执行监控项测试,请确保服务器和 proxy 上的系统时间已同步。 如果服务器时间落后,监控项测试可能会返回错误消息 "The task has been expired." 不过,即使服务器和 proxy 设置了不同的时区,也不会影响测试结果。
可以测试监控项,并在配置正确时返回一个真实值。 即使在监控项保存之前,也可以进行测试。
可测试的对象包括主机和模板监控项、监控项原型以及低级别发现规则。 主动式监控项不支持测试。
以下被动式监控项类型支持测试:
- Zabbix agent
- SNMP agent (v1, v2, v3)
- IPMI agent
- SSH checks
- Telnet checks
- JMX agent
- Simple checks (except
icmpping*,vmware.*items) - Zabbix internal
- Calculated items
- External checks
- Database monitor
- HTTP agent
- Script
- Browser
要测试监控项,请点击监控项配置表单底部的 Test 按钮。 请注意,对于无法测试的监控项(例如主动检查、被排除的简单检查),Test 按钮将被禁用。

监控项测试表单包含所需主机参数的字段(主机地址、端口、使用服务器/proxy 测试(proxy 名称))以及监控项特定的详细信息(例如 SNMPv2 community 或 SNMPv3 安全凭据)。 这些字段具有上下文感知能力:
- 在可能的情况下会预填充值,例如对于需要 agent 的监控项,会从主机所选的 agent 接口中获取信息。
- 模板监控项的值必须手动填写。
- 明文宏值会被解析。
- 值(或值的一部分)为密钥或 Vault 宏的字段会为空,必须手动输入。 如果任何监控项参数包含密钥宏值,将显示以下警告消息:"Item contains user-defined macros with secret values. Values of these macros should be entered manually."
- 在当前监控项类型不需要时,这些字段会被禁用(例如,对于计算型监控项,主机地址字段和 proxy 字段会被禁用)
要测试监控项,请点击 Get value。 如果成功获取到值,它会填充 Value 字段,同时将当前值(如果有)移到 Previous value 字段,并计算 Prev. time 字段,即两个值(点击)之间的时间差,同时尝试检测 EOL 序列,并在检测到返回值中的 "\n\r" 时切换为 CRLF。
点击 Get value and test 可测试预处理。

从主机获取的值和测试结果在发送到前端时会被截断,最大大小为 512KB。 如果测试结果被截断,会显示一个警告图标;将鼠标悬停其上可查看详情。 如果值被截断,在后续比较大值(例如 JSON)的测试中,可能会导致数据类型验证失败;在这种情况下,会显示错误消息。 请注意,超过 512KB 的数据仍会由 Zabbix 服务器完整处理。
如果配置不正确,会显示描述可能原因的错误消息。

从主机成功获取的值也可用于测试预处理步骤。
表单按钮
表单底部的按钮可用于执行多项操作。
![]() |
添加监控项。此按钮仅适用于新建监控项。 |
![]() |
更新监控项的属性。 |
![]() |
根据当前监控项的属性创建另一个监控项。 |
![]() |
立即对新的监控项值执行检查。仅支持被动检查(请参阅更多详细信息)。 注意,立即检查值时不会更新配置缓存,因此该值不会反映监控项配置最近发生的更改。 |
![]() |
通过获取值测试监控项配置是否正确。 |
![]() |
删除监控项的历史记录和趋势数据。 |
![]() |
删除监控项。 |
![]() |
取消编辑监控项属性。 |
监控项数据限制
监控项数据限制取决于监控项数据类型和数据库后端。
数值(无符号)值按原样存储。 如果接收到浮点值,则只存储整数部分(例如,1.23 → 1)。
数值(浮点)值按原样存储,并支持大约 15 到 17 位精度,范围约为 -1.79E+308 到 1.79E+308。 也支持科学计数法表示的值(例如,1.23E+7、1e308、1.1E-4)。
文本值在存储前会被截断,以匹配数据库值类型限制:
| Database | Type of information | ||
|---|---|---|---|
| Character | Log | Text | |
| MySQL | 255 characters | 65536 bytes | 65536 bytes |
| PostgreSQL | 255 characters | 65536 characters | 65536 characters |
| SQLite (only Zabbix proxy) | 255 characters | 65536 characters | 65536 characters |
二进制值限制为 16MiB(16777216 字节)。 超过此限制的值将被丢弃,并且会在前端显示相应错误。
JSON 数据类型的值限制为 128MiB(134217728 字节)。
超过此限制的值将被丢弃,并且会在前端显示相应错误。
对于 MySQL/MariaDB,建议为 history_json 表(用于存储 JSON 值)设置每日分区,因为它可能会迅速增长,并长时间锁定 housekeeper。
如果你的使用场景涉及较大的 JSON 值(1MiB 或更大),请参阅如何为 large JSON value support 配置系统。
当 Zabbix 将任何监控项数据写入数据库时,会使用 INSERT 查询并记录这些查询(如果将 DebugLevel 设置为 4 或 5)。
较大的日志条目会被截断为 64KB。
自定义脚本限制
可用的自定义脚本长度取决于所使用的数据库:
| 数据库 | 字符数限制 | 字节数限制 |
|---|---|---|
| MySQL | 65535 | 65535 |
| PostgreSQL | 65535 | 不受限制 |
| SQLite(仅 Zabbix proxy) | 65535 | 不受限制 |
监控项超时
监控项超时指定 Zabbix 在中止检查并将其判定为失败之前应等待多长时间。
当达到超时时间时,即使数据检索尚未完成,检查也会被中止。如果只接收到部分数据,该监控项将变为不受支持,并记录一条错误消息(例如,在 SNMP 检查中,如果多个 OID 里只有一个成功收集到数据)。
对于许多监控项类型,您可以设置灵活的监控项超时:
如果您希望为某个特定监控项指定更长的超时时间,同时保持其他监控项的超时时间较低,那么自定义的单个监控项超时会很有用。
超时优先级
- 单个监控项超时会覆盖任何其他超时设置。
- proxy 级别超时会覆盖全局超时。
对于已设置灵活超时的检查,Zabbix 服务器或 proxy 配置中的超时不起作用。
灵活超时支持
以下监控项类型支持灵活的监控项超时:
- Zabbix agent(被动和主动检查均支持)
- SNMP agent(不包括传统 SNMP 检查1)
- 简单检查(不包括
icmpping*和 VMware 监控项2) - SSH agent
- Telnet agent
- 外部检查
- 数据库监控
- 脚本
- HTTP agent
-
1 对于传统 SNMP 检查(单个 OID 轮询),适用来自 服务器 或 proxy 的超时设置。
2 对于icmpping*监控项,超时值直接在监控项键值中指定;同时还适用硬编码的最大可能超时 600 秒。VMware 监控项使用其自身的 VMwareTimeout 参数,该参数来自 服务器 或 proxy 配置。
不受支持的监控项
不受支持的监控项会显示为 不支持 状态,并且仍会按照其标准的 更新间隔 重新检查。
如果由于某种原因无法获取监控项的值,则该监控项会变为不受支持状态(例如,连接错误,或未配置用于处理该监控项的 poller)。 此外,未接收到历史数据的监控项也会保持在 不支持 状态。 这是预期行为——只有当监控项接收到新的有效历史数据时,才会转换为 正常 状态。
与问题类似,不受支持的监控项也仅在接收到新数据时才会重新评估——即使该监控项已不再有任何可用的历史数据。 换句话说,监控项和触发器仅会在接收到新数据时改变其状态。 但是,如果触发器表达式包含 日期和时间 和/或 nodata() 函数,则触发器将每 30 秒重新计算一次(详见 触发器计算时间)。
信息图标。将鼠标放在该图标上时,会显示警告消息,例如:已被全局 housekeeper 设置覆盖(1d)。






