前言
zabbix稳定运行一段时间之后,积累了一定量的数据。老板看运维整天没事干,让折腾一个酷炫的大屏显示。同时在这个基础上有一定的定制话需求。记录一下自己查询zabbix数据库的查询语句。
监控表结构
- hosts表
select * from hosts where hostid = '10434'G
存储被监控机器的信息 ,包含模版信息
- items表
select * from items where hostid = '10434'G
核心表之一,记录了item的所有设置
- hosts_templates表
select * from hosts_templates G
存储机器和模版或模版和模版之间的关系
- interface表
select * from interfaceG
数据存储表结构说明
history表 和 Trends 表 都是存储历史数据的地方。存储数据的粒度不同。trends 表将history表的数据根据小时纬度进行归档。他会针对每一个itemid,计算每小时的最小值,最大值和平均值。
参数
相互关联的表
show tables like '%history%';
show tables like '%trend%';
将clock,和ns转化为可读
select itemid,from_unixtime(clock),value,ns/1000000000 from history limit 1;
报警相关表结构说明
- trigger表
select * from triggers limit 1 G
核心是expression,存储报警逻辑。
- functions表
select * from functions where functionid=12641;
根据trigger表中expression 的{12641},通过functions表查找itemid
- items表
select * from items where itemid =22189G
- events表
zabbix server 获取到一个数据,就会检查跟这个item相关的trigger,然后无论是否出发action,都会生成一个 event。 字段参数 source event 的生成来源 trigger discovery rule agent auto-registration internal object 和event 关联的zabbix 对象
实际应用
- 找出交换机端口流量相关的item
select * from hosts where hostid = '10434'G
- 统计监控项的个数
SELECT count(*) FROM items WHERE hostid=10434;
- 统计和网络相关的监控项个数
SELECT count(*) FROM items WHERE hostid=10434 AND key_ LIKE '%net.if.in%' G
- 查找itemid
SELECT name,snmp_oid,itemid FROM items WHERE hostid=10434 AND key_ LIKE '%net.if.in%';
- 查看数据采集情况
select itemid,from_unixtime(clock),value,ns/1000000000 from history_uint where itemid = 36384;
- 结果精确到分钟
select itemid,date_format(from_unixtime(clock), '%Y-%m-%d %H:%i' ), value as '36336' from history_uint where itemid = 36336 limit 10;