基于Zabbix数据呈现开发

1、概述

        文章基于zabbix 5 编写,zabbix发音:[`zæbiks],中文发音:日阿(ra)贝克斯。

        zabbix中文官方文档,链接(Zabbix 手册)。里面含有介绍,安装,配置,以及API接口文档。

        本文只是基于数据呈现的开发,所以安装、配置都不在文章主要讨论范围内;我会将主要表以及一些说明文档备注在本次文档中。

        本人不是网管,对IPMI,SNMP这些协议不是太了解,文章中有解释不正确的,请各位斧正,谢谢!

        原创不易,转载请注明出处 https://blog.youkuaiyun.com/weixin_41006749/article/details/122376850

2、采集协议

Zabbix原生支持4种协议,可以通过协议是否正常来判断故障与否。如下:

  1. ZBX -> Zabbix Client模式
  2. SNMP -> 简单网络协议
  3. JMX -> JMX协议
  4. IPMI -> IPMI协议

除了原生协议支持外,还可以配置 http ,odbc 等协议来采集数据。

-- 通过tcp检查应用程序是否在线
-- 语法格式:net.tcp.service[协议,"主机","端口")]
-- 协议:ssh|ldap|smtp|ftp|http|pop|nntp|imap|tcp|https|telnet
-- 主机:可为空
-- 端口:可为空
-- 示例:items.key_ = net.tcp.service[http,"10.72.234.38","81"]

3、开发中几个查询SQL

-- 聚合图形查询视图
CREATE VIEW v_hostscreens AS 
SELECT t.hostid, t.templateid, s.screenid
FROM screens s
INNER JOIN (
	WITH recursive cte (hostid, templateid) AS (
	SELECT ht.hostid, ht.templateid
	FROM hosts_templates ht 
	INNER JOIN `hosts` h ON h.hostid = ht.hostid AND h.`status` IN (0,1) AND h.flags IN (0,4)
	UNION
	SELECT cte.hostid, ht.templateid
	FROM hosts_templates ht, cte
	WHERE ht.hostid = cte.templateid
	) SELECT templateid, hostid FROM cte ORDER BY hostid
) t ON t.templateid = s.templateid;
-- 图表视图查询
CREATE VIEW v_hostgraphs AS 
SELECT DISTINCT i.hostid, g.graphid
FROM graphs g
INNER JOIN graphs_items gi ON gi.graphid = g.graphid
INNER JOIN items i ON i.itemid = gi.itemid 
WHERE g.flags IN (0, 4);
-- 主机问题视图
CREATE VIEW v_hostproblems AS 
SELECT DISTINCT i.hostid, i.itemid, i.`name` itemname, i.key_, p.eventid, p.objectid, p.clock, p.`name`, p.severity
FROM problem p
INNER JOIN functions f ON f.triggerid = p.objectid
INNER JOIN items i ON i.itemid = f.itemid 
WHERE p.`source`='0' AND p.`object`='0' AND p.r_eventid IS NULL 
AND NOT EXISTS (SELECT NULL FROM event_suppress es WHERE es.eventid=p.eventid);

-- 去除依赖后的主机问题
CREATE VIEW v_hostproblemdepends AS (
    WITH recursive cte AS (
	    SELECT hp.hostid, hp.objectid triggerid_down, d.triggerid_up, IF(hp1.objectid IS NULL, NULL, 1) has_up 
	    FROM v_hostproblems hp
	    LEFT JOIN trigger_depends d ON d.triggerid_down = hp.objectid
	    LEFT JOIN v_hostproblems hp1 ON hp1.hostid = hp.hostid AND hp1.objectid = d.triggerid_up AND hp1.objectid != hp.objectid
        UNION 
	    SELECT c.hostid, d.triggerid_down, d.triggerid_up, IF(hp1.objectid IS NULL, NULL, 1) has_up
	    FROM trigger_depends d
	    INNER JOIN cte c ON d.triggerid_down = c.triggerid_up
	    LEFT JOIN v_hostproblems hp1 ON hp1.hostid = c.hostid AND hp1.objectid = d.triggerid_up AND hp1.objectid != c.triggerid_up
    ) 
    SELECT * FROM cte
);

正则表达式作用:查询通过非 ZBX/SNMP/JMX/IMPI协议的应用程序是否在线 '^net\\.tcp\\.service\\[\\s*(ssh|ldap|smtp|ftp|http|pop|nntp|imap|tcp|https|telnet)\\s*(,\\s*[^,\\]]*){0,2}\\]$' 

-- 主机查询
SELECT
    h.hostid,
    h.`name`,
    h.`host`,
    h.`status`,

    JSON_OBJECT(
        'available', h.available,
        'errors_from', DATE_FORMAT(FROM_UNIXTIME(IF(h.errors_from = 0, NULL, h.errors_from)), '%Y-%m-%d %h:%i:%s'),
        'error', h.`error`,
        'snmp_available', h.snmp_available,
        'snmp_errors_from', DATE_FORMAT(FROM_UNIXTIME(IF(h.snmp_errors_from = 0, NULL, h.snmp_errors_from)), '%Y-%m-%d %h:%i:%s'),
        'snmp_error', h.snmp_error,
        'jmx_available', h.jmx_available,
        'jmx_errors_from', DATE_FORMAT(FROM_UNIXTIME(IF(h.jmx_errors_from=0, NULL, h.jmx_errors_from)), '%Y-%m-%d %h:%i:%s'),
        'jmx_error', h.jmx_error,
        'ipmi_available', h.ipmi_available,
        'ipmi_errors_from', DATE_FORMAT(FROM_UNIXTIME(IF(h.ipmi_errors_from = 0, NULL, h.ipmi_errors_from)), '%Y-%m-%d %h:%i:%s'),
        'ipmi_error', h.ipmi_error,
        'tcp_available', CASE WHEN i1.itemid IS NOT NULL AND e.clock IS NOT NULL THEN 2 WHEN i1.itemid IS NOT NULL THEN 1 ELSE 0 END,
        'tcp_errors_from', DATE_FORMAT(FROM_UNIXTIME(CASE WHEN e.clock IS NOT NULL THEN e.clock ELSE NULL END), '%Y-%m-%d %h:%i:%s'),
        'tcp_error', CASE WHEN e.clock IS NOT NULL THEN e.`name` ELSE NULL END
    ) as availableJson,

    i.ip AS interfaces,                      -- 接口
    COUNT(DISTINCT g.graphid) AS `graphs`,                          -- 图表数量

    COUNT(DISTINCT p.eventid) AS `problems`,
    COUNT(DISTINCT IF(p.severity = 0, p.eventid, NULL)) severity0,	-- 未分级
    COUNT(DISTINCT IF(p.severity = 1, p.eventid, NULL)) severity1,	-- 信息
    COUNT(DISTINCT IF(p.severity = 2, p.eventid, NULL)) severity2,	-- 警告
    COUNT(DISTINCT IF(p.severity = 3, p.eventid, NULL)) severity3,	-- 一般严重
    COUNT(DISTINCT IF(p.severity = 4, p.eventid, NULL)) severity4,	-- 严重
    COUNT(DISTINCT IF(p.severity = 5, p.eventid, NULL)) severity5	-- 灾难
FROM `hosts` h
INNER JOIN hosts_groups hg ON hg.hostid = h.hostid
INNER JOIN hstgrp grp ON grp.groupid = hg.groupid -- AND grp.`name` IN ( :{groupNames} )
INNER JOIN lateral (
    SELECT i.hostid, i.ip, i.`port` FROM interface i WHERE i.hostid = h.hostid LIMIT 1
) i ON i.hostid = h.hostid
LEFT JOIN lateral (
    SELECT e.hostid, e.clock, e.`name` FROM v_hostproblems e
    WHERE e.hostid = h.hostid AND e.`key_` REGEXP '^net\\.tcp\\.service\\[\\s*(ssh|ldap|smtp|ftp|http|pop|nntp|imap|tcp|https|telnet)\\s*(,\\s*[^,\\]]*){0,2}\\]$'
    ORDER BY e.clock DESC LIMIT 1
) e ON e.hostid = h.hostid
LEFT JOIN lateral (
    SELECT i.hostid, i.itemid FROM items i
    WHERE i.hostid = h.hostid AND i.`key_` REGEXP '^net\\.tcp\\.service\\[\\s*(ssh|ldap|smtp|ftp|http|pop|nntp|imap|tcp|https|telnet)\\s*(,\\s*[^,\\]]*){0,2}\\]$'
    LIMIT 1
) AS i1 ON i1.hostid = h.hostid
LEFT JOIN v_hostgraphs g ON g.hostid = h.hostid
LEFT JOIN v_hostproblems p ON p.hostid = h.hostid AND NOT EXISTS (
    SELECT NULL FROM v_hostproblemdepends t WHERE t.hostid = p.hostid AND t.triggerid_down = p.objectid AND t.has_up = 1
)
LEFT JOIN v_hostscreens s ON s.hostid = h.hostid
WHERE h.`status` IN (0, 1) AND h.flags IN (0, 4) -- AND h.`name` LIKE :{hostname}
GROUP BY h.hostid, e.clock, e.`name`, i.ip, i1.itemid
ORDER BY h.`name`
-- 查询监控项
SELECT  i.itemid,
        i.`type`,
        i.hostid,
        i.`name`,
        i.key_,
        i.delay,
        i.`history`,
        i.`trends`,
        i.`status`,
        i.value_type,
        i.units,
        i.description,

        ir.state,
        ir.`error`,
        IFNULL(a.applicationid, -1) AS applicationid,
        IFNULL(a.`name`, '- other -') AS application_name,
        COUNT(i.itemid) OVER(PARTITION BY a.applicationid) AS application_count
FROM items i
LEFT JOIN item_rtdata ir ON i.itemid = ir.itemid
LEFT JOIN items_applications ia ON ia.itemid = i.itemid
LEFT JOIN applications a ON a.applicationid = ia.applicationid AND a.hostid = i.hostid
WHERE i.flags IN (0,4) AND i.`status` = 0 
-- AND i.hostid = 10450
ORDER BY a.`name` IS NULL, a.`name`, i.`name`
LIMIT 0, 50;


-- 监控项最新数据查询
-- value_type = 0, history 浮点类型的监控项查询
SELECT  t.itemid, FROM_UNIXTIME(IF(h.clock > 0, h.clock, NULL)) clock,
    CASE WHEN m.newvalue IS NOT NULL THEN CONCAT(m.newvalue, ' (', h.`value`, ')') ELSE h.`value` END `value`
FROM (
    SELECT i.itemid, i.valuemapid, MAX(h.clock) max_clock
    FROM items i
    LEFT JOIN history h ON h.itemid = i.itemid
    WHERE i.flags IN (0,4) AND i.`status` = 0 AND i.value_type = 0 AND i.itemid IN ( 29163 )
    GROUP BY i.itemid
) t
LEFT JOIN history h ON h.itemid = t.itemid AND h.clock = t.max_clock
LEFT JOIN mappings m ON m.valuemapid = t.valuemapid AND m.`value` = h.`value`

UNION

-- value_type = 1, history_str 字符类型的监控项查询
SELECT  t.itemid, FROM_UNIXTIME(IF(h.clock > 0, h.clock, NULL)) clock,
    CASE WHEN m.newvalue IS NOT NULL THEN CONCAT(m.newvalue, ' (', h.`value`, ')') ELSE h.`value` END `value`
FROM (
    SELECT i.itemid, i.valuemapid, MAX(h.clock) max_clock
    FROM items i
    LEFT JOIN history_str h ON h.itemid = i.itemid
    WHERE i.flags IN (0,4) AND i.`status` = 0 AND i.value_type = 1 AND i.itemid IN ( 29163 )
    GROUP BY i.itemid
) t
LEFT JOIN history_str h ON h.itemid = t.itemid AND h.clock = t.max_clock
LEFT JOIN mappings m ON m.valuemapid = t.valuemapid AND m.`value` = h.`value`

UNION

-- value_type = 2, history_log 日志类型的监控项查询
SELECT  t.itemid, FROM_UNIXTIME(IF(h.clock > 0, h.clock, NULL)) clock,
    CASE WHEN m.newvalue IS NOT NULL THEN CONCAT(m.newvalue, ' (', h.`value`, ')') ELSE h.`value` END `value`
FROM (
    SELECT i.itemid, i.valuemapid, MAX(h.clock) max_clock
    FROM items i
    LEFT JOIN history_log h ON h.itemid = i.itemid
    WHERE i.flags IN (0,4) AND i.`status` = 0 AND i.value_type = 2 AND i.itemid IN ( 29163 )
    GROUP BY i.itemid
) t
LEFT JOIN history_log h ON h.itemid = t.itemid AND h.clock = t.max_clock
LEFT JOIN mappings m ON m.valuemapid = t.valuemapid AND m.`value` = h.`value`

UNION

-- value_type = 3, history_uint 无符号整数类型的监控项查询
SELECT  t.itemid, FROM_UNIXTIME(IF(h.clock > 0, h.clock, NULL)) clock,
    CASE WHEN m.newvalue IS NOT NULL THEN CONCAT(m.newvalue, ' (', h.`value`, ')') ELSE h.`value` END `value`
FROM (
    SELECT i.itemid, i.valuemapid, MAX(h.clock) max_clock
    FROM items i
    LEFT JOIN history_uint h ON h.itemid = i.itemid
    WHERE i.flags IN (0,4) AND i.`status` = 0 AND i.value_type = 3 AND i.itemid IN ( 29163 )
    GROUP BY i.itemid
) t
LEFT JOIN history_uint h ON h.itemid = t.itemid AND h.clock = t.max_clock
LEFT JOIN mappings m ON m.valuemapid = t.valuemapid AND m.`value` = h.`value`

UNION

-- value_type = 4, history_text 文本类型的监控项查询
SELECT  t.itemid, FROM_UNIXTIME(IF(h.clock > 0, h.clock, NULL)) clock,
    CASE WHEN m.newvalue IS NOT NULL THEN CONCAT(m.newvalue, ' (', h.`value`, ')') ELSE h.`value` END `value`
FROM (
    SELECT i.itemid, i.valuemapid, MAX(h.clock) max_clock
    FROM items i
    LEFT JOIN history_text h ON h.itemid = i.itemid
    WHERE i.flags IN (0,4) AND i.`status` = 0 AND i.value_type = 4 AND i.itemid IN ( 29163 )
    GROUP BY i.itemid
) t
LEFT JOIN history_text h ON h.itemid = t.itemid AND h.clock = t.max_clock
LEFT JOIN mappings m ON m.valuemapid = t.valuemapid AND m.`value` = h.`value`
;

解释这句 round(1223* MOD(CAST(clock AS UNSIGNED)+189,300)/(300),0)
1、数字 “1223” 是浏览器页面显示图表的宽度,定义变量为 $width
2、数字 “300” 是 “结束时间” - “开始时间” (1639204011 - 1639203711),定义变量为 $size
3、数字 “189” 定义为变量 $delta,公式:$delta = $size - “开始时间” % $size;

-- 模拟Zabbix监控项图表查询SQL
-- history
SELECT 	itemid,
		COUNT(*) AS `count`,
		AVG(value) AS `avg`,
		MIN(value) AS `min`,
		MAX(value) AS `max`,
		round(1223* MOD(CAST(clock AS UNSIGNED)+189,300)/(300),0) AS i,
		MAX(clock) AS clock 
FROM history 
WHERE itemid='29163' AND clock>='1639203711' AND clock<='1639204011' 
GROUP BY itemid,round(1223* MOD(CAST(clock AS UNSIGNED)+189,300)/(300),0)

-- history_uint
SELECT 	itemid,
		COUNT(*) AS count,
		AVG(value) AS avg,
		MIN(value) AS min,
		MAX(value) AS max,
		round(1223* MOD(CAST(clock AS UNSIGNED)+2519,3600)/(3600),0) AS i,
		MAX(clock) AS clock 
FROM history_uint 
WHERE itemid='41990' AND clock>='1639531081' AND clock<='1639534681' 
GROUP BY itemid,round(1223* MOD(CAST(clock AS UNSIGNED)+2519,3600)/(3600),0)

-- trends 
SELECT 	itemid,
		SUM(num) AS count,
		AVG(value_avg) AS avg,
		MIN(value_min) AS min,
		MAX(value_max) AS max,
		round(1223* MOD(CAST(clock AS UNSIGNED)+2914346,63158400)/(63158400),0) AS i,
		MAX(clock) AS clock 
FROM trends 
WHERE itemid='29163' AND clock>='1576045654' AND clock<='1639204054' 
GROUP BY itemid,round(1223* MOD(CAST(clock AS UNSIGNED)+2914346,63158400)/(63158400),0)

-- trends_uint
SELECT 	itemid,
		SUM(num) AS count,
		AVG(value_avg) AS avg,
		MIN(value_min) AS min,
		MAX(value_max) AS max,
		round(1223* MOD(CAST(clock AS UNSIGNED)+263689,604799)/(604799),0) AS i,
		MAX(clock) AS clock 
FROM trends_uint 
WHERE itemid='41990' AND clock>='1639346400' AND clock<='1639951199' 
GROUP BY itemid,round(1223* MOD(CAST(clock AS UNSIGNED)+263689,604799)/(604799),0)

 网络流量和CPU/Memory查询相似
接收流量 key_ = '^net\\.if\\.in\\[[^,\\]]+\\]$'
发送流量 key_ = '^net\\.if\\.out\\[[^,\\]]+\\]$'

-- 查询CPU/Memory的监控项
SELECT i.itemid
FROM items i
INNER JOIN `hosts` h ON h.hostid = i.hostid AND h.`status` = 0 AND h.flags IN (0,4)
WHERE i.`status` = 0 AND i.flags IN (0,4) 
AND (i.key_ REGEXP '^system\\.cpu\\.util(\\[[^,\\]]*\\])?$'
  OR i.key_ REGEXP '^vm\\.memory\\.util(ization|\\[[^\\]]*\\])?$'
);

-- 查询主机20分钟内CPU/Memory平均使用率
SELECT m.hostid, m.`name`, m.`type`, m.units, s.`avg`
FROM (
    SELECT  DISTINCT h.hostid, h.`name`, i.units,
            CASE WHEN i.key_ REGEXP '^system\\.cpu\\.util(\\[[^,\\]]*\\])?$' THEN 'CPU'
            	 WHEN i.key_ REGEXP '^vm\\.memory\\.util(ization|\\[[^\\]]*\\])?$' THEN 'MEM'
            ELSE '' END AS `type`
    FROM `hosts` h
    INNER JOIN items i ON i.hostid = h.hostid
    AND i.itemid IN ( 41960,45995,45686,53077 )
) m
LEFT JOIN (
    SELECT  i.hostid, i.units,
            CASE WHEN i.key_ REGEXP '^system\\.cpu\\.util(\\[[^,\\]]*\\])?$' THEN 'CPU'
            	 WHEN i.key_ REGEXP '^vm\\.memory\\.util(ization|\\[[^\\]]*\\])?$' THEN 'MEM'
            ELSE '' END AS `type`,
            AVG(h.`value` / 100) * 100 AS `avg`
    FROM history h
    INNER JOIN items i ON h.itemid = i.itemid
    WHERE h.itemid IN ( 41960,45995,45686,53077 ) AND h.clock >= UNIX_TIMESTAMP(NOW() - INTERVAL 20 MINUTE)
    GROUP BY i.hostid, i.units,
            CASE WHEN i.key_ REGEXP '^system\\.cpu\\.util(\\[[^,\\]]*\\])?$' THEN 'CPU'
            	 WHEN i.key_ REGEXP '^vm\\.memory\\.util(ization|\\[[^\\]]*\\])?$' THEN 'MEM'
            ELSE '' END
) s ON s.hostid = m.hostid AND s.`type` = m.`type` AND s.units = m.units
ORDER BY m.`name`, `type`

4、数据库主要表结构

公共属性

`flags`
0 - ZBX_FLAG_DISCOVERY_NORMAL	    常规发现
1 - ZBX_FLAG_DISCOVERY_RULE	        规则发现
2 - ZBX_FLAG_DISCOVERY_PROTOTYPE	原型发现
4 - ZBX_FLAG_DISCOVERY_CREATED	    创建

主机相关表

1,`hosts` 主机/模板 共用表

字段名

数据类型

长度

可空

默认

说明

hostid

BIGINT

20

主机/模板主键

host

VARCHAR

128

''

主机名称

status

INT

10

'0'

状态,参考下表

flags

INT

10

'0'

参考公共属性表

name

VARCHAR

128

''

显示名称

available

INT

10

'0'

ZBX状态。0、非ZBX,1、正常,2、异常

errors_from

INT

10

'0'

ZBX错误发生时间

error

VARCHAR

2048

''

ZBX错误内容

disable_until

INT

10

'0'

禁止主机监控到什么时候

snmp_available

INT

10

'0'

SNMP状态。0、非ZBX,1、正常,2、异常

snmp_errors_from

INT

10

'0'

SNMP错误发生时间

snmp_error

VARCHAR

2048

''

SNMP错误内容

snmp_disable_until

INT

10

'0'

禁止主机监控到什么时候

jmx_available

INT

10

'0'

JMX状态。0、非ZBX,1、正常,2、异常

jmx_errors_from

INT

10

'0'

JMX错误发生时间

jmx_error

VARCHAR

2048

''

JMX错误内容

jmx_disable_until

INT

10

'0'

禁止主机监控到什么时候

ipmi_available

INT

10

'0'

IPMI状态。0、非ZBX,1、正常,2、异常

ipmi_errors_from

INT

10

'0'

IPMI错误发生时间

ipmi_error

VARCHAR

2048

''

IPMI错误内容

ipmi_disable_until

INT

10

'0'

禁止主机监控到什么时候

ipmi_authtype

INT

10

'-1'IPMI授权类型,见下表:
ipmi_privilege

INT

10

'2'IPMI权限,见下表:
ipmi_usernameVARCHAR16''IPMI帐号
ipmi_passwordVARCHAR20''IPMI密码
maintenanceid

BIGINT

20

NULLmaintenances维护表主键
maintenance_status

INT

10

'0'维护状态,0、关闭,1、开启
maintenance_type

INT

10

'0'维护类型,0、正常,1、无数据
maintenance_from

INT

10

'0'维护开始时间

description

TEXT

描述

lastaccess

INT

10

'0'最后访问时间
templateid

BIGINT

20

NULL模板主键
tls_connect

INT

10

'1'TLS连接,见下表:
tls_accept

INT

10

'1'TLS许可,同tls_connect
tls_issuerVARCHAR1024''TLS发行人
tls_subjectVARCHAR1024''TLS项目名
tls_psk_identityVARCHAR128''TLS PSK身份认证
tls_pskVARCHAR512''TLS PSK
proxy_hostid

BIGINT

20

NULL代理主机主键
proxy_addressVARCHAR255''代理主机地址
auto_compress

INT

10

'1'1、自动压缩
discover

INT

10

'0'0、自动发现,1、非自动发现

`status` -- default 0
0 - HOST_STATUS_MONITORED             主机监控中
1 - HOST_STATUS_NOT_MONITORED         主机未监控
3 - HOST_STATUS_TEMPLATE              模板数据
5 - HOST_STATUS_PROXY_ACTIVE	      主动代理模式
6 - HOST_STATUS_PROXY_PASSIVE	      被动代理模式

`ipmi_authtype` -- default -1
-1 - IPMI_AUTHTYPE_DEFAULT            默认授权
0  - IPMI_AUTHTYPE_NONE	              无授权
1  - IPMI_AUTHTYPE_MD2	              MD2
2  - IPMI_AUTHTYPE_MD5	              MD5
4  - IPMI_AUTHTYPE_STRAIGHT	
5  - IPMI_AUTHTYPE_OEM	              OEM
6  - IPMI_AUTHTYPE_RMCP_PLUS	      RMCPPlus

`ipmi_privilege` -- default 2
1 - IPMI_PRIVILEGE_CALLBACK	          Callback
2 - IPMI_PRIVILEGE_USER	              User
3 - IPMI_PRIVILEGE_OPERATOR	          Operator
4 - IPMI_PRIVILEGE_ADMIN	          Admin
5 - IPMI_PRIVILEGE_OEM	              OEM

`maintenance_status` -- default 0
0 - HOST_MAINTENANCE_STATUS_OFF       主机维护状态关闭
1 - HOST_MAINTENANCE_STATUS_ON        主机维护状态开启

`maintenance_type` -- default 0
0 - MAINTENANCE_TYPE_NORMAL           正常
1 - MAINTENANCE_TYPE_NODATA           无数据

`tls_connect`, `tls_accept` -- default 1
1 - HOST_ENCRYPTION_NONE              不加密
2 - HOST_ENCRYPTION_PSK               PSK
4 - HOST_ENCRYPTION_CERTIFICATE       证书加密

`auto_compress` -- default 1
1 - HOST_COMPRESSION_ON               开启自动压缩

`discover` -- default 1
0 - HOST_DISCOVER                     自动发现
1 - HOST_NO_DISCOVER                  非自动发现

2,`hosts_templates` 主机-模板关联表

字段名

数据类型

长度

可空

默认

说明

hosttemplateid

BIGINT

20

主机-模板关联主键

hostid

BIGINT

20

主机主键

templateid

BIGINT

20

模板主键

主机和模板关联,模板和模板也有关联。此处若查询它们之间的关系,需要使用到MySQL8.0的CTE递归查询法。如下:

WITH recursive cte (hostid, templateid) AS (
	SELECT ht.hostid, ht.templateid
	FROM hosts_templates ht 
	INNER JOIN `hosts` h ON h.hostid = ht.hostid AND h.`status` IN (0,1) AND h.flags IN (0,4)
	UNION
	SELECT cte.hostid, ht.templateid
	FROM hosts_templates ht, cte
	WHERE ht.hostid = cte.templateid
) SELECT templateid, hostid FROM cte ORDER BY hostid

3,`hstgrp` 主机组表

字段名

数据类型

长度

可空

默认

说明

groupid

BIGINT

20

主机组主键

name

VARCHAR

255

''

主机组名称

flags

INT

10

0

0、正常,1、发现规则,2、发现原型,4、已创建

internal

INT

10

0

0、外部发现,1、内部配置

`internal` -- default 0
0 - ZBX_NOT_INTERNAL_GROUP        非内部组
1 - ZBX_INTERNAL_GROUP            内部组

4,`hosts_groups` 主机-主机组关联表

字段名

数据类型

长度

可空

默认

说明

hostgroupid

BIGINT

20

主机-主机组关联主键

hostid

BIGINT

20

主机主键

5,`host_tag` 主机标签表

字段名

数据类型

长度

可空

默认

说明

hosttagid

BIGINT

20

主机标签主键

hostid

BIGINT

20

主机主键

tag

VARCHAR

255

''

标签名

value

VARCHAR

255

''

标签值

6,`drules` 自动发现规则表

字段名

数据类型

长度

可空

默认

说明

druleid

BIGINT

20

自动发现规则主键

proxy_hostid

BIGINT

20

NULL代理主机主键
nameVARCHAR255''自动发现规则名称
iprangeVARCHAR2048''ip范围
delayVARCHAR255'1h'采集周期
nextcheck

INT

10

'0'

下一次检查时间
status

INT

10

'0'

0、启用,1、禁用
`status`
0 - ACTION_STATUS_ENABLED        启用
1 - ACTION_STATUS_DISABLED       禁用

7,`dhosts` 自动发现主机,discovery hosts

字段名

数据类型

长度

可空

默认

说明

dhostid

BIGINT

20

自动发现主机主键

druleid

BIGINT

20

自动发现规则主键

status

INT

10

'0'

0、激活,1、禁用
lastup

INT

10

'0'

最后上线时间
lastdown

INT

10

'0'

最后下线时间
`status`
0 - DHOST_STATUS_ACTIVE          激活
1 - DHOST_STATUS_DISABLED        禁用

8,`interface` 主机网络接口信息

字段名

数据类型

长度

可空

默认

说明

interfaceid

BIGINT

20

主机网络接口主键

hostid

BIGINT

20

主机主键

main

INT

10

'0'

是否使用默认接口

type

INT

10

'1'

类型,如下

useip

INT

10

'1'

0、使用DNS,1、使用IP
ip

VARCHAR

64

''

IP地址
dns

VARCHAR

255

''

DNS地址
port

VARCHAR

64

''

端口号

`main`
0 - INTERFACE_SECONDARY            次要
1 - INTERFACE_PRIMARY              主要

`type`
-1 - INTERFACE_TYPE_ANY            任意
0  - INTERFACE_TYPE_UNKNOWN        未知
1  - INTERFACE_TYPE_AGENT          ZBX客户端
2  - INTERFACE_TYPE_SNMP           SNMP
3  - INTERFACE_TYPE_IPMI           IPMI
4  - INTERFACE_TYPE_JMX            JMX

`useip`
0 - INTERFACE_USE_DNS              使用DNS
1 - INTERFACE_USE_IP               使用IP

9,`interface_discovery` 主机自动发现表

字段名

数据类型

长度

可空

默认

说明

interfaceidBIGINT20主机网络接口主键
parent_interfaceidBIGINT20父主机网络接口主键

 10,`interface_snmp` 主机SNMP信息表

字段名

数据类型

长度

可空

默认

说明

interfaceidBIGINT20主机网络接口主键
versionINT10'2'SNMP版本号
bulkINT10'1'0、禁用,1、启用
communityVARCHAR64''团体名称
securitynameVARCHAR64''网管侧显示的用户名
securitylevelINT10'0'安全等级
authpassphraseVARCHAR64''认证密码
privpassphraseVARCHAR64''授权密码
authprotocolINT10'0'认证协议
privprotocolINT10'0'授权协议
contextnameVARCHAR255''上下文名称

`version`
1 - SNMP_V1
2 - SNMP_V2C
3 - SNMP_V3

`bulk`
0 - SNMP_BULK_DISABLED                        禁用
1 - SNMP_BULK_ENABLED                         启用

`securitylevel`
0 - ITEM_SNMPV3_SECURITYLEVEL_NOAUTHNOPRIV    无认证无权限
1 - ITEM_SNMPV3_SECURITYLEVEL_AUTHNOPRIV      有认证无权限
2 - ITEM_SNMPV3_SECURITYLEVEL_AUTHPRIV        有认证有权限

`authprotocol`
0 - ITEM_AUTHPROTOCOL_MD5                     MD5
1 - ITEM_AUTHPROTOCOL_SHA                     SHA

`privprotocol`
0 - ITEM_PRIVPROTOCOL_DES                     DES
1 - ITEM_PRIVPROTOCOL_AES                     AES

 监控项相关表

1,`items` 监控项表

字段名

数据类型

长度

可空

默认

说明

itemid

BIGINT

20

监控项主键

type

INT

10

'0'

监控项类型,见下表

snmp_oid

VARCHAR

512

''

SNMP对象标识符

hostid

BIGINT

20

主机主键

name

VARCHAR

255

''

监控项名称

key_

VARCHAR

2048

''

键值

delay

VARCHAR

1024

'0'

采集间隔

history

VARCHAR

255

'90d'

历史数据保留时间

trends

VARCHAR

255

'365d'

趋势数据(按小时汇总)保留时间

status

INT

10

'0'

状态:0、启用,1、禁用

value_type

INT

10

'0'

数据保存类型表,见下表

trapper_hosts

VARCHAR

255

''

type=ITEM_TYPE_TRAPPER时,主机捕获

units

VARCHAR

255

''

数据单位

formula

VARCHAR

255

''

公式

logtimefmt

VARCHAR

64

''

日志日期格式化

templateid

BIGINT

20

NULL

模板主键

valuemapid

BIGINT

20

NULL

值映射表

paramsTEXT参数
ipmi_sensor

VARCHAR

128

''

IPMI 传感
authtype

INT

10

'0'

认证方法,0、密码,1、公私钥

username

VARCHAR

64

''

用户名称。简单检查 、ssh、数据库、telnet、JMX agent会有帐号,密码填写
password

VARCHAR

64

''

密码
publickey

VARCHAR

64

''

授权公钥
privatekey

VARCHAR

64

''

授权私钥

flags

INT

10

'0'

见公共属性

description

TEXT

描述

inventory_link

INT

10

'0'资产清单

lifetime

VARCHAR

255

'30d'

使用周期

evaltype

INT

10

'0'

jmx_endpoint

VARCHAR

255

''

JMX端口

master_itemid

BIGINT

20

NULL

主监控项主键

url

VARCHAR

2048

''

URL

query_fields

VARCHAR

2048

''

当type=19时,查询字段
request_method

INT

10

'0'请求类型,GET,POST,PUT,HEAD

timeout

VARCHAR

255

'3s'

超时时间

post_type

INT

10

'0'type=19时,post数据类型,见下表
postsTEXTtype=19时,请求正文(体)
headersTEXTtype=19时,请求头
status_codes

VARCHAR

255

'200'

需要响应的状态码
follow_redirects

INT

10

'1'301,302跟随跳转,0、关闭,1、开启
retrieve_mode

INT

10

'0'获取响应数据模式,体、头、体和头
http_proxy

VARCHAR

255

''

HTTP 代理
verify_peer

INT

10

'0'SSL验证对端,0、否,1、是
verify_host

INT

10

'0'SSL验证主机,0、否 ,1、是
ssl_cert_file

VARCHAR

255

''

SSL证书文件

ssl_key_file

VARCHAR

255

''

SSL秘钥文件

ssl_key_password

VARCHAR

64

''

SSL秘钥密码

interfaceid

BIGINT

20

NULL

主机接口(IP地址)主键

output_format

INT

10

'0'http输出格式,0、原生RAW,1、JSON格式
allow_traps

INT

10

'0'

启用trapping,0、否,1、是

discover

INT

10

'0'0、自动发现,1、非自动发现

 表字段类型说明

`status` -- default=0
0 - ITEM_STATUS_ACTIVE                          激活
1 - ITEM_STATUS_DISABLED                        禁用

`type` -- default=0
0  - ITEM_TYPE_ZABBIX                           Zabbix 客户端
1  - ITEM_TYPE_SNMPV1                           已过时,只使用在xml转换中,使用ITEM_TYPE_SNMP替代
2  - ITEM_TYPE_TRAPPER                          Zabbix采集器
3  - ITEM_TYPE_SIMPLE                           简单检查
4  - ITEM_TYPE_SNMPV2C                          已过时,只使用在xml转换中,使用ITEM_TYPE_SNMP替代
5  - ITEM_TYPE_INTERNAL                         Zabbix内部
6  - ITEM_TYPE_SNMPV3                           已过时,只使用在xml转换中,使用ITEM_TYPE_SNMP替代
7  - ITEM_TYPE_ZABBIX_ACTIVE                    Zabbix客户端(主动式)
8  - ITEM_TYPE_AGGREGATE                        Zabbix整合
9  - ITEM_TYPE_HTTPTEST                         http test
10 - ITEM_TYPE_EXTERNAL                         外部检查
11 - ITEM_TYPE_DB_MONITOR                       数据库监控
12 - ITEM_TYPE_IPMI                             IPMI客户端
13 - ITEM_TYPE_SSH                              SSH 客户端
14 - ITEM_TYPE_TELNET                           TELNET客户端
15 - ITEM_TYPE_CALCULATED                       可计算的
16 - ITEM_TYPE_JMX                              JMX agent代理程序
17 - ITEM_TYPE_SNMPTRAP                         SNMP trap
18 - ITEM_TYPE_DEPENDENT                        相关项目
19 - ITEM_TYPE_HTTPAGENT                        HTTP 代理
20 - ITEM_TYPE_SNMP                             SNMP agent

`value_type` -- default=0
0 - ITEM_VALUE_TYPE_FLOAT                       浮点类型表(history)
1 - ITEM_VALUE_TYPE_STR                         字符类型表(history_str)
2 - ITEM_VALUE_TYPE_LOG                         日志类型表(history_log)
3 - ITEM_VALUE_TYPE_UINT64                      无符号整数类型(history_uint)
4 - ITEM_VALUE_TYPE_TEXT                        文本类型表(history_text)

`authtype` -- default=0
0 - ITEM_AUTHTYPE_PASSWORD                      用户名/密码授权方式
1 - ITEM_AUTHTYPE_PUBLICKEY                     公/私钥授权方式


`evaltype`
0 - TAG_EVAL_TYPE_AND_OR
2 - TAG_EVAL_TYPE_OR

`follow_redirects` -- default=1
0 - HTTPTEST_STEP_FOLLOW_REDIRECTS_OFF          关闭
1 - HTTPTEST_STEP_FOLLOW_REDIRECTS_ON           开启

`post_type` -- default=0
0 - ZBX_POSTTYPE_RAW                            原生
1 - ZBX_POSTTYPE_FORM                           表单
2 - ZBX_POSTTYPE_JSON                           JSON
3 - ZBX_POSTTYPE_XML                            XML

`retrieve_mode` -- default=0
0 - HTTPTEST_STEP_RETRIEVE_MODE_CONTENT         体
1 - HTTPTEST_STEP_RETRIEVE_MODE_HEADERS         头
2 - HTTPTEST_STEP_RETRIEVE_MODE_BOTH            体和头

`request_method` -- default=0
0 - HTTPCHECK_REQUEST_GET                       GET
1 - HTTPCHECK_REQUEST_POST                      POST
2 - HTTPCHECK_REQUEST_PUT                       PUT
3 - HTTPCHECK_REQUEST_HEAD                      HEAD

`verify_peer` -- default=0, SSL验证对端
0 - HTTPTEST_VERIFY_PEER_OFF                    否
1 - HTTPTEST_VERIFY_PEER_ON                     是

`verify_host` -- default=0, SSL验证主机
0 - HTTPTEST_VERIFY_HOST_OFF                    否
1 - HTTPTEST_VERIFY_HOST_ON                     是

`allow_traps` -- default=0
0 - HTTPCHECK_ALLOW_TRAPS_OFF                   关闭
1 - HTTPCHECK_ALLOW_TRAPS_ON                    开启

`discover` -- default=0
0 - ITEM_DISCOVER                               自动发现
1 - ITEM_NO_DISCOVER                            非自动发现

`inventory_link` -- default=0
0  - 无
1  - 类型
2  - 类型(全细节)
3  - 名称
4  - 别名
5  - 操作系统
6  - 操作系统(所有细节)
7  - 操作系统( 简短)
8  - 序列号A
9  - 序列号B
10 - 标签
11 - 资产标签
12 - Mac 地址 A
13 - Mac 地址 B
14 - 硬件
15 - 硬件(全细节)
16 - 软件
17 - 软件(全细节)
18 - 软件应用程序A
19 - 软件应用程序B
20 - 软件应用程序C
21 - 软件应用程序D
22 - 软件应用程序E
23 - 联系
24 - 位置
25 - 位置纬度
26 - 位置经度
27 - 备注
28 - 机壳
29 - 模型
30 - 硬件架构
31 - 提供者
32 - 合同号码
33 - 安装名称
34 - 部署状态
35 - URL A
36 - URL B
37 - URL C
38 - 主机网络
39 - 主机子网掩码
40 - 主机路由
41 - 带外 IP 地址
42 - 带外子网掩码
43 - 带外路由器
44 - 硬件购买日期
45 - 硬件安装日期
46 - 硬件维修过期日期
47 - 硬件退役日期
48 - 场所地址A
49 - 场所地址B
50 - 场所地址C
51 - 场所城市
52 - 场所州/省
53 - 场所国家
54 - 地址邮政编码
55 - 场所机柜位置
56 - 场所备注
57 - 主要的POC名称
58 - 主要的POC email
59 - 主要的POC电话A
60 - 主要的POC电话B
61 - 主要的POC手机
62 - 主要的POC屏幕名称
63 - 主要的POC注记
64 - 第二个POC名称
65 - 第二个POC email
66 - 第二个POC电话A
67 - 第二个POC电话B
68 - 第二个POC手机号码
69 - 第二个POC聚合图形名称
70 - 第二个POC注记

2,`valuemaps` 监控项值映射表

字段名

数据类型

长度

可空

默认

说明

valuemapid

BIGINT

20

监控项值映射主键

name

VARCHAR

64

''

映射名称

3,`mappings` 监控项值映射明细表

字段名

数据类型

长度

可空

默认

说明

mappingid

BIGINT

20

映射明细主键

valuemapid

BIGINT

20

监控项值映射主键

value

VARCHAR

64

''

监控项值

newvalue

VARCHAR

64

''

转换显示内容,如0值页面显示为Down (0)

 4,`item_discovery` 监控项自动发现依赖表

字段名

数据类型

长度

可空

默认

说明

itemdiscoveryid

BIGINT

20

监控项自动发现主键

itemid

BIGINT

20

监控项主键
parent_itemid

BIGINT

20

父监控项主键(由该监控项生成其它监控项)
key_VARCHAR2048''key值 
lastcheckINT10'0'最后检查时间戳,秒
ts_deleteINT10'0'删除时间戳,秒

5,`item_rtdata` 监控项实时错误表

与`items`表共用主键,一对一关系 

字段名

数据类型

长度

可空

默认

说明

itemid

BIGINT

20

监控项主键
lastlogsize

BIGINT

20

'0'最大日志大小
stateINT10'0'状态,0、正常,1、错误
mtimeINT10'0'更新时间
errorVARCHAR2048''错误消息

 6,`item_preproc` 自动发现规则 - 监控项进程表

字段名

数据类型

长度

可空

默认

说明

item_preprocid

BIGINT

20

主键
itemid

BIGINT

20

监控项主键
stepINT10'0'处理步骤,从1开始
typeINT10'0'如下:
paramsTEXT处理参数文本
error_handlerINT10'0'错误处理次数
error_handler_paramsVARCHAR255''错误处理入参
`type`
文本
5  - ZBX_PREPROC_REGSUB                      正则表达式截取
25 - ZBX_PREPROC_STR_REPLACE                 字符串替换
4  - ZBX_PREPROC_TRIM                        TRIM去除前后空格
2  - ZBX_PREPROC_RTRIM                       去除右边空格
3  - ZBX_PREPROC_LTRIM                       去除左边空格
结构化
11 - ZBX_PREPROC_XPATH                       XML XPATH提取
12 - ZBX_PREPROC_JSONPATH                    JSON PATH提取
24 - ZBX_PREPROC_CSV_TO_JSON                 CSV转JSON
算法
1  - ZBX_PREPROC_MULTIPLIER                  自定义倍数
更改
9  - ZBX_PREPROC_DELTA_VALUE                 简单更改
10 - ZBX_PREPROC_DELTA_SPEED                 每秒更改
数字
6  - ZBX_PREPROC_BOOL2DEC                    布尔转十进制数
7  - ZBX_PREPROC_OCT2DEC                     八进制转十进制
8  - ZBX_PREPROC_HEX2DEC                     十六进制转十进制
脚本
21 - ZBX_PREPROC_SCRIPT                      JavaScript脚本
验证
13 - ZBX_PREPROC_VALIDATE_RANGE              范围验证
14 - ZBX_PREPROC_VALIDATE_REGEX              正则匹配验证
15 - ZBX_PREPROC_VALIDATE_NOT_REGEX          正则不匹配验证
16 - ZBX_PREPROC_ERROR_FIELD_JSON            JSON字段错误
17 - ZBX_PREPROC_ERROR_FIELD_XML             XML字段错误
18 - ZBX_PREPROC_ERROR_FIELD_REGEX           正则字段错误
丢弃
19 - ZBX_PREPROC_THROTTLE_VALUE              丢弃未改变
20 - ZBX_PREPROC_THROTTLE_TIMED_VALUE        丢弃心跳未改变
PROMETHEUS
22 - ZBX_PREPROC_PROMETHEUS_PATTERN          Prometheus pattern
23 - ZBX_PREPROC_PROMETHEUS_TO_JSON          Prometheus to JSON

7,`lld_macro_path` 自动发现规则 - 低级别自动发现宏路径

字段名

数据类型

长度

可空

默认

说明

lld_macro_pathidBIGINT20宏主键
itemidBIGINT20监控项主键
lld_macroVARCHAR255''
pathVARCHAR255''JSONPath

 8,`item_condition` 自动发现规则 - 监控项过滤器表

字段名

数据类型

长度

可空

默认

说明

item_conditionid

BIGINT

20

主键
itemid

BIGINT

20

监控项主键
operatorINT10'8'8-正则匹配,9-正则不匹配
macroVARCHAR64''
valueVARCHAR255''正则表达式
`operator`
0  - CONDITION_OPERATOR_EQUAL                =              等于
1  - CONDITION_OPERATOR_NOT_EQUAL            !=             不等
2  - CONDITION_OPERATOR_LIKE                 LIKE           模糊匹配
3  - CONDITION_OPERATOR_NOT_LIKE             NOT LIKE       模糊不匹配
4  - CONDITION_OPERATOR_IN                   IN             在…之内
5  - CONDITION_OPERATOR_MORE_EQUAL           >=             大于等于
6  - CONDITION_OPERATOR_LESS_EQUAL           <=             小于等于
7  - CONDITION_OPERATOR_NOT_IN               NOT IN         不在…之内
8  - CONDITION_OPERATOR_REGEXP               REGEXP         正则匹配
9  - CONDITION_OPERATOR_NOT_REGEXP           NOT REGEXP     正则不匹配
10 - CONDITION_OPERATOR_YES                  YES            是
11 - CONDITION_OPERATOR_NO                   NO             否

9,`lld_override` 自动发现规则 - 覆盖

字段名

数据类型

长度

可空

默认

说明

lld_overrideidBIGINT20主键
itemidBIGINT20监控项主键
nameVARCHAR255''名称
stepINT10'0'步骤顺序
evaltypeINT10'0'如下:
formulaVARCHAR255''evaltype=3时,表达式
stopINT10'0'0、继续覆盖,1、停止处理

`evaltype`
0 - CONDITION_EVAL_TYPE_AND_OR                AND_OR
1 - CONDITION_EVAL_TYPE_AND                   AND
2 - CONDITION_EVAL_TYPE_OR                    OR
3 - CONDITION_EVAL_TYPE_EXPRESSION            EXPRESSION

10,`lld_override_condition` 自动发现规则 - 覆盖过滤器表

字段名

数据类型

长度

可空

默认

说明

lld_override_conditionidBIGINT20主键
lld_overrideidBIGINT20覆盖主键
operatorINT10'8'

8-正则匹配,9-正则不匹配

macroVARCHAR64''
valueVARCHAR255''正则表达式

11,`lld_override_operation`  自动发现规则 - 覆盖操作表

`operationobject`
0 - OPERATION_OBJECT_ITEM_PROTOTYPE            监控项
1 - OPERATION_OBJECT_TRIGGER_PROTOTYPE         触发器
2 - OPERATION_OBJECT_GRAPH_PROTOTYPE           图表
3 - OPERATION_OBJECT_HOST_PROTOTYPE            主机

`operator`
0 - CONDITION_OPERATOR_EQUAL                   相等
1 - CONDITION_OPERATOR_NOT_EQUAL               不等
2 - CONDITION_OPERATOR_LIKE                    模糊匹配
3 - CONDITION_OPERATOR_NOT_LIKE                模糊不匹配
8 - CONDITION_OPERATOR_REGEXP                  正则匹配
9 - CONDITION_OPERATOR_NOT_REGEXP              正则不匹配

` lld_override_opstatus` 自动发现规则 - 覆盖操作 - 创建新的

字段名

数据类型

长度

可空

默认

说明

lld_override_operationidBIGINT20覆盖操作主键
statusINT10'0'创建新的,0、是,1、否

 `lld_override_opdiscover` 自动发现规则 - 覆盖操作 - 自动发现

字段名

数据类型

长度

可空

默认

说明

lld_override_operationidBIGINT20覆盖操作主键
discoverINT10'0'自动发现,0、是,1、否

 `lld_override_opperiod` 自动发现规则 - 覆盖操作 - 周期更新

字段名

数据类型

长度

可空

默认

说明

lld_override_operationidBIGINT20覆盖操作主键
delayVARCHAR1024'0'周期,'1m'

 `lld_override_ophistory` 自动发现规则 - 覆盖操作 - 历史数据存储周期

字段名

数据类型

长度

可空

默认

说明

lld_override_operationidBIGINT20覆盖操作主键
historyVARCHAR255'90d'历史数据存储周期

 `lld_override_optrends` 自动发现规则 - 覆盖操作 - 趋势(按小时统计)数据存储周期

字段名

数据类型

长度

可空

默认

说明

lld_override_operationidBIGINT20覆盖操作主键
trendsVARCHAR255'365d'趋势数据存储周期

还有几张表不一一介绍了,都比较简单

 `lld_override_opinventory` 清单表

`lld_override_opseverity` 告警等级

`lld_override_optag` 标签

`lld_override_optemplate` 模板

应用集相关表

1,`applications` 应用集表

字段名

数据类型

长度

可空

默认

说明

applicationid

BIGINT

20

应用集主键

hostid

BIGINT

20

主机主键
name

VARCHAR

255

''

应用集名称
flagsINT10

'0'

见公共属性

 2,`items_applications` 监控项-应用集关联表

字段名

数据类型

长度

可空

默认

说明

itemappid

BIGINT

20

监控项-应用集关联主键

applicationid

BIGINT

20

应用集主键

itemid

BIGINT

20

监控项主键

 3,`application_template` 应用集-模板关联表

字段名

数据类型

长度

可空

默认

说明

application_templateid

BIGINT

20

应用集-模板关联主键

applicationid

BIGINT

20

应用集主键

templateid

BIGINT

20

模板主键

4,`application_prototype` 应用集原型表

字段名

数据类型

长度

可空

默认

说明

application_prototypeid

BIGINT

20

应用集原型主键

itemid

BIGINT

20

监控项主键

templateid

BIGINT

20

模板主键

name

VARCHAR

255

''

应用集原型名称

5,`application_discovery` 应用集自动发现表

字段名

数据类型

长度

可空

默认

说明

application_discoveryid

BIGINT

20

应用集自动发现主键

applicationid

BIGINT

20

应用集主键

application_prototypeid

BIGINT

20

应用集原型主键

name

VARCHAR

255

''

名称
lastcheckINT10

'0'

最后发现时间戳,秒
ts_deleteINT10

'0'

删除时间戳,秒

 6,`item_application_prototype` 监控项-应用集原型关联表

字段名

数据类型

长度

可空

默认

说明

item_application_prototypeid

BIGINT

20

监控项-应用集原型关联主键
application_prototypeid

BIGINT

20

应用集原型主键

itemid

BIGINT

20

监控项主键

函数,事件,触发器等

1,`functions` 函数表

字段名

数据类型

长度

可空

默认

说明

functionid

BIGINT

20

主键

itemid

BIGINT

20

监控项主键

triggerid

BIGINT

20

触发器主键

name

VARCHAR

12

''

函数名称

parameter

VARCHAR

255

'0'

函数参数

2,`triggers` 触发器表

字段名

数据类型

长度

可空

默认

说明

triggerid

BIGINT

20

触发器主键

expression

VARCHAR

2048

''

触发器表达式

description

VARCHAR

255

''

描述信息

url

VARCHAR

255

''

URL地址

status

INT

10

'0'

0、启用,1、禁用

value

INT

10

'0'

0、正常,1、问题

priority

INT

10

'0'

优先级,见下表

lastchange

INT

10

'0'

最后变更时间

comments

TEXT

注释

error

VARCHAR

2048

''

错误内容

templateid

BIGINT

20

NULL

模板主键

type

INT

10

'0'

问题事件生成模式。0、单个,1、多重

state

INT

10

'0'

0、正常,1、未知

flags

INT

10

'0'

见公共属性

recovery_mode

INT

10

'0'

恢复模式。0、表达式,1、恢复表达式,2、无

recovery_expression

VARCHAR

2048

''

恢复表达式

correlation_mode

INT

10

'0'

成功关闭事件。0、所有问题,1、匹配tag的所有问题

correlation_tag

VARCHAR

255

''

匹配tag

manual_close

INT

10

'0'

是否允许手动关闭,0、否,1、是

opdata

VARCHAR

255

''

操作数据

discover

INT

10

'0'

自动发现。0、是,1、否

`status`
0 - TRIGGER_STATUS_ENABLED                    启用
1 - TRIGGER_STATUS_DISABLED                   禁用

`value`
0 - TRIGGER_VALUE_FALSE                       正常
1 - TRIGGER_VALUE_TRUE                        问题

`priority`
0 - 未分级
1 - 信息
2 - 警告
3 - 一般严重
4 - 严重
5 - 灾难

`type` -- 问题事件生成模式
0 - TRIGGER_MULT_EVENT_DISABLED               单个
1 - TRIGGER_MULT_EVENT_ENABLED                多重

`state`
0 - TRIGGER_STATE_NORMAL                      正常
1 - TRIGGER_STATE_UNKNOWN                     未知

`recovery_mode` -- 恢复模式
0 - ZBX_RECOVERY_MODE_EXPRESSION              表达式
1 - ZBX_RECOVERY_MODE_RECOVERY_EXPRESSION     恢复表达式
2 - ZBX_RECOVERY_MODE_NONE                    无

`correlation_mode` -- 成功关闭事件
0 - ZBX_TRIGGER_CORRELATION_NONE              所有问题
1 - ZBX_TRIGGER_CORRELATION_TAG               匹配tag的所有问题

`manual_close`
0 - ZBX_TRIGGER_MANUAL_CLOSE_NOT_ALLOWED      不允许手动关闭
1 - ZBX_TRIGGER_MANUAL_CLOSE_ALLOWED          允许手动关闭

`discover`
0 - TRIGGER_DISCOVER                          自动发现
1 - TRIGGER_NO_DISCOVER                       非自动发现

3,`trigger_depends`,触发器依赖

字段名

数据类型

长度

可空

默认

说明

triggerdepid

BIGINT

20

触发器依赖主键

triggerid_down

BIGINT

20

原触发器

triggerid_up

BIGINT

20

依赖的触发器

triggerid_down 依赖 triggerid_up,触发器之间会循环依赖,我写了个递归查询SQL,如下:

WITH recursive cte AS (
	SELECT d.triggerid_down, d.triggerid_up, CONCAT(d.triggerid_down, ',', d.triggerid_up) lineage
	FROM trigger_depends d
UNION 
	SELECT d.triggerid_down, d.triggerid_up, CONCAT(c.lineage, ',', d.triggerid_up) lineage
	FROM trigger_depends d
	INNER JOIN cte c ON c.triggerid_up = d.triggerid_down
) SELECT * FROM cte

4,`problem` 问题

字段名

数据类型

长度

可空

默认

说明

eventid

BIGINT

20

事件主键,也是问题主键

source

INT

10

'0'

数据源。0、触发器,3、内部错误

object

INT

10

'0'

对象表。0、触发器,4、监控项,5、低级别规则发现

objectid

BIGINT

20

'0'

对象主键

clock

INT

10

'0'

问题发生时间戳,秒

ns

INT

10

'0'

问题发生纳秒时间

r_eventid

BIGINT

20

NULL

问题恢复事件主键

r_clock

INT

10

'0'

问题恢复时间戳,秒

r_ns

INT

10

'0'

问题恢复纳秒时间

correlationid

BIGINT

20

NULL

correlation表主键

userid

BIGINT

20

NULL

用户主键

name

VARCHAR

2048

''

问题描述

acknowledged

INT

10

'0'

acknowledged确认表主键

severity

INT

10

'0'

严重性,参考“触发器的优先级”

`source`
0 - EVENT_SOURCE_TRIGGERS        来源于触发器
3 - EVENT_SOURCE_INTERNAL        来源于系统内部错误

`object`
0 - EVENT_OBJECT_TRIGGER         触发器对象
4 - EVENT_OBJECT_ITEM            监控项对象
5 - EVENT_OBJECT_LLDRULE         低级别规则发现,LLDRULE Low level discovery rule

我写了一个主机产生哪些问题的触发器 

-- 主机问题,过滤掉循环依赖的问题
-- has_up 问题表中是否含有依赖问题
WITH recursive cte AS (
	SELECT hp.hostid, hp.objectid triggerid_down, d.triggerid_up, IF(hp1.objectid IS NULL, NULL, 1) has_up 
	FROM v_hostproblems hp
	LEFT JOIN trigger_depends d ON d.triggerid_down = hp.objectid
	LEFT JOIN v_hostproblems hp1 ON hp1.hostid = hp.hostid AND hp1.objectid = d.triggerid_up AND hp1.objectid != hp.objectid
UNION 
	SELECT c.hostid, d.triggerid_down, d.triggerid_up, IF(hp1.objectid IS NULL, NULL, 1) has_up
	FROM trigger_depends d
	INNER JOIN cte c ON d.triggerid_down = c.triggerid_up
	LEFT JOIN v_hostproblems hp1 ON hp1.hostid = c.hostid AND hp1.objectid = d.triggerid_up AND hp1.objectid != c.triggerid_up
) 
SELECT * FROM cte

5,`events` 事件表

字段名

数据类型

长度

可空

默认

说明

eventid

BIGINT

20

事件主键

source

INT

10

'0'

数据源,见下

object

INT

10

'0'

来源对象,见下

objectid

BIGINT

20

'0'

对象主键

clock

INT

10

'0'

事件发生时间戳,秒

ns

INT

10

'0'

事件发生纳秒时间

value

INT

10

'0'

事件值,0、正常,1、问题

acknowledged

INT

10

'0'

acknowledged确认表主键

name

VARCHAR

2048

''

问题名称

severity

INT

10

'0'

严重性,参考“触发器的优先级”

 说明:events表数据包含了problem表数据,problem表是events表的子集。所以problem表的主键直接使用的evenid。

events.value=1的数据,在problem中都会产生对应的数据

`source`
0 - EVENT_SOURCE_TRIGGERS            来源于触发器
1 - EVENT_SOURCE_DISCOVERY           来源于自动发现
2 - EVENT_SOURCE_AUTOREGISTRATION    来源于自动注册
3 - EVENT_SOURCE_INTERNAL            来源于内部错误

`object`
0 - EVENT_OBJECT_TRIGGER             触发器对象
1 - EVENT_OBJECT_DHOST               主机自动发现
2 - EVENT_OBJECT_DSERVICE            服务自动发现
3 - EVENT_OBJECT_AUTOREGHOST         主机自动注册
4 - EVENT_OBJECT_ITEM                监控项
5 - EVENT_OBJECT_LLDRULE             低级别规则自动发现

`value`
0 - TRIGGER_VALUE_FALSE              正常
1 - TRIGGER_VALUE_TRUE               问题

6,`correlation` 事件关联表

字段名

数据类型

长度

可空

默认

说明

correlationid

BIGINT

20

事件关联主键
nameVARCHAR255''关联名称
descriptionTEXT描述
evaltype

INT

10

'0'

如下
status

INT

10

'0'

如下
formulaVARCHAR255''当evaltype=3时,表达式值
`evaltype`
0 - CONDITION_EVAL_TYPE_AND_OR         AND_OR
1 - CONDITION_EVAL_TYPE_AND            AND
2 - CONDITION_EVAL_TYPE_OR             OR
3 - CONDITION_EVAL_TYPE_EXPRESSION     EXPRESSION

`status`
0 - ZBX_CORRELATION_ENABLED            启用
1 - ZBX_CORRELATION_DISABLED           禁用

 7,`corr_condition` 关联条件

字段名

数据类型

长度

可空

默认

说明

corr_conditionid

BIGINT

20

关联条件主键
correlationid

BIGINT

20

事件关联主键
type

INT

10

'0'

如下
`type`
0 - ZBX_CORR_CONDITION_OLD_EVENT_TAG            旧标签事件
1 - ZBX_CORR_CONDITION_NEW_EVENT_TAG            新标签事件
2 - ZBX_CORR_CONDITION_NEW_EVENT_HOSTGROUP      新主机组事件
3 - ZBX_CORR_CONDITION_EVENT_TAG_PAIR           标签对事件
4 - ZBX_CORR_CONDITION_OLD_EVENT_TAG_VALUE      旧标签值事件
5 - ZBX_CORR_CONDITION_NEW_EVENT_TAG_VALUE      新标签值事件

 8,`corr_condition_group` 关联条件组 corr_condition.type=2

字段名

数据类型

长度

可空

默认

说明

corr_conditionid

BIGINT

20

关联条件主键
operator

INT

10

'0'

0、等于,1、不等于
groupid

BIGINT

20

主机组主键
`operator`
0 - CONDITION_OPERATOR_EQUAL        等于
1 - CONDITION_OPERATOR_NOT_EQUAL    不等于

 9,`corr_condition_tag` 关联条件标签表 corr_condition.type=0,1

字段名

数据类型

长度

可空

默认

说明

corr_conditionid

BIGINT

20

关联条件主键
tag

VARCHAR

255

''

标签名称

10,`corr_condition_tagpair` 关联条件标签对 corr_condition.type=3

字段名

数据类型

长度

可空

默认

说明

corr_conditionid

BIGINT

20

关联条件主键
oldtag

VARCHAR

255

''

旧标签

newtag

VARCHAR

255

''

新标签

11,`corr_condition_tagvalue` 关联条件标签值 corr_condition.type=4,5

字段名

数据类型

长度

可空

默认

说明

corr_conditionid

BIGINT

20

关联条件主键
tag

VARCHAR

255

''

标签

operatorINT10'0'
value

VARCHAR

255

''

`operator`
0 - CONDITION_OPERATOR_EQUAL        相等
1 - CONDITION_OPERATOR_NOT_EQUAL    不等
2 - CONDITION_OPERATOR_LIKE         LIKE
3 - CONDITION_OPERATOR_NOT_LIKE     NOT LIKE

12,`corr_operation` 关联操作表

字段名

数据类型

长度

可空

默认

说明

corr_conditionid

BIGINT

20

关联条件主键
correlationid

BIGINT

20

事件关联主键
typeINT10'0'如下:
0 - ZBX_CORR_OPERATION_CLOSE_OLD    关闭旧标签
1 - ZBX_CORR_OPERATION_CLOSE_NEW    关闭新标签

 13,`acknowledges` 问题确认表

字段名

数据类型

长度

可空

默认

说明

acknowledgeid

BIGINT

20

问题确认主键
userid

BIGINT

20

确认人
eventid

BIGINT

20

事件(问题)主键
clock

INT

20

'0'确认时间
messageVARCHAR2048''确认内容
action

INT

20

'0'如下:
old_severity

INT

20

'0'原严重性等级,参考问题等级
new_severity

INT

20

'0'新严重性等级,参考问题等级
`action`
0  - ZBX_PROBLEM_UPDATE_NONE                0x00 - 更新为空
1  - ZBX_PROBLEM_UPDATE_CLOSE			    0x01 - 更新为关闭
2  - ZBX_PROBLEM_UPDATE_ACKNOWLEDGE	        0x02 - 更新为确认
4  - ZBX_PROBLEM_UPDATE_MESSAGE		        0x04 - 更新消息
8  - ZBX_PROBLEM_UPDATE_SEVERITY        	0x08 - 更新告警等级
16 - ZBX_PROBLEM_UPDATE_UNACKNOWLEDGE       0x10 - 更新为未确认

14,`actions`  事件动作表

字段名

数据类型

长度

可空

默认

说明

actionidBIGINT20事件动作主键
nameVARCHAR255''名称
eventsourceINT10'0'参考`events`表的source
evaltypeINT10'0'参考`correlation`表的evaltype
statusINT10'0'0、启用,1、禁用
esc_periodVARCHAR255'1h'默认操作步骤持续时间
formulaVARCHAR255''

evaltype=3时,公式

CONDITION_EVAL_TYPE_EXPRESSION

pause_suppressedINT10'1'暂停操作以制止问题
`status`
0 - ACTION_STATUS_ENABLED                启用
1 - ACTION_STATUS_DISABLED               禁用

`pause_suppressed`
0 - ACTION_PAUSE_SUPPRESSED_FALSE        否
1 - ACTION_PAUSE_SUPPRESSED_TRUE         是

15,`operations` 动作操作表

字段名

数据类型

长度

可空

默认

说明

operationidBIGINT20主键
actionidBIGINT20动作主键
operationtypeINT10'0'操作类型
esc_periodVARCHAR255'0'

步骤持续时间

esc_step_fromINT10'1'开始步骤
esc_step_toINT10'1'结束 步骤
evaltypeINT10'0'参考`correlation`表的evaltype
recoveryINT10'0'操作恢复类型,0、操作,1、恢复操作

`operationtype`
0 - OPERATION_TYPE_MESSAGE                发送消息
1 - OPERATION_TYPE_COMMAND                远程命令

`recovery`
0 - ACTION_OPERATION                      操作
1 - ACTION_RECOVERY_OPERATION             恢复操作

历史数据,趋势数据相关表

1、`history` 浮点类型-历史数据表

字段名

数据类型

长度

可空

默认

说明

itemid

BIGINT

20

监控项主键

clock

INT

10

'0'

UNIX时间戳,秒

value

DOUBLE

'0'

浮点数据

ns

INT

10

'0'

纳秒时间

 2、`history_str` 字符串类型-历史数据表

字段名

数据类型

长度

可空

默认

说明

itemid

BIGINT

20

监控项主键

clock

INT

10

'0'

UNIX时间戳,秒

value

VARCHAR

255

''

字符串数据

ns

INT

10

'0'

纳秒时间

3,`history_text` TEXT文本类型-历史数据表

字段名

数据类型

长度

可空

默认

说明

itemid

BIGINT

20

监控项主键

clock

INT

10

'0'

UNIX时间戳,秒

value

TEXT

文本数据

ns

INT

10

'0'

纳秒时间

4,`history_uint` 无符号整数类型-历史数据表

字段名

数据类型

长度

可空

默认

说明

itemid

BIGINT

20

监控项主键

clock

INT

10

'0'

UNIX时间戳,秒

value

BIGINT

20

'0'

无符号整数数据

ns

INT

10

'0'

纳秒时间

5,`history_log` 日志类型-历史数据表

字段名

数据类型

长度

可空

默认

说明

itemid

BIGINT

20

监控项主键

clock

INT

10

0

UNIX时间戳,秒

value

TEXT

日志数据

ns

INT

10

0

纳秒时间

timestamp

INT

10

0

日志时间戳

source

VARCHAR

64

''

日志数据来源

severity

INT

10

0

严重性,参考“触发器的优先级”

logeventid

INT

10

0

event主键

6,`trends` 浮点类型-趋势数据表

趋势`trends`表数据是从`history`表按小时汇总生成

字段名

数据类型

长度

可空

默认

说明

itemid

BIGINT

20

监控项主键

clock

INT

10

'0'

UNIX时间戳,秒

num

INT

10

'0'

汇总记录总数

value_min

DOUBLE

'0'

汇总区间最小值

value_avg

DOUBLE

'0'

汇总区间平均值

value_max

DOUBLE

'0'

汇总区间最大值

 7,`trends_uint` 无符号整数类型-趋势数据表

趋势`trends_uint`表数据是从`history_uint`表按小时汇总生成

字段名

数据类型

长度

可空

默认

说明

itemid

BIGINT

20

监控项主键

clock

INT

10

'0'

UNIX时间戳,秒

num

INT

10

'0'

汇总记录总数

value_min

BIGINT

20

'0'

汇总区间最小值

value_avg

BIGINT

20

'0'

汇总区间平均值

value_max

BIGINT

20

'0'

汇总区间最大值

 图形相关表

1,`graphs` 图形表

字段名

数据类型

长度

可空

默认

说明

graphid

BIGINT

20

图表主键

name

VARCHAR

128

''

图表名称

width

INT

10

'900'

height

INT

10

'200'

templateid

BIGINT

20

NULL

模板主键

show_work_period

INT

10

'1'

显示工作时间,0、否,1、是

show_triggers

INT

10

'1'

显示触发器,0、否,1、是

graphtype

INT

10

'0'

图表类型,如下:

show_legend

INT

10

'1'

显示图例,0、否,1、是

show_3d

INT

10

'0'

显示3D,0、否,1、是

percent_left

DOUBLE

'0'

向左百分比线大小

percent_right

DOUBLE

'0'

向右百分比线大小

ymin_type

INT

10

'0'

最小y轴类型,如下:

ymax_type

INT

10

'0'

最大y轴类型,如下:

yaxismin

DOUBLE

'0'

ymin_type=1时,最小y轴数据

yaxismax

DOUBLE

'0'

ymax_type=2时,最大y轴数据 

ymin_itemid

BIGINT

20

NULL

ymin_type=2时,选择的监控项主键

ymax_itemid

BIGINT

20

NULL

ymax_type=2时,选择的监控项主键

flags

INT

10

'0'

参考公共参数属性

discover

INT

10

'0'

自动发现。0、是,1、否

`graphtype`
0 - GRAPH_TYPE_NORMAL                常规图
1 - GRAPH_TYPE_STACKED               堆叠图
2 - GRAPH_TYPE_PIE                   饼图
3 - GRAPH_TYPE_EXPLODED              EXPLODED 分裂图
4 - GRAPH_TYPE_3D                    3D
5 - GRAPH_TYPE_3D_EXPLODED           3D 分裂图
6 - GRAPH_TYPE_BAR                   条形图
7 - GRAPH_TYPE_COLUMN                柱形图
8 - GRAPH_TYPE_BAR_STACKED           条形堆叠图
9 - GRAPH_TYPE_COLUMN_STACKED        柱形堆叠图

`ymin_type`, `ymax_type`
0 - GRAPH_YAXIS_TYPE_CALCULATED      自动计算
1 - GRAPH_YAXIS_TYPE_FIXED           固定数值
2 - GRAPH_YAXIS_TYPE_ITEM_VALUE      监控项值获取

`discover`
0 - GRAPH_DISCOVER                   自动发现
1 - GRAPH_NO_DISCOVER                非自动发现

2,`graphs_items` 图表-监控项关联表

字段名

数据类型

长度

可空

默认

说明

gitemid

BIGINT

20

图表-监控项主键

graphid

BIGINT

20

图表主键

itemid

BIGINT

20

监控项主键

drawtype

INT

10

'0'

绘画类型,如下:

sortorder

INT

10

'0'

在当前图表中,监控项的排序顺序,从0开始

color

VARCHAR

6

'009600'

颜色

yaxisside

INT

10

'0'

Y轴边界起点,如下:

calc_fnc

INT

10

'2'

计算函数,如下:

type

INT

10

'0'

类型,参考监控项type,

`drawtype`
0 - GRAPH_ITEM_DRAWTYPE_LINE                    线
1 - GRAPH_ITEM_DRAWTYPE_FILLED_REGION           区域填充
2 - GRAPH_ITEM_DRAWTYPE_BOLD_LINE               粗线
3 - GRAPH_ITEM_DRAWTYPE_DOT                     点
4 - GRAPH_ITEM_DRAWTYPE_DASHED_LINE             虚线
5 - GRAPH_ITEM_DRAWTYPE_GRADIENT_LINE           梯度线
6 - GRAPH_ITEM_DRAWTYPE_BOLD_DOT                粗点

`calc_fnc`
1 - CALC_FNC_MIN                                最小值
2 - CALC_FNC_AVG                                平均值
4 - CALC_FNC_MAX                                最大值
7 - CALC_FNC_ALL                                所有
9 - CALC_FNC_LST                                最新值

`yaxisside`
0 - GRAPH_YAXIS_SIDE_LEFT                       左侧
1 - GRAPH_YAXIS_SIDE_RIGHT                      右侧
2 - GRAPH_YAXIS_SIDE_BOTTOM                     底部

3,`graph_discovery`  图表自动发现表

字段名

数据类型

长度

可空

默认

说明

graphidBIGINT20图表主键
parent_graphidBIGINT20父图表主键
lastcheckINT10'0'最后检查时间戳,秒
ts_deleteINT10删除时间戳,秒
-- 项目环境目前比较简单,未发现有递归依赖的图表,若有可以使用如下递归查询
WITH recursive cte AS (
	SELECT gd.graphid, gd.parent_graphid, CONCAT(gd.graphid, ',', gd.parent_graphid) paths
	FROM graph_discovery gd
	UNION 
	SELECT gd.graphid, gd.parent_graphid, CONCAT(c.paths, ',', gd.parent_graphid) paths
	FROM graph_discovery gd
	INNER JOIN cte c ON c.parent_graphid = gd.graphid
) SELECT * FROM cte;

 4,`graph_theme` 图表主题样式表

字段名

数据类型

长度

可空

默认

说明

graphthemeidBIGINT20图表主题样式主键
themeVARCHAR64''主题样式名称
backgroundcolorVARCHAR6''背景色
graphcolorVARCHAR6''图表颜色
gridcolorVARCHAR6''表格颜色
maingridcolorVARCHAR6''主表格颜色
gridbordercolorVARCHAR6''表格边框颜色
textcolorVARCHAR6''文本颜色
highlightcolorVARCHAR6''高亮颜色
leftpercentilecolorVARCHAR6''左侧百分比颜色
rightpercentilecolorVARCHAR6''右侧百分比颜色
nonworktimecolorVARCHAR6''非工作时间颜色
colorpaletteVARCHAR255''调色版,多种颜色

WEB场景相关表

1,`httptest` 测试场景表

字段名

数据类型

长度

可空

默认

说明

httptestidBIGINT20主键
nameVARCHAR64''名称
applicationidBIGINT20NULL应用集主键
nextcheckINT10'0'下次检测时间
delayVARCHAR255'1m'更新周期,默认1分钟
statusINT10'0'0、启用,1、禁用
agentVARCHAR255'Zabbix'客户端
hostidBIGINT20主机主键
templateidBIGINT20NULL模板主键
http_proxyVARCHAR255''HTTP 代理
retriesINT10'1'尝试次数
authenticationINT10'0'授权方式
http_userVARCHAR64''authentication != 0时,授权用户
http_passwordVARCHAR64''authentication != 0时,授权密码
verify_peerINT10'0'SSL验证对端
verify_hostINT10'0'SSL验证主机
ssl_cert_fileVARCHAR255''SSL证书文件
ssl_key_fileVARCHAR255''

SSL秘钥文件

ssl_key_passwordVARCHAR64''

SSL秘钥密码

`status`
0 - HTTPTEST_STATUS_ACTIVE            启用
1 - HTTPTEST_STATUS_DISABLED          禁用

`agent` -- 客户端,默认'Zabbix'
'Microsoft Edge'
'Microsoft Edge 80'    - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 Edge/80.0.361.66'
'Microsoft Edge 44'    - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.18362'

'Internet Explorer'
'Internet Explorer 11' - 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0)'
'Internet Explorer 10' - 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'
'Internet Explorer 9'  - 'Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; Trident/5.0)'
'Internet Explorer 8'  - 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)'

'Mozilla Firefox'
'Firefox 73 (Windows)' - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0'
'Firefox 73 (Linux)'   - 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:73.0) Gecko/20100101 Firefox/73.0'
'Firefox 73 (macOS)'   - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:73.0) Gecko/20100101 Firefox/73.0'

'Google Chrome'
'Chrome 80 (Windows)'    - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'
'Chrome 80 (Linux)'      - 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'
'Chrome 80 (macOS)'      - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'
'Chrome 80 (iOS)'        - 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/80.0.3987.95 Mobile/15E148 Safari/605.1'
'Chromium 80 (Linux)'    - 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/80.0.3987.87 Chrome/80.0.3987.87 Safari/537.36'

'Opera'
'Opera 67 (Windows)'     - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 OPR/67.0.3575.79'
'Opera 67 (Linux)'       - 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 OPR/67.0.3575.79'
'Opera 67 (macOS)'       - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 OPR/67.0.3575.79'

'Safari'
'Safari 13 (macOS)'      - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15'
'Safari 13 (iPhone)'     - 'Mozilla/5.0 (Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Mobile/15E148 Safari/604.1'
'Safari 13 (iPad)'       - 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Mobile/15E148 Safari/604.1'
'Safari 13 (iPod Touch)' - 'Mozilla/5.0 (iPod Touch; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Mobile/15E148 Safari/604.1'

'Others'
'Zabbix'                 - 'Zabbix'
'Lynx 2.8.8rel.2'        - 'Lynx/2.8.8rel.2 libwww-FM/2.14 SSL-MM/1.4.1'
'Links 2.8'              - 'Links (2.8; Linux 3.13.0-36-generic x86_64; GNU C 4.8.2; text)'
'Googlebot 2.1'          - 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'


`authentication`
0 - HTTPTEST_AUTH_NONE                无授权
1 - HTTPTEST_AUTH_BASIC               BASIC授权
2 - HTTPTEST_AUTH_NTLM                NTLM授权
3 - HTTPTEST_AUTH_KERBEROS            KERBEROS授权

`verify_peer` -- SSL验证对端
0 - HTTPTEST_VERIFY_PEER_OFF          否
1 - HTTPTEST_VERIFY_PEER_ON           是

`verify_host` -- SSL验证主机
0 - HTTPTEST_VERIFY_HOST_OFF          否
1 - HTTPTEST_VERIFY_HOST_ON           是

2,`httptestitem` 测试场景-监控项关联表

字段名

数据类型

长度

可空

默认

说明

httptestitemidBIGINT20主键
httptestidBIGINT20测试场景主键
itemidBIGINT20监控项主键
typeINT10'0'类型

`type`
2 - HTTPSTEP_ITEM_TYPE_IN                 区间范围测试(web.test.in)
3 - HTTPSTEP_ITEM_TYPE_LASTSTEP           失败步骤测试(web.test.fail)
4 - HTTPSTEP_ITEM_TYPE_LASTERROR          错误测试(web.test.error)

3,`httptest_field` 测试场景字段表

字段名

数据类型

长度

可空

默认

说明

httptest_fieldidBIGINT20主键
httptestidBIGINT20测试场景主键
typeINT10'0'类型
nameVARCHAR255''字段名称
valueTEXT字段值 
`type`
0 - ZBX_HTTPFIELD_HEADER                请求头字段
1 - ZBX_HTTPFIELD_VARIABLE              变量字段
2 - ZBX_HTTPFIELD_POST_FIELD            POST请求体字段
3 - ZBX_HTTPFIELD_QUERY_FIELD           GET查询字段

4,`httpstep` 测试步骤

字段名

数据类型

长度

可空

默认

说明

httpstepidBIGINT20测试步骤主键
httptestidBIGINT20测试场景主键
nameVARCHAR64''步骤名称
noINT10'0'步骤执行顺序号
urlVARCHAR2048''URL
timeoutVARCHAR255'15s'超时时间
postsTEXT原生POST请求体内容
requiredVARCHAR255''需要返回内容
status_codesVARCHAR255''需要返回状态码
follow_redirectsINT10'1'自动跳转,0、关闭,1、开启
retrieve_modeINT10'0'恢复模式
post_typeINT10'0'POST类型
`follow_redirects` -- 301,302 响应码自动跳转
0 - HTTPTEST_STEP_FOLLOW_REDIRECTS_OFF            关闭
1 - HTTPTEST_STEP_FOLLOW_REDIRECTS_ON             开启

`retrieve_mode`
0 - HTTPTEST_STEP_RETRIEVE_MODE_CONTENT           体
1 - HTTPTEST_STEP_RETRIEVE_MODE_HEADERS           头
2 - HTTPTEST_STEP_RETRIEVE_MODE_BOTH              头和体

`post_type`
0 - ZBX_POSTTYPE_RAW                              原生数据
1 - ZBX_POSTTYPE_FORM                             表单数据

5,`httpstepitem` 测试步骤-监控项关联表

字段名

数据类型

长度

可空

默认

说明

httpstepitemidBIGINT20主键
httpstepidBIGINT20测试步骤主键
itemidBIGINT20监控项主那家
typeINT10'0'类型
`type`
0 - HTTPSTEP_ITEM_TYPE_RSPCODE            响应状态码测试(web.test.rspcode)
1 - HTTPSTEP_ITEM_TYPE_TIME               时间测试(web.test.time)
2 - HTTPSTEP_ITEM_TYPE_IN                 区间范围测试(web.test.in)

6,`httpstep_field` 测试步骤字段表

字段名

数据类型

长度

可空

默认

说明

httpstep_fieldidBIGINT20主键
httpstepidBIGINT20测试步骤主键
typeINT10'0'类型
nameVARCHAR255''字段名称
valueTEXT字段值

`type`
0 - ZBX_HTTPFIELD_HEADER                请求头字段
1 - ZBX_HTTPFIELD_VARIABLE              变量字段
2 - ZBX_HTTPFIELD_POST_FIELD            POST请求体字段(未用)
3 - ZBX_HTTPFIELD_QUERY_FIELD           GET查询字段(未用)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值