前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >zabbix 告警设计

zabbix 告警设计

作者头像
zhengzongwei
发布2019-07-31 15:48:14
9640
发布2019-07-31 15:48:14
举报
文章被收录于专栏:Python | BlogPython | Blog

告警设计

  • 通过zabbix api 查询报警信息 (已实现)
  • 通过查询sql 查询告警信息 然后通过转发实现消息推送( 重新定义一个数据库,使用触发器把zabbix数据库中的告警数据同步到新库,查询新库和平台对接)
  • 重写源码接口
  • 改写源码的消息发送方式.

与平台对接用的 requests 模块 发送URL

具体实现

  1. 方案一 通过zabbix api 查询报警信息 (已实现)
  2. 方案二 通过查询sql 查询告警信息 然后通过转发实现消息推送( 重新定义一个数据库,使用触发器把zabbix数据库中的告警数据同步到新库,查询新库和平台对接) # 添加字段 hostid ## 可以在新库上面拓展字段 # 创建数据库 report 创建表 newevent DROP DATABASE IF EXISTS `report`; CREATE DATABASE report character set utf8; USE report; DROP TABLE IF EXISTS `newevent`; CREATE TABLE `newevent` ( `id` int(11) NOT NULL AUTO_INCREMENT, `host` varchar(128) CHARACTER SET utf8 NOT NULL DEFAULT '', hostid int(11) `triggerid` bigint(20) unsigned NOT NULL, `description` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '', `priority` int(11) NOT NULL DEFAULT '0', `value` int(11) NOT NULL DEFAULT '0', `time` datetime DEFAULT NULL, primary key (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; # 创建触发器 zabbix 库 DELIMITER `$$` DROP TRIGGER IF EXISTS after_insert_on_event; CREATE TRIGGER after_insert_on_event AFTER INSERT ON zabbix.`events` FOR EACH ROW BEGIN INSERT INTO report.newevent ( report.newevent.host, report.newevent.triggerid, report.newevent.description, report.newevent.priority, report.newevent.value, report.newevent.time ) SELECT zabbix.`hosts`.`host`, 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; $$ DELIMITER ;
  3. 方案三 重写源码接口 还没有找到具体的收集告警的代码, (收集数据是在 zabbix_agent 主动向zabbix_server 发送信息) actions.c 在查询数据库后,把响应的改动重新写入 数据库中 alers.c 主要是看到 发送告警的几种方式
  4. 方案四 改写源码的消息发送方式. 在 zabbix-3.4.11\src\zabbix_server\alerter\alerter.c 增加 一个发送方式, 数据库 表 media_type 添加一中发送方式 (类似脚本)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年09月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档