Zabbix 数据库表结构解析
zabbix 数据库表结构解析
监控表结构详解
- hosts,存储被监控的机器的信息,表结构如下:
- items
- hosts_templates,存储机器和模版或者模版和模版之间的关系
由于模版和机器都存储在 hosts 表中,所以 **hosts_templates 和 hosts 之间可以 hostid 关联也可以通过 templateid 关联。
interface,存储了所有设备的 ip 和端口的数据。(由于 hosts 表中不仅保存了设备信息还保存了模版信息,所以统计实际监控的设备,此表更加准确)
数据存储表结构详解
- 将 clock 转化为人性化时间:
报警相关表结构详解
- triggers
附 functions 表结构:
- events
例子:
1. 找出某台主机的所有 items , 含有某个 key_的 item , 统计 items 总个数
1 | SELECT \* FROM HOSTS WHERE hostid=10157; |
SELECT a.description, COUNT(*) cnt FROM TRIGGERS a , EVENTS b
WHERE a.triggerid=b.objectid ORDER BY cnt DESC ;
1 | 3\. 从item记录各找出一个value类型为整形,浮点型的key\_。 |
4. 统计 Zabbix Dashboard 中 triggers 总数的来源。
1 | SELECT count(\*) |
说明:
通过之前对 zabbix 表结构的学习,我们知道,表 triggers 和 functions 相关联,而 functions 和 items 相关联,那么,要对 triggers 做统计,就需要从这三张表下手。
关键就是对 items 表中的数据做出筛选,key_中带 “#” 和 “discovery” 的和 status=1(不可用状态)都要排除,这样就统计出来了。