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

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

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 1747|回复: 0

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

[复制链接]
发表于 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





上一篇:如何通过微信服务号推送Zabbix告警(附赠源码)
下一篇:分析zabbix proxy主动模式分布式监控配置

本版积分规则

参加 ITIL 4 基础和中级专家认证、v3专家升级、DevOps专家认证、ITSS服务经理认证报名

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2020-8-6 18:48 , Processed in 0.153169 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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