请选择 进入手机版 | 继续访问电脑版

IT运维管理,ITIL,ITSS,ITSM,ISO20000-ITIL先锋论坛

 找回密码
 点击获取邀请码 - 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

艾拓先锋
搜索
查看: 452|回复: 0

[Zabbix专区] zabbix报警信息提取可从数据库入手

[复制链接]
来自- 湖南娄底

参加活动:0

组织活动:12

发表于 2017-9-10 10:38:52 | 显示全部楼层 |阅读模式 来自- 湖南娄底
zabbix报警信息提取在日常的监控中,我们除了日常的zabbix操作外,我们有的时候还涉及到与其他公司
进行数据对接。由于别的公司的数据对接很多时候并不是按照zabbix的数据结构
(尤其是大型厂家,或是专业监控厂家,并不会直接使用zabbix,多数是自己开发
或是对其他监控软件进行二次开发之类),在这种需求基础上,我们就需要整理下
zabbix的数据库,将需要的数据提取出来,并转化成我们需要的格式。
对接格式:
0?wx_fmt=png.jpg
1.创建对接库:
DROP DATABASE IF EXISTS `alarmreport`;CREATE DATABASE alarmreport;USE alarmreport;DROP TABLE IF EXISTS `report`;CREATE TABLE `report` (  `reportid` int(11) NOT NULL AUTO_INCREMENT,  `reportip` varchar(64) NOT NULL,  `reporttype` varchar(64) NOT NULL,  `alarmid` int(11) NOT NULL,  `alarmname` varchar(64) NOT NULL,  `alarmlevel` varchar(64) NOT NULL,  `alarmstat` varchar(64) NOT NULL,  `alarmtime` varchar(64) NOT NULL,  `alarmcause` varchar(64) NOT NULL,  `sendstatus` varchar(64) NOT NULL,  PRIMARY KEY(reportid)) ENGINE=InnoDB DEFAULT CHARSET=utf8;DROP TABLE IF EXISTS `dictionary`;CREATE TABLE `dictionary` (  `alarmid` int(11) NOT NULL,  `alarmname` varchar(64) NOT NULL,  `alarmcause` varchar(64) NOT NULL,  PRIMARY KEY(alarmid)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.创建触发器,实时同步zabbix库的报警信息
DROP TRIGGER IF EXISTS Ysten_afterinsert_on_event;CREATE TRIGGER Ysten_afterinsert_on_eventAFTER INSERT ON zabbix.`events`FOR EACH ROWBEGIN        INSERT INTO alarmreport.report (            alarmreport.report.reportip,            alarmreport.report.reporttype,            alarmreport.report.alarmid,            alarmreport.report.alarmname,            alarmreport.report.alarmlevel,            alarmreport.report.alarmstat,            alarmreport.report.alarmtime        )        SELECT            zabbix.`hosts`.`host`,            CONCAT('服务器'),            zabbix.`triggers`.triggerid,            zabbix.`triggers`.description,            zabbix.`triggers`.priority,            zabbix.`events`.`value`,            FROM_UNIXTIME(zabbix.`events`.clock)        FROM            zabbix.`hosts`,            zabbix.`triggers`,            zabbix.`events`,            zabbix.items,            zabbix.functions,            zabbix.groups,            zabbix.hosts_groups        WHERE            zabbix.`hosts`.hostid = zabbix.hosts_groups.hostid            AND zabbix.hosts_groups.groupid = zabbix.groups.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.`events`.eventid=new.eventid;END;
这样我们就能在alarmreport这个库里面实时存储报警信息了
原创:graysky

本版积分规则

选择云运维时代的王牌讲师-长河老师,助你轻松入门ITIL Foundation培训课程

QQ|小黑屋|手机版|Archiver|ITIL先锋论坛五万运维人社区 ( 粤ICP备17056641号|网站地图

Baidu

GMT+8, 2018-9-21 01:59 , Processed in 0.264153 second(s), 36 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表