[comment]: # translation:outdated

[comment]: # ({6bb9f60f-6bb9f60f})
# > 监控项对象

以下对象直接调用 `item` API 进行操作。

[comment]: # ({/6bb9f60f-6bb9f60f})

[comment]: # ({d522db6b-385ac8b5})
### 监控项

::: 注意
无法直接通过 Zabbix API 创建、更新或删除 Web 监控项。
:::

监控项对象具有以下属性。

|属性|[类型](/manual/api/reference_commentary#data_types)|说明|
|--------|---------------------------------------------------|-----------|
|itemid|string|*（只读）* 监控项 ID。|
|**delay**<br>（必填）|string|更新监控项的时间间隔。接收秒或者带后缀的时间单位（30s、1m、2h、1d）。<br>可以通过 [自定义间隔](/manual/config/items/item/custom_intervals) 进行组合，从而更灵活的设置间隔时间。<br>多个间隔使用分号分隔。<br>可以使用用户宏。单个宏必须填充完整个字段。不支持字段中包含多个宏或文本混合宏。<br>通过编写由正斜杠分隔的两段宏能更加灵活地设置间隔时间 (e.g. `{$FLEX_INTERVAL}/{$FLEX_PERIOD}`).<br><br> Zabbix采集器，相关项监控和Zabbix agent（主动）可选 `mqtt.get` key。|
|**hostid**<br>（必填）|string|监控项所属的主机或模板的 ID。<br><br>更新操作中，此字段为*只读*。|
|**interfaceid**<br>（必填）|string|监控项主机接口的 ID。<br><br>仅用于主机监控项。对于Zabbix agent（主动），内部检查、采集器、可计算的监控项、相关项监控、数据库监控和脚本监控项是不需要的。|
|**key\_**<br>（必填）|string|监控项关键字。|
|**name**<br>（必填）|string|监控项名称。|
|**type**<br>（必要项）|integer|监控项类型。<br><br>可用值：<br>0 - Zabbix agent；<br>2 - zabbix 采集器；<br>3 - 简单检查；<br>5 - 内部检查；<br>7 - Zabbix agent (主动)；<br>9 - web 监控项；<br>10 - 外部检查；<br>11 - 数据库监控；<br>12 - IPMI agent；<br>13 - SSH agent；<br>14 - Telnet agent；<br>15 - 可计算的监控；<br>16 - JMX agent；<br>17 - SNMP trap；<br>18 - 相关项监控；<br>19 - HTTP agent；<br>20 - SNMP agent；<br>21 - 脚本。|
|**url**<br>（必填）|string|URL 字符串，用于 HTTP agent 监控项类型。支持用户宏 {HOST.IP}、{HOST.CONN}、{HOST.DNS}、{HOST.HOST}、{HOST.NAME}、{ITEM.ID}、{ITEM.KEY}。|
|**value\_type**<br>（必填）|integer|监控项数据类型<br><br>可用值：<br>0 - 浮点型；<br>1 - 字符；<br>2 - 日志；<br>3 - 无符号数字；<br>4 - 文本。|
|allow\_traps|integer|HTTP agent 监控项字段。也允许在采集器监控项中填充值。<br><br>0 - *（默认）* 不允许接受传入数据。<br>1 - 允许接受传入数据。|
|authtype|integer|仅 SSH agent 监控项或 HTTP agent 监控项使用。<br><br>SSH agent 身份验证方法可用值：<br>0 - *（默认）* 密码；<br>1 - 公钥。<br><br>HTTP agent 身份验证方法可用值：<br>0 - *（默认）* 无认证；<br>1 - basic 认证；<br>2 - NTLM 认证<br>3 - Kerberos 认证；|
|description|string|监控项说明。|
|error|string|*（只读）* 如果更新监控项时报错，则显示错误信息。|
|flags|integer|*（只读）* 监控项来源<br><br>可用值：<br>0 - 平台监控项；<br>4 - 发现监控项。|
|follow\_redirects|integer|HTTP agent 监控项字段。在合并数据时遵循响应重定向。<br><br>0 - 不遵循重定向；<br>1 - *（默认）* 遵循重定向。|
|headers|object|HTTP agent 监控项字段。具有 HTTP（S）请求头的对象，其中请求头名用作键，请求头值用作值。<br><br>示例：<br>{ "User-Agent": "Zabbix" }|
|history|string|历史数据应保留多长时间的单位。同样接受用户宏。<br><br>默认： 90天。|
|http\_proxy|string|HTTP agent 监控项字段。HTTP（S）agent 连接字符串。|
|inventory\_link|integer|由监控项填充的主机资产字段的 ID。<br><br>请参阅 [主机资产清单页](/manual/api/reference/host/object#host_inventory) ，了解更多受支持的主机资产清单字段及其 ID 列表。<br><br>默认： 0。|
|ipmi\_sensor|string|IPMI 传感器。仅用于 IPMI 监控项。|
|jmx\_endpoint|string|JMX agent 自定义连接字符串。<br><br>默认值：<br>service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi|
|lastclock|timestamp|*（只读）* 上一次更新监控项的时间。<br><br>默认情况下，仅显示过去24小时内的值。您可以通过更改 *[管理 → 通用](/manual/web_interface/frontend_sections/administration/general#gui)* 菜单中的 *最大历史显示周期* 参数值来延长此时间段。|
|lastns|integer|*（只读）* 上一次更新监控项时的纳秒数。<br><br>默认情况下，仅显示过去24小时内的值。您可以通过更改 *[管理 → 通用](/manual/web_interface/frontend_sections/administration/general#gui)* 菜单中的 *最大历史显示周期* 参数值来延长此时间段。|
|lastvalue|string|*（只读）* 监控项最后获取的值。<br><br>默认情况下，仅显示过去24小时内的值。您可以通过更改 *[管理 → 通用](/manual/web_interface/frontend_sections/administration/general#gui)* 菜单中的 *最大历史显示周期* 参数值来延长此时间段。|
|logtimefmt|string|日志条目中的时间格式。仅日志监控项使用。|
|master\_itemid|integer|主监控项 ID。<br>最多允许递归 3 个相关项监控，且相关监控项的最大计数为 29999。<br><br>相关监控项的先决条件。|
|output\_format|integer|HTTP agent 监控项字段。将响应转换为 JSON 格式。<br><br>0 - *（默认）* 原格式；<br>1 - 转换为 JSON 格式。|
|params|string|其他参数取决于监控项的类型：<br>- SSH 和 Telnet agent 的可执行脚本；<br>- 数据库监控项的 SQL 查询；<br>- 可计算监控项的公式；<br>- 脚本监控项的脚本。|
|parameters|array|脚本监控项的其他参数。具有 “名称” 和 “值” 属性的对象数组，其中名称必须唯一。|
|password|string|验证密码。用于一般检查、SSH、Telnet、数据库监控、JMX 和 HTTP agent 监控项。<br>当 JMX 使用时，用户名应与密码一起指定，或者两个属性都留空。|
|post\_type|integer|HTTP agent 监控项字段。Posts 属性中存储的 post 数据体的类型。<br><br>0 - *（默认）* 原始数据；<br>2 - JSON 数据；<br>3 - XML 数据。|
|posts|string|HTTP agent 监控项字段。HTTP（S）请求正文数据。与 post\_type 一同使用。|
|prevvalue|string|*（只读）* 监控项的上一个值。<br><br>默认情况下，仅显示过去24小时内的值。您可以通过更改 *[管理 → 通用](/manual/web_interface/frontend_sections/administration/general#gui)* 菜单中的 *最大历史显示周期* 参数值来延长此时间段。|
|privatekey|string|私钥文件的名称。|
|publickey|string|公钥文件的名称。|
|query\_fields|array|HTTP agent 监控项字段。查询参数。具有 “键”：“值” 对的对象数组，其中值可以是空字符串。|
|request\_method|integer|HTTP agent 监控项字段。请求方法类型：<br><br>0 - *（默认）* GET；<br>1 - POST；<br>2 - PUT；<br>3 - HEAD。|
|retrieve\_mode|integer|HTTP agent 监控项字段。具体存储响应的部分。<br><br>0 - *（默认）* Body；<br>1 - Headers；<br>2 - Body and headers。<br><br>对于 request\_method HEAD 仅允许方法 1。|
|snmp\_oid|string|SNMP OID。|
|ssl\_cert\_file|string|HTTP agent 监控项字段。SSL 公钥文件路径。|
|ssl\_key\_file|string|HTTP agent 监控项字段。SSL 私钥文件路径。|
|ssl\_key\_password|string|HTTP agent 监控项字段。SSL 密钥文件的密码。|
|state|integer|*（只读）* 监控项状态。<br><br>可用值：<br>0 - *（默认）* 标准；<br>1 - 不受支持。|
|status|integer|监控项状态。<br><br>可用值：<br>0 - *（默认）* 启用监控项；<br>1 - 禁用监控项。|
|status\_codes|string|HTTP agent 监控项字段。目标HTTP状态代码的范围，用逗号分隔。还支持将用户宏作为逗号分隔列表的一部分。<br><br>示例： 200,200-{$M},{$M},200-400|
|templateid|string|*（只读）* 父模板监控项的 ID。<br><br>*提示*：使用  `hostid` 属性指定监控项所属的模板。|
|timeout|string|监控项数据轮询请求超时。用于 HTTP agent 和脚本监控项。支持用户宏。<br><br>默认：3秒。<br>最大值：60秒。|
|trapper\_hosts|string|允许的主机。采集器监控项或 HTTP agent 监控项使用。|
|trends|string|趋势数据应保留多长时间的单位。可接受用户宏。<br><br>默认：365天。|
|units|string|值的单位。|
|username|string|用于身份验证的用户名。用于一般检查、SSH、Telnet、数据库监控项、JMX 和 HTTP agent 监控项。<br><br>SSH 和 Telnet 监控项先决条件。<br>当 JMX 使用时，用户名应与密码一起指定，或者两个属性都留空。|
|uuid|string|通用唯一标识符，用于将导入的监控项链接到现有监控项。仅模板包含项目使用。如果未指定会自动生成。<br><br>对于更新操作，此字段为 *只读*。|
|valuemapid|string|关联值映射 ID。|
|verify\_host|integer|HTTP agent 监控项字段。验证 URL 中的主机名是否位于主机证书的公用名字段或使用者备用名字段中。<br><br>0 - *（默认）* 不验证；<br>1 - 验证。|
|verify\_peer|integer|HTTP agent 监控项字段。验证主机证书的真实性。<br><br>0 - *（默认）* 不验证；<br>1 - 验证。|
注意，对于某些方法（更新、删除），必需/可选参数组合是不同的。

[comment]: # ({/d522db6b-385ac8b5})

[comment]: # ({e8d7c2fd-c1b98afa})
### 监控项标签

监控项标签对象具有以下属性。

|属性|[类型](/manual/api/reference_commentary#data_types)|描述|
|--------|---------------------------------------------------|-----------|
|**tag**<br>（必需）|string|监控项标签名称。|
|value|string|监控项标签值。|

[comment]: # ({/e8d7c2fd-c1b98afa})

[comment]: # ({1c134a09-2169bb78})
### 监控项预处理

监控项预处理对象具有以下属性。

|属性|[类型](/manual/api/reference_commentary#data_types)|说明|
|--------|---------------------------------------------------|-----------|
|**type**<br>（必要)|integer（整数）|预处理选项类型。<br><br>可用值：<br>1 - Custom multiplier（自定义乘数）；<br>2 - Right trim（移除右侧空白字符）；<br>3 - Left trim（移除左侧空白字符）；<br>4 - Trim（移除空白字符）；<br>5 - Regular expression matching（正则表达式匹配）；<br>6 - Boolean to decimal（布尔值转换十进制）；<br>7 - Octal to decimal（八进制转换十进制）；<br>8 - Hexadecimal to decimal（十六进制转十进制）；<br>9 - Simple change（先前值到新值的基本变化）；<br>10 - Change per second（每秒钟变化量）；<br>11 - XML XPath（XML 解析）；<br>12 - JSONPath（JSON解析）；<br>13 - In range（生成序列）；<br>14 - Matches regular expression（匹配正则表达式）；<br>15 - Does not match regular expression（不匹配正则表达式）；<br>16 - Check for error in JSON（检查 JSON 错误）；<br>17 - Check for error in XML（检查 XML 错误）；<br>18 - Check for error using regular expression（检查正则表达式使用错误）；<br>19 - Discard unchanged（丢弃重复数据）；<br>20 - Discard unchanged with heartbeat（设置心跳检查周期，丢弃重复数据）；<br>21 - JavaScript（JS格式）；<br>22 - Prometheus pattern（Prometheus 模式）；<br>23 - Prometheus to JSON（Prometheus 转换 JSON）；<br>24 - CSV to JSON（CSV 转换 JSON）；<br>25 - Replace（替换）；<br>26 - Check unsupported（检查不支持的值）；<br>27 - XML to JSON（XML 转换 JSON）。|
|**params**<br>（必要）|预处理选项使用的其他参数。多个参数由LF（\\n）字符分隔。|
|**error\_handler**<br>（必要）|integer（整数）|预处理步骤失败时使用的操作类型：<br><br>可用值：<br>0 - Error message is set by Zabbix server（Zabbix 服务器自带错误消息）；<br>1 - Discard value（丢弃值）；<br>2 - Set custom value（设置自定义值）；<br>3 - Set custom error message（设置自定义错误信息）。|
|**error\_handler\_params**<br>（必要)|（字符串）|错误处理器参数。与 `error_handler` 搭配使用。<br><br>如果 `error_handler` 类型为 0 或 1，此值必须为空。<br>如果 `error_handler` 类型为 2，此值可以为空。<br>如果 `error_handler` 类型为 3，此值不能为空。|

预处理类型均支持以下参数和错误处理器。

|预处理类型|名称|参数 1|参数 2|参数 3|支持的错误处理器|
|------------------|----|-----------|-----------|-----------|------------------------|
|1|Custom multiplier（自定义倍数）|number^1,\ 6^（数字型）|<|<|0, 1, 2, 3|
|2|Right trim（移除右侧空白字符）|list of characters^2^（字符列表）|<|<|<|
|3|Left trim（移除左侧空白字符）|list of characters^2^（字符列表）|<|<|<|
|4|Trim（移除空白字符）|list of characters^2^（字符列表）|<|<|<|
|5|Regular expression（正则表达式）|pattern^3^（模式）|output^2^（输出）|<|0, 1, 2, 3|
|6|Boolean to decimal（布尔值转换十进制）|<|<|<|0, 1, 2, 3|
|7|Octal to decimal（八进制转换十进制）|<|<|<|0, 1, 2, 3|
|8|Hexadecimal to decimal（十六进制转十进制）|<|<|<|0, 1, 2, 3|
|9|Simple change（先前值到新值的基本变化）|<|<|<|0, 1, 2, 3|
|10|Change per second（每秒钟变化量）|<|<|<|0, 1, 2, 3|
|11|XML XPath（XML 解析）|path^4^（解析）|<|<|0, 1, 2, 3|
|12|JSONPath（JSON解析）|path^4^（解析）|<|<|0, 1, 2, 3|
|13|In range（生成序列）|min^1,\ 6^（最小值）|max^1,\ 6^（最大值）|<|0, 1, 2, 3|
|14|Matches regular expression（匹配正则表达式）|pattern^3^（模式）|<|<|0, 1, 2, 3|
|15|Does not match regular expression（不匹配正则表达式）|pattern^3^（模式）|<|<|0, 1, 2, 3|
|16|Check for error in JSON（检查 JSON 错误）|path^4^（解析）|<|<|0, 1, 2, 3|
|17|Check for error in XML（检查 XML 错误）|path^4^（解析）|<|<|0, 1, 2, 3|
|18|Check for error using regular expression（检查正则表达式使用错误）|pattern^3^（模式）|output^2^（输出）|<|0, 1, 2, 3|
|19|Discard unchanged（丢弃重复数据）|<|<|<|<|
|20|Discard unchanged with heartbeat（设置心跳检查周期，丢弃重复数据）|seconds^5,\ 6^（秒）|<|<|<|
|21|JavaScript（JS格式）|script^2^|<|<|<|
|22|Prometheus pattern（Prometheus 模式）|pattern^6,\ 7^（模式）|`value`, `label`, `function`|output^8,\ 9^（输出）|0, 1, 2, 3|
|23|Prometheus to JSON（Prometheus 转换 JSON）|pattern^6,\ 7^（模式）|<|<|0, 1, 2, 3|
|24|CSV to JSON（CSV 转换 JSON）|character^2^（字符）|character^2^（字符）|0,1|0, 1, 2, 3|
|25|Replace（替换）|search string^2^（查找字符串）|replacement^2^（替换）|<|<|
|26|Check unsupported（检查不支持的值）|<|<|<|1, 2, 3|
|27|XML to JSON（XML 转换 JSON）|<|<|<|0, 1, 2, 3|

^1^ 整数或浮点数\
^2^ 字符串\
^3^ 正则表达式\
^4^ JSONPath 或 XML XPath 解析\
^5^ 正整数（支持时间后缀，例如：30s、1m、2h、1d）\
^6^ 用户宏\
^7^ Prometheus 模式遵循以下语法：`<metric name>{<label name>="<label value>", ...} == <value>`。Prometheus 每个模式组件（metric, label name, label value and metric value）都可以是用户宏。\
^8^ 如果第二个参数选择 `label`，则 Prometheus 输出遵循以下语法：`<label name>`（可以是用户宏）\
^9^ 如果第二个参数选择 `function`，则相对应以下聚合函数：`sum`、`min`、`max`、`avg`、`count`。\

[comment]: # ({/1c134a09-2169bb78})
