前置规则
- 基础返回字段 :
output: ["字段1","字段2"]指定;output: "extend"返回该对象全部基础字段 - 关联子数据 :必须加
selectXXX参数才会返回嵌套数组(主机接口、监控项、触发器、资产、标签等),不同步就不要写,减少数据量 - 所有ID均为字符串格式;时间字段为 Unix 时间戳(秒);状态/类型全是数字枚举
一、主机 host.get(最常用同步源)
1. 主机基础字段(不加select也能返回)
| 字段 | 说明 |
|---|---|
| hostid | 主机唯一主键ID(关联监控项/触发器/事件) |
| host | 主机短标识名(agent配置里的Hostname) |
| name | 主机显示别名(前端展示名) |
| status | 0=启用监控,1=禁用主机 |
| proxy_hostid | 代理ID,0=无代理 |
| description | 主机备注描述 |
| available | Agent可用性:0未知/1可用/2不可用 |
| disable_until | 采集暂停到哪个时间戳 |
| error | Agent采集错误信息 |
| maintenanceid | 当前维护时段ID,0=无维护 |
| maintenance_status | 0不在维护,1维护中 |
| maintenance_type | 0维护仍采集,1维护停止采集 |
| snmp_available / jmx_available / ipmi_available | 对应采集方式可用性 |
| snmp_error / jmx_error / ipmi_error | 对应采集报错文本 |
| tls_connect / tls_accept | TLS加密配置标识 |
| flags | 0普通主机,4LLD自动发现主机 |
| parent_hostid | LLD父主机原型ID |
2. 必须通过 select 开启才能同步的嵌套参数
selectInterfaces: ["interfaceid","ip","dns","port","type","main","useip"]
主机采集接口数组:- type:1 Agent / 2 SNMP /3 IPMI /4 JMX
- main=1 为主采集接口;useip=1 使用IP连接
selectGroups: ["groupid","name"]所属主机组ID+组名selectParentTemplates: ["templateid","host"]绑定模板ID+模板名称selectMacros: ["macro","value"]主机自定义宏 {$XXX}selectInventory: "extend"资产清单(硬件、机房、序列号、系统、负责人)selectTags: ["tag","value"]主机标签(用于业务分类过滤)selectInheritedTags从模板继承的标签selectItems主机下所有监控项(不建议同步主机时带,单独item.get拉取)selectTriggers主机下所有触发器(单独trigger.get拉取更高效)
二、监控项 item.get(指标数据同步核心)
基础字段
| 字段 | 含义 |
|---|---|
| itemid | 监控项唯一ID |
| hostid | 归属主机ID |
| name | 监控项显示名称 |
| name_resolved | 宏全部展开后的完整名称 |
| key_ | 监控项采集键(核心标识 system.cpu.load\[\]) |
| type | 采集类型枚举:0Agent/2SNMP/5Trapper/15计算型/19HTTP代理 |
| value_type | 数据类型:0浮点/1字符/2日志/3无符号整数/4文本 |
| status | 0启用采集,1禁用 |
| delay | 采集间隔(30s/1m/5m) |
| units | 单位 % s GB ms |
| history | 历史数据保留时长 |
| trends | 趋势数据保留时长 |
| lastclock | 最后一次取值时间戳 |
| lastvalue | 最新采集值 |
| prevvalue | 上一次采集值 |
| state | 0正常,1采集报错 |
| error | 采集失败错误文本 |
| flags | 0普通监控项,4LLD生成监控项 |
| templateid | 模板监控项来源ID,0为主机独立监控项 |
| url | HTTP监控项采集地址 |
select 关联同步字段
selectHosts:关联主机信息 hostid / host / nameselectPreprocessing: "extend":预处理规则(正则、JSON路径、聚合)selectTags:监控项标签selectValueMap:值映射(0=关闭,1=开启)selectDiscoveryRule:LLD自动发现规则信息
三、触发器 trigger.get(告警规则同步)
基础字段
| 字段 | 说明 |
|---|---|
| triggerid | 触发器主键ID |
| description | 告警名称 |
| expression | 告警判断表达式 {host:key.last()}>90 |
| comments | 告警备注、处理建议 |
| priority | 告警等级:0未分类/1信息/2警告/3一般/4高/5灾难 |
| status | 0启用,1禁用 |
| value | 当前状态:0正常,1故障(问题) |
| state | 0表达式正常,1表达式错误 |
| flags | 0普通触发器,4LLD生成 |
| templateid | 模板触发器ID |
| type | 0单次告警,1重复告警 |
| recovery_expression | 恢复条件表达式 |
select 关联字段
selectHosts:关联主机ID、主机名selectItems:触发器绑定的监控项列表selectTags:告警标签(用于告警分级/路由)selectFunctions:表达式内函数信息
四、事件 event.get(实时告警事件同步)
基础同步字段(告警推送必拉)
| 字段 | 含义 |
|---|---|
| eventid | 事件唯一ID(告警流水号) |
| source | 事件源:0触发器/1发现/2自动注册/3内部事件/4服务 |
| object | 对象类型:0触发器/1主机/2监控项/3LLD规则 |
| objectid | 对应triggerid/hostid/itemid |
| clock | 事件发生时间戳 |
| ns | 纳秒(精确时间) |
| value | 1=产生故障,0=故障恢复 |
| name | 事件标题(和触发器名称一致) |
| severity | 事件等级,同trigger priority |
| acknowledged | 0未确认,1已确认告警 |
| r_eventid | 恢复事件ID(故障恢复时回填) |
| c_eventid | 关联问题事件ID(恢复事件携带) |
select 关联
selectHosts:关联主机信息selectTriggers:完整触发器详情selectRelatedObject:绑定的触发器/主机完整对象
五、主机组 hostgroup.get(分组同步)
基础字段(无嵌套)
- groupid:分组ID
- name:分组名称
- flags:0自定义组,4系统内置组
select关联:selectHosts 分组下所有主机ID列表
六、模板 template.get(监控模板同步)
基础字段
- templateid:模板ID
- host:模板名称
- description:模板备注
- status:0启用,1禁用
select可同步:selectItems、selectTriggers、selectGraphs、selectMacros、selectTags
七、LLD自动发现规则 discoveryrule.get
- druleid:LLD规则ID
- hostid:归属主机
- name:规则名称
- key_:LLD采集键
- type:采集类型
- delay:发现间隔
- status:启用/禁用
- filters:发现过滤条件
- selectOverrides:LLD覆盖规则
八、通用辅助同步对象(按需拉取)
- 告警媒介 media.get:媒介ID、类型(邮件/钉钉/短信)、发送参数
- 用户 user.get:用户ID、用户名、角色、告警接收权限
- 动作 action.get:告警路由动作、触发条件、发送媒介、接收用户
- 图形 graph.get:监控图表、绑定监控项、绘图线条配置
- 历史数据 history.get / trends.get:指标时序值(只读,用于数据大屏同步)
同步实操关键要点 Zabbix7.4 特有
- 7.4 废弃旧批量接口 :
host.massupdate不再推荐,统一用host.update数组批量操作 - 永久API Token认证 :请求头
Authorization: Bearer xxx,无需每次调用user.login - 同步性能优化
- 禁止
output: "extend",只写业务需要的字段 - 关联
selectXXX按需开启,不同步子数据不要携带 - 大批量同步使用
limit+offset分页,单次不要超过1000条
- 禁止
- 只读字段:
lastvalue、error、available、clock等采集状态字段仅能查询,无法通过API修改
同步常用极简请求模板(主机+监控项+告警三类)
1. 同步主机(仅业务关键字段)
json
{
"jsonrpc":"2.0",
"method":"host.get",
"params":{
"output":["hostid","host","name","status","proxy_hostid"],
"selectInterfaces":["ip","port","type"],
"selectGroups":["groupid","name"],
"selectTags":["tag","value"],
"filter":{"status":0},
"limit":500
},
"auth":"你的token",
"id":1
}
2. 同步监控项
json
{
"jsonrpc":"2.0",
"method":"item.get",
"params":{
"output":["itemid","hostid","name","key_","value_type","status","lastvalue"],
"selectHosts":["hostid","host","name"],
"limit":1000
},
"auth":"你的token",
"id":2
}
3. 同步未恢复告警事件
json
{
"jsonrpc":"2.0",
"method":"event.get",
"params":{
"output":["eventid","objectid","clock","name","value","severity","acknowledged"],
"source":0,
"object":0,
"filter":{"value":1},
"selectTriggers":["description","priority"],
"selectHosts":["hostid","name"]
},
"auth":"你的token",
"id":3
}