1 创建监控项

概述

要在 Zabbix 前端中创建监控项,请执行以下操作:

  • 转到:Data collection > Hosts
  • 单击主机所在行中的 Items
  • 单击屏幕右上角的 Create item
  • 在表单中输入监控项的参数

您也可以通过打开一个现有监控项,单击 Clone 按钮,然后以不同的名称保存来创建监控项。

配置

监控项选项卡包含监控项的一般属性。

所有必填字段均以红色星号标记。

参数 描述
名称 监控项名称。
支持用户宏。
类型 监控项类型。请参阅各个监控项类型部分。
键 监控项键(最多 2048 个字符)。
支持的监控项键可在各个监控项类型部分中找到。
在单个主机内,键必须唯一。
如果键类型为“Zabbix agent”、“Zabbix agent (active)”或“Simple check”,则键值必须受 Zabbix agent 或 Zabbix 服务器支持。
另请参阅正确的键格式。
信息类型 执行转换(如果有)后存储在数据库中的数据类型。
数值(无符号) - 64 位无符号整数。
请注意,如果整数监控项接收到浮点值,则会截去其小数部分。
数值(浮点) - 64 位浮点数。
此类型支持约 15 位精度,范围约为 -1.79E+308 至 1.79E+308(PostgreSQL 11 及更早版本除外)。
同时支持接收科学计数法表示的值,例如 1.23E+7、1e308、1.1E-4。
字符 - 短文本数据。
日志 - 长文本数据,可选日志相关属性(时间戳、来源、严重性、logeventid)。
文本 - 长文本数据。另请参阅文本数据限制。
二进制 - 二进制数(仅支持依赖监控项)。
在计算监控项公式或触发器表达式中,不支持返回二进制数据类型值的监控项。
对于仅以一种特定格式返回数据的监控项键,将自动选择匹配的信息类型。
主机接口 选择主机接口。在主机级别编辑监控项时,此字段可用。
单位 如果设置了单位符号,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 时)。请注意,只有具有超级管理员类型且拥有管理 > [常规](/manual/web_interface/frontend_sections/administration/general)或管理 > [Proxy](/manual/web_interface/frontend_sections/administration/proxies)前端部分权限的用户,才能看到超时链接。
历史数据 选择以下选项之一:
不存储 - 不存储监控项历史数据。适用于主监控项仅需由依赖监控项保留历史数据的情况。
此设置不能被全局 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 检查
  • Telnet 检查
  • JMX agent
  • 简单检查(icmpping*、vmware.* 监控项除外)
  • Zabbix 内部
  • 计算监控项
  • 外部检查
  • 数据库监控
  • HTTP agent
  • 脚本
  • 浏览器

要测试监控项,请点击监控项配置表单底部的 Test 按钮。

请注意,对于无法测试的监控项(例如主动式检查和排除在外的简单检查),Test 按钮将处于禁用状态。 当 StartHistoryPollers 配置参数设置为 0 时,无法测试计算监控项。

监控项测试表单包含必需的主机参数(主机地址、端口、使用服务器/proxy 测试(proxy 名称))以及监控项特定的详细信息(例如 SNMPv2 community 或 SNMPv3 安全凭据)。 这些字段具有上下文感知能力:

  • 如果可能,字段会预先填充。例如,对于需要 agent 的监控项,会从主机选定的 agent 接口中获取相关信息。
  • 模板监控项的字段必须手动填写。
  • 纯文本宏值会被解析。
  • 值(或值的一部分)为 secret 或 Vault 宏的字段为空,必须手动输入。 如果任何监控项参数包含 secret 宏值,则会显示以下警告消息:“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。 如果结果被截断,则会显示警告图标。 将鼠标悬停在警告图标上时,会显示警告描述。 请注意,超过 512KB 的数据仍会由 Zabbix 服务器完整处理。

如果配置不正确,则会显示描述可能原因的错误消息。

从主机成功获取的值也可用于测试预处理步骤。

表单按钮

表单底部的按钮可用于执行多项操作。

添加监控项。此按钮仅适用于新监控项。
更新监控项的属性。
根据当前监控项的属性创建另一个监控项。
立即执行检查以获取新的监控项值。仅支持被动检查(参见更多详细信息)。
注意,立即检查值时不会更新配置缓存,因此该值不会反映监控项配置最近的更改。
通过获取值来测试监控项配置是否正确。
删除监控项的历史记录和趋势数据。
删除监控项。
取消编辑监控项属性。

文本数据限制

文本数据限制取决于数据库后端。 在将文本值存储到数据库之前,会先将其截断,以符合数据库值类型限制:

Database Type of information
字符 日志 文本
MySQL 255 characters 65536 bytes 65536 bytes
PostgreSQL 255 characters 65536 characters 65536 characters
SQLite (only Zabbix proxy) 255 characters 65536 characters 65536 characters

自定义脚本限制

可用的自定义脚本长度取决于所使用的数据库:

数据库 字符数限制 字节数限制
MySQL 65535 65535
PostgreSQL 65535 不受限制
SQLite(仅 Zabbix proxy) 65535 不受限制

监控项超时

监控项超时指定 Zabbix 在将检查中止并判定为失败之前应等待多长时间。

当达到超时时间时,即使数据检索尚未完成,检查也会被中止。如果只收到部分数据,则该监控项会变为不受支持,并记录一条错误消息(例如,在 SNMP 检查中,如果多个 OID 里只有一个成功收集到数据)。

对于许多监控项类型,您可以设置灵活的监控项超时:

  • 单个监控项级别
  • 监控项类型级别(在 proxy 级别)
  • 监控项类型级别(在 全局 级别)

如果您希望为某个特定监控项指定更长的超时时间,同时保持其他监控项的超时时间较低,那么按单个监控项设置自定义超时会很有用。

超时优先级

  1. 单个监控项超时会覆盖任何其他超时设置。
  2. proxy 级别的超时会覆盖全局超时。

对于已设置灵活超时的检查,Zabbix 服务器 或 proxy 配置中的超时不起作用。

灵活超时支持

以下监控项类型支持灵活的监控项超时:

不支持的监控项

不支持的监控项会被报告为 不支持 状态,并且仍会按照其标准 更新间隔 重新检查。

如果由于某些原因无法获取监控项的值(例如连接错误、未配置用于处理该监控项的 poller),该监控项就会变为不支持。 此外,未接收到历史数据的监控项会一直保持 不支持 状态。 这是预期行为——只有在收到新的、有效的历史数据时,监控项才会转换为 正常 状态。

与问题一样,不支持的监控项也只会在收到新数据时重新评估——即使该监控项已经没有可用的历史数据。 换句话说,监控项和触发器仅在接收到新数据时才会改变状态。 不过,如果触发器表达式包含 日期和时间 和/或 nodata() 函数,则该触发器会每 30 秒重新计算一次(详情请参见 触发器计算时间)。