1、思路:根据zabbix 4.2.3 自己的报表系统中 触发器Top 100 中查询数据库信息,生成自己需要的信息
2、zabbix 数据库说明:Zabbix 数据库表结构说明文档_疯飙的蜗牛的博客-优快云博客_item_preproc
3、问题:每天查询数据库,生成数据 会对zabbix库造成压力。
4、解决办法: 每天增量查询每天数据,将信息插入到其它数据库,在 新库中 查询,生成需要数据
注:本例中 为了解决需求而做,具体优化请个人完成。
脚本:
1、1 0 * * * /usr/bin/sh /data/image/report/report.sh >/dev/null 2>&1 ;
每天执行 导出zabbix库中需要数据,并插入到新库表中
#!/bin/bash
MYSQL="/usr/bin/mysql -uzabbix -pzabbix -S /var/lib/mysql/mysql.sock --default-character-set=utf8 -A -N"
clock_time=`date +%s`
#clock_time=1563465600
clock_time_one_day_ago=`expr $clock_time - 86400`
dump_data=/data/image/report/data/data.$clock_time.txt
#sql="SELECT zabbix.`hosts`.`host`,zabbix.hstgrp.groupid,zabbix.hstgrp.`name`,zabbix.`triggers`.triggerid,zabbix.`triggers`.description,zabbix.`triggers`.priority,zabbix.`events`.`value`,zabbix.`events`.clock FROM zabbix.`hosts`,zabbix.`triggers`,zabbix.`events`,zabbix.items,zabbix.functions,zabbix.hstgrp,zabbix.hosts_groups WHERE zabbix.`hosts`.hostid=zabbix.hosts_groups.hostid AND zabbix.hosts_groups.groupid=zabbix.hstgrp.groupid AND zabbix.`triggers`.triggerid = zabbix.`events`.objectid AND zabbix.`hosts`.hostid = zabbix.items.hostid AND zabbix.items.itemid=zabbix.functions.itemid AND zabbix.functions.triggerid=zabbix.`triggers`.triggerid AND zabbix.`triggers`.priority>2 AND zabbix.`events`.clock>1562144400;"
sql="SELECT
zabbix.hosts.host,';',
zabbix.hstgrp.groupid,';',
zabbix.hstgrp.name,';',
zabbix.triggers.triggerid,';',
zabbix.triggers.description,';',
zabbix.triggers.priority,';',
zabbix.alerts.mediatypeid,';',
zabbix.alerts.sendto,';',
zabbix.alerts.status,';',
zabbix.events.clock
FROM
zabbix.hosts,
zabbix.triggers,
zabbix.events,
zabbix.items,
zabbix.functions,
zabbix.hstgrp,
zabbix.alerts,
zabbix.hosts_groups
WHERE