1 创建监控项
概述
要在 Zabbix 前端中创建监控项,请执行以下操作:
- 转到:Data collection > Hosts
- 在主机所在行中单击 Items
- 单击屏幕右上角的 Create item
- 在表单中输入监控项的参数
您也可以通过打开现有监控项,单击 Clone 按钮,然后以不同的名称保存来创建监控项。
配置
监控项 选项卡包含监控项的常规属性。

所有必填输入字段都用红色星号标记。
| Parameter | Description |
|---|---|
| Name | 监控项名称。 支持用户宏。 |
| Type | 监控项类型。请参见各个监控项类型部分。 |
| Key | 监控项键值(最多 2048 个字符)。 支持的监控项键值可在各监控项类型部分中找到。 在单个主机内,键值必须唯一。 如果键值类型为 'Zabbix agent'、'Zabbix agent (active)' 或 'Simple check',则键值必须被 Zabbix agent 或 Zabbix 服务器支持。 另请参见:正确的key 格式。 |
| Type of information | 用于验证监控项值并在数据库中存储该值的数据类型,包括在任何转换之后: Numeric (unsigned) - 64 位无符号整数; Numeric (float) - 64 位浮点数; Character - 短文本; Log - 带或不带日志属性(时间戳、来源、严重性、日志事件 ID)的长文本; Text - 长文本; Binary - 二进制数(仅支持依赖监控项); JSON - 结构化 JSON 数据,原生存储在数据库中(不支持计算型监控项)。 返回二进制或 JSON 数据类型值的监控项,不支持在计算型监控项公式或触发器表达式中使用。 有关每种数据类型及数据库后端的存储限制,请参见监控项数据限制。 对于以单一特定格式返回数据的监控项,会自动选择匹配的数据类型——例如, system.cpu.load 和 system.cpu.util 都返回 64 位浮点数,因此会自动选择 Numeric (float)。 |
| Host interface | 选择主机接口。此字段在主机级别编辑监控项时可用。 |
| Units | 如果设置了单位符号,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);要正确格式化,接收到的监控项值必须为 Numeric (unsigned)。 对于其他单位(如 Hz、W 等),如果接收到的值超过 1000,则会除以 1000 并显示相应前缀(5000 → 5 KHz,881764 → 881.76 KW)。 如果单位符号前缀为 !,则会禁用单位转换和前缀处理(1024 !B → 1024 B,61 !s → 61 s)。有关单位符号和单位转换的更多示例和详细信息,请参见监控项值后缀。 |
| Update interval | 每 N 秒获取一次该监控项的新值。允许的最大更新间隔为 86400 秒(1 天)。 支持时间后缀,例如 30s、1m、2h、1d。 支持用户宏。 单个宏必须填满整个字段。不支持在一个字段中使用多个宏,或将宏与文本混合使用。 注意:只有在存在非零值的自定义间隔时,才能将更新间隔设置为 '0'。如果设置为 '0',且存在非零值的自定义间隔(灵活或计划),则会在自定义间隔期间轮询该监控项。 注意:监控项变为活动状态后或更新间隔变更后,首次轮询可能早于配置值。 新监控项会在创建后 60 秒内被检查,除非它们具有计划或灵活更新间隔且 Update interval 设置为 0。 现有的被动监控项可以通过点击 Execute now 按钮立即推送值进行轮询。 |
| Custom intervals | 您可以为检查监控项创建自定义规则: Flexible - 创建 Update interval 的例外(不同频率的间隔)。 Scheduling - 创建自定义轮询计划。 详细信息请参见自定义间隔。 Interval 字段支持时间后缀,例如 30s、1m、2h、1d。 支持用户宏。 单个宏必须填满整个字段。不支持在一个字段中使用多个宏,或将宏与文本混合使用。 |
| Timeout | 设置监控项检查超时(适用于受支持的监控项类型)。请选择超时选项: Global - 使用 proxy/全局超时(显示在灰色的 Timeout 字段中)。 Override - 使用自定义超时(在 Timeout 字段中设置;允许范围:1 - 600s)。支持时间后缀,例如 30s、1m,以及用户宏。 点击 Timeouts 链接可配置proxy 超时或全局超时(如果未使用 proxy)。请注意,只有具有 Super admin 类型且有 Administration > General 或 Administration > Proxies 前端部分权限的用户才能看到 Timeouts 链接。 |
| History | 请选择以下之一: Do not store - 不存储监控项历史数据。若只有依赖监控项需要保留历史数据,这对主监控项很有用。 此设置不能被全局 housekeeper 设置覆盖。 Store up to - 指定在数据库中保留详细历史数据的时长(1 小时到 25 年)。较旧的数据将由 housekeeper 删除。以秒为单位存储。 支持时间后缀,例如 2h、1d。支持用户宏。 Store up to 的值可在 Administration > Housekeeping 中全局覆盖。 如果存在全局覆盖设置,会显示一个橙色的 信息图标。将鼠标悬停其上时,会显示警告信息,例如 Overridden by global housekeeper settings (1d)。建议尽可能缩短保留记录值的时间,以减少数据库中值历史记录的大小。您可以将较长时间的数据存储为趋势数据,而不是存储很长的值历史。 另请参见历史和趋势。 |
| Trends | 请选择以下之一: Do not store - 不存储趋势数据。 此设置不能被全局 housekeeper 设置覆盖。 Store up to - 指定在数据库中保留聚合后的(每小时最小值、最大值、平均值、计数)历史数据的时长(1 天到 25 年)。较旧的数据将由 housekeeper 删除。以秒为单位存储。 支持时间后缀,例如 24h、1d。支持用户宏。 Store up to 的值可在 Administration > Housekeeping 中全局覆盖。 如果存在全局覆盖设置,会显示一个橙色的 信息图标。将鼠标悬停其上时,会显示警告信息,例如 Overridden by global housekeeper settings (7d)。注意: 非数值数据(character、log 和 text)不支持保留趋势数据。 另请参见历史和趋势。 |
| Value mapping | 将值映射应用于此监控项。值映射不会更改接收到的值,仅用于数据显示。 它适用于 Numeric(unsigned)、Numeric(float) 和 Character 监控项。 例如,“Windows service states”。 |
| Log time format | 仅适用于 Log 类型的监控项。支持的占位符: y:Year (1970-2038)。 M:Month (01-12)。 d:Day (01-31)。 h:Hour (00-23)。 m:Minute (00-59)。 s:Second (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" 之外的任何字符。 |
| Populates host inventory field | 您可以选择一个主机库存字段,由监控项的值填充。此功能在主机启用了自动库存填充,并且适用于 Numeric(unsigned)、Numeric(float)、Character 和 Text 监控项时生效。 |
| Description | 输入监控项描述。支持用户宏。 |
| Enabled | 勾选复选框以启用该监控项,使其被处理。 禁用监控项后,它会立即从历史缓存中移除(但最后一个值会保留用于日志)。 |
| Latest data | 点击链接查看该监控项的最新数据。 此链接仅在编辑已存在的监控项时可用。 |
监控项类型特定字段在相应页面中描述。
在主机级别编辑现有的模板级别监控项时,部分字段为只读。 您可以使用表单标题中的链接转到模板级别并在那里编辑这些字段,同时请注意,模板级别的更改会影响该模板链接到的所有主机上的该监控项。
Tags 选项卡允许定义监控项级别的标签。

监控项值预处理
预处理选项卡允许为接收到的值定义转换规则。
监控项测试
要执行监控项测试,请确保服务器和 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 秒重新计算一次(详见 触发器计算时间)。
信息图标。将鼠标悬停其上时,会显示警告信息,例如 Overridden by global housekeeper settings (1d)。






