转https://www.cnblogs.com/wumingxiaoyao/p/7412312.html
下面开始介绍:
1.添加监控表结构详解
(3)hosts_templates,存储机器和模版或者模版和模版之间的关系
由于模版和机器都存储在hosts表中,所以hosts_templates和hosts 之间可以hostid关联也可以通过templateid关联。
2.数据存储表结构详解
将clock 转化为人性化时间:
3.报警相关表结构详解
附 functions 表结构:
例子:
1. 找出某台主机的所有items ,含有某个key_的item , 统计items 总个数
SELECT * FROM HOSTS WHERE hostid=10157;
SELECT * FROM items WHERE hostid=10157 AND key_ LIKE '%agent%';
SELECT COUNT(*) FROM items;
2. 找出触发trigger次数最多的事件,并按trigger 降序排列。
SELECT a.description, COUNT(*) cnt FROM TRIGGERS a , EVENTS b
WHERE a.triggerid=b.objectid ORDER BY cnt DESC ;
3. 从item记录各找出一个value类型为整形,浮点型的key_。
统计这两个key_ 存储在history或者history_uint 某一个时间段(比如2017/06/12)
的最大值,最小值,平均值,然后与 trends 或者 trends_unint 中相应时间段做对比
整型
SELECT * FROM items WHERE value_type=3 AND hostid=10157 LIMIT 1;
SELECT * FROM history_uint a,trends_uint b WHERE a.clock=b.clock AND a.itemid=b.itemid LIMIT 1;
浮点型
SELECT * FROM items WHERE value_type=0 AND hostid=10157 LIMIT 1;
SELECT * FROM history a,trends b WHERE a.clock=b.clock AND a.itemid=b.itemid LIMIT 1;
4.统计Zabbix Dashboard中triggers总数的来源。
SELECT count(*) FROM TRIGGERS WHERE triggerid IN (SELECT triggerid FROM functions WHERE itemid IN (SELECT itemid FROM items WHERE hostid IN (SELECT hostid FROM interface) AND key_ NOT LIKE '%#%' AND key_ NOT LIKE '%discovery%' AND STATUS != 1)); 说明: 通过之前对zabbix表结构的学习,我们知道,表triggers和functions相关联,而functions和items相关联,那么,要对triggers做统计,就需要从这三张表下手。 关键就是对items表中的数据做出筛选,key_中带“#”和“discovery”的和status=1(不可用状态)都要排除,这样就统计出来了。