zabbix报警信息提取

zabbix报警信息提取

    在日常的监控中,我们除了日常的zabbix操作外,我们有的时候还涉及到与其他公司进行数据对接。由于别的公司的数据对接很多时候并不是按照zabbix的数据结构(尤其是大型厂家,或是专业监控厂家,并不会直接使用zabbix,多数是自己开发或是对其他监控软件进行二次开发之类),在这种需求基础上,我们就需要整理下zabbix的数据库,将需要的数据提取出来,并转化成我们需要的格式。

对接格式:

对接数据库设计
库名 字段
表名 表含义 字段 字段名称 含义
alarmreport report 故障表 reportid 告警流水号 主键
reportip 网元名称 报警的IP
reporttype 网元类别 报警IP的类别(服务器/交换机)
alarmid 告警ID 可以从字典里查询
alarmname 告警名称 可以从字典里查询
alarmlevel 告警级别
alarmstat 告警状态 是否恢复
alarmtime 发生时间
alarmcause 故障定位 可以从字典里查询
sendstatus 发送状态 报警是否发送
dictionary 字典表 alarmid 告警ID 主键
alarmname 告警名称
alarmcause 故障定位

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_event
AFTER INSERT ON zabbix.`events`
FOR EACH ROW
BEGIN
        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,如若转载,请注明出处:http://www.178linux.com/9976

(1)
grayskygraysky
上一篇 2015-12-19 20:48
下一篇 2015-12-19 21:02

相关推荐

  • 马哥教育网络班20期+第2周课程练习

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。     1、cat:用于连接文件并打印到标准输出设备上,常用来显示文件的内容         命令使用格式     &nb…

    Linux干货 2016-06-23
  • 关于大型网站技术演进的思考(十二)–网站静态化处理—缓存(4)

    原文出处: 夏天的森林   上篇我补充了下SSI的知识,SSI是一个十分常见的技术,记得多年前我看到很多门户网站页面的后缀是.shtml,那么这就说明很多门户网站都曾经使用过SSI技术,其实现在搜狐网站也还在用shtml,如下图所示: 由此可见SSI在互联网的应用还是非常广泛的。其实互联网很多网页如果我们按照动静分离策略拆分,绝…

    2015-03-11
  • hello! 我的博客第一站

    大家好!  这是我进博客的第一天,一个刚进来的新司机。在这里我就不秀我的车技了,只希望各位老司机开车不要太快,我晕车      —— 生命不息,奋斗不止

    Linux干货 2017-07-11
  • yum用法第二篇-自定义创建yum仓库

    一、前言      上次写了yum命令的介绍及常见使用说明,这次打算继续整理下如何自定义创建yum仓库,这在企业中也是非常常见的设置方式,有些公司为了服务器安全是不允许连接外网的,自定义创建yum仓库正好可以实现局域网单独安装管理程序包这种需求。 二、用法说明      1.使用…

    Linux干货 2015-09-22
  • 今天把/boot/目录下的文件删除了只好重新安装一下内核和grub

    一前言         今天手贱把/boot/目录下的文件删了  系统重启之后无法登陆系统 无奈只好重装一下内核和grub 二准备工作           Centos7 系统光盘一张 当然我这是虚拟…

    2017-03-06
  • 第一周:Linux基础之常用命令(二)

    一、Linux的命令使用格式 命令的语法通用格式: ~]# COMMAND  OPTIONS  ARGUMENTS   命令  选项  参数 1.  COMMAND,命令:发起命令时将请求内核将某个二进制程序运行为一个进程,命令本身是一个可执行的程序文件,二进制格式的文件有可能会调用共享库文件。 多…

    Linux干货 2016-09-18

评论列表(2条)

  • stanley
    stanley 2015-12-19 20:59

    比上次好了非常多,但还有很大提升空间

  • 贪婪
    贪婪 2015-12-21 14:36

    执行不过去啊。还有 那个new.eventid; 是怎么来的?