单系统简单告警模块设计

单系统简单告警模块设计

遇到实践问题可私信

需求说明

对应用运行时的一些异常进行采集与通知。形成一套异常告警机制。

告警事件:代表异常事件,将发生的异常,包装成需要告警的事件。

告警事件标识:用来区分不同的告警事件,区分粒度较细。

告警监控项:从粗粒度对需要告警的事件进行分类,也可以理解为对事件标识的分类,一个监控项可以对应多个事件标识。

告警策略:对不同的告警监控项采用不同的通知策略。

告警组:接收告警通知的人员分组。

告警通知:即通知的消息内容。

通知方式:可以是邮件通知,短信通知,即时通讯软件通知。

分析设计

告警来源

  1. 定时任务层面

    1. 数据探查的监控任务
    2. Hive服务监控
    3. YARN超时任务清理 :杀死yarn中长期某些状态下的任务。例如,运行超过2Day。通过yarn接口扫描整个yarn的任务,实时计算时长。存在不受限时长限制的任务,在管理功能里面控制。
    4. YARN任务堆积告警:某些状态下任务的数量超过阈值,进行告警,通过yarn接口,实时计算数量。
    5. HDFS路径删除
    6. HDFS访问IP同步
    7. Yarn队列同步

    事件标记采用任务实现类名就好,用来表名定时任务是否执行成功。

  2. 业务中发生的异常

    1. 异步创建账户

      事件标记:async-create-account-{accountname}{accountname}代表占位符,有多少个账号就会产生多少个事件标记。

    2. HDFS集群服务不可用

      事件标记:hdfs-service-{clustername}{clustername}代表占位符,有多少个hdfs集群就会产生多少个事件标记。

    3. HDFS白名单账号信息不存在

      事件标记:hdfs-whitelist-{accountname}{accountname}代表占位符,有多少个账号就会产生多少个事件标记。

    4. HDFS白名单同步文件信息失败

      事件标记:hdfs-whitelist-{clustername}{clustername}代表占位符,有多少个hdfs集群就会产生多少个事件标记。

    5. HDFS集群节点连通性异常

      事件标记:hdfs-{clustername}-{nodehost}{clustername}{nodehost}代表占位符,有多少个HDFS的NM节点和Router节点就会产生多少个事件标记。

    6. YARN集群节点连通性异常

      事件标记:yarn-{clustername}-{nodehost}{clustername}{nodehost}代表占位符,有多少个yarn的RM节点就会产生多少个事件标记。

    7. OCDP系统专用创建hive库

      事件标记:hive-createDB-{databaseName},{databaseName}代表占位符,需要创建多少个hivedb库名有多少就会产生多少个事件标记。

    8. yarn队列同步异常

      事件标记:yarn-queue-{clustername}{clustername}代表占位符,有多少个hdfs集群就会产生多少个事件标记。

    9. Hive metastore节点连通性异常监控

      事件标记:hive-metastore-node-{ip}{ip}代表占位符,有多少个ip就会产生多少个事件标记。

    10. Hive Thrift Server节点异常监控

      事件标记:hive-thriftserver-node-{ip}{ip}代表占位符,有多少个ip就会产生多少个事件标记。

    11. Spark Thrift Server节点异常监控

      事件标记:spark-thriftserver-node-{ip}{ip}代表占位符,有多少个ip就会产生多少个事件标记。

    12. hive服务异常

      事件标记:hive-service

    13. YARN超时任务清理异常

      事件标记:yarn-KillTimeoutAppJob-{appid}{appid}代表占位符,有多少个超时appid异常就会产生多少个事件标记。

    14. YARN任务堆积异常

      事件标记:yarn-backlog-{clustername}-{status}{clustername}{status}代表占位符,有多少个超时yarn中多少个状态出现积压,就会产生多少个事件标记。

    15. 数据探查节点连通性异常

      事件标记:bigquery-node-{ip}{ip}代表占位符,有多少个ip就会产生多少个事件标记。

    16. 数据探查服务异常

      事件标记:bigquery-service

    监控项:

    1. async-create-account
    2. hdfs-service-availability
    3. hdfs-Whitelist-accountname
    4. hdfs-whitelist-clustername
    5. hdfs-node-reachable
    6. yarn-node-reachable
    7. hive-create-db
    8. yarn-queue
    9. hive-metastore-node-reachable
    10. hive-thriftserver-node-reachable
    11. spark-thriftserver-node-reachable
    12. hive-service-availability
    13. yarn-kill-timeout-app-job
    14. yarn-backlog
    15. bigquery-node-reachable
    16. bigquery-service-availability

告警策略

告警策略与监控项进行绑定调整

  1. 立即告警

    发生告警事件后,立即通知。事件自动恢复,一事件一通知。

    实现:业务代码里,直接调用通知接口。事件入库且标记为已通知。

  2. 持续告警(暂不实现)

    发生告警事件后,立即通知。事件不自动恢复。在未恢复期间,每隔固定时长分钟,再次发送通知。一个事件,持续通知。

    举例:一个告警事件,第一次通知之后,每隔30分钟检测一次,发现这个事件未进行恢复操作,再通知一次。

    实现:定时扫描事件表,对未恢复的时间且采用持续告警策略的事件进行间隔持续通知。

  3. 聚合同标记事件告警

    发生告警事件后,立即通知。在与上一次的通知间隔某个固定时长内的相同告警,聚合只通知一次。

    举例:一个告警事件,第一次通知之后。在30min内,又持续新增了同标记的事件,则不直接告警,在31min的时候,聚合30min时间区间事件,通知中包含时间区间内的第一次和最后一次,以及一共事件的次数。

告警组

固定:管理系统的权限人员

告警事件

发生的时间,需要进行告警通知,单独的一张表存详细的事件记录。事件发生一次,就产生一条记录。

事件核心字段:

  1. 事件发生时间

  2. 事件环境

    1. sit
    2. prd
  3. 事件标记

    用来标记这个事件的唯一性,主要是聚合时使用。强制小写

  4. 事件级别

    1. 普通:不需要手动恢复,服务可用
    2. 警告:需要手动恢复,服务可用
    3. 严重:需要手动恢复,服务不可用
  5. 具体内容

  6. 告警监控项

    用来于策略进行绑定,强制小写

  7. 通知标记

    1. 已通知告警
    2. 未通知

告警通知

  1. 事件发生时间
  2. 事件环境
    1. sit
    2. prd
  3. 事件级别
    1. 普通:服务可用,但是不影响HA
    2. 警告:服务可用,但是HA故障了
    3. 严重:服务不可用了
  4. 具体内容
    1. 内容1
    2. 内容2
告警时间:2024-04-20 20:40:00
级别:严重
环境:PRD
事件标识:BigQuery-Node-192.168.1.1
告警内容:
  [2024-04-20 20:39:10] 数据探查节点(192.168.1.1)连通性检测异常
  [2024-04-20 20:39:10] 数据探查节点(192.168.1.1)连通性检测异常
事件数量:2

通知方式

核心设计说明

表设计

CREATE TABLE t_alarm_event
(
    `id`                    BIGINT unsigned PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
    `create_time`           DATETIME         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time`           DATETIME         NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
    `event_occurrence_time` DATETIME         NOT NULL COMMENT '事件发生时间',
    `event_env`             VARCHAR(10)      NOT NULL COMMENT '事件发生环境编码。如sit,pre,prd',
    `event_identity`        VARCHAR(200)     NOT NULL COMMENT '事件标识,聚合时使用的唯一标识',
    `event_level`           VARCHAR(20)      NOT NULL COMMENT '事件的等级,普通,警告,严重',
    `monitored_item`        VARCHAR(50)      NOT NULL COMMENT '告警监控项',
    `event_title`           VARCHAR(60)      NOT NULL COMMENT '事件的标题',
    `event_context`         VARCHAR(500)     NOT NULL COMMENT '事件的具体内容',
    `event_status`          tinyint unsigned NOT NULL DEFAULT '0' COMMENT '事件状态:0-未处理,1-已处理',
    `event_recover`         tinyint unsigned NOT NULL DEFAULT '0' COMMENT '事件恢复标记:0-未恢复,1-已恢复,2-自动恢复'
) ENGINE = InnoDB COMMENT ='告警事件表';

CREATE TABLE t_alarm_event_policy_rel
(
    `id`                    BIGINT unsigned PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
    `create_time`           DATETIME         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time`           DATETIME         NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
    `create_user`           VARCHAR(12)      NOT NULL COMMENT '创建人工号',
    `update_user`           VARCHAR(12)      NOT NULL COMMENT '修改人工号',
    `alarm_policy`          tinyint unsigned NOT NULL COMMENT '事件的告警策略',
    `monitored_item`        VARCHAR(50)      NOT NULL COMMENT '告警监控项',
    `time_interval_minutes` INT              NULL COMMENT '时间间隔,分钟,告警聚合或持续告警检查的额时间间隔',
    `event_identity`        VARCHAR(200)     NULL COMMENT '事件标识,聚合时使用的唯一标识',
    `pre_notify_time`       DATETIME         NULL COMMENT '事件标识的上一次告警通知时间',
    UNIQUE KEY unique_alarm_event_policy (monitored_item, event_identity)
) ENGINE = InnoDB COMMENT ='事件告警策略关系表';

CREATE TABLE t_alarm_notification
(
    `id`                   BIGINT unsigned PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
    `create_time`          DATETIME         NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time`          DATETIME         NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
    `notification_time`    DATETIME         NULL COMMENT '告警通知时间',
    `event_env`            VARCHAR(10)      NOT NULL COMMENT '事件发生环境编码。如sit,pre,prd',
    `event_level`          VARCHAR(20)      NOT NULL COMMENT '事件的等级
  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HV-SCADA-WEB版电力监控系统软件,为用户提供一个灵活部署,实时在线,24小时随时随地访问管理的可靠,灵活且高性能的电力监控方案,帮助用户实现在线监测,自动预警告警,提前做出预防式维护,减少断电时间,提高用电效率。该软件在保证实用性高实时性和可靠性的同时,通过功能模块设计供用户选择,从而可以帮用户实现处理简单直至复杂的电力监控应用需求。 HV-SCADA-WEB版内嵌易用的网页显示组态工具和强大的功能友好的交互界面。前端显示和后台管理基于标准浏览器展示和管理。标准化的全鼠标点击操滚轮拖动操作,自导航操作无学习成本。关键的涉及安全的命令操作采用主流的安全短信验证码方式,确保应用多重安全。HV-SCADA-WEB前端和后台均采用基于最先进的谷歌流览器,系统架构充分考虑操作的安全性、可靠性和高效性以及数据的完整性。基于WEB云架构设计,业务扩展高度自主灵活:特别方便实现比如热/备冗余的I/O配置,主/备通讯,主/备服务器配置,安全防火墙等。根据帐号分配不同级别权限, 保证系统运行管理控制的安全可靠。 HV-SCADA-WEB完全功能模块设计,可根据实际选择需要的功能模块,也可全选作为完整的解决方案,具备高稳定性,通用性,即用性,易用性和安全性。支持常用通讯协议如MODBUS-RTU,MODBUS-TCP,DL/T645-2007、CJ/T188等已集成到系统平台,并支持新设备协议开发接入系统。 运行可靠、性能稳定、功能可模块组合、部署云平台的电力监控系统,可帮助位供配电运行管理部门随时随地在线掌握电力设备运行状态,计划性预防性安排维护更换,减少意外停电,保障可靠供电,提高供配电可靠性,降低意外损失,提高运行效率。 HV-SCADA-WEB版,广泛运用于工商业和智能建筑,包括: *厂矿供配电 *智能建筑 *商业广场 **政府机关 *医院学校 *石油化工 *冶金钢铁
【RT-Thread作品秀】家用燃气泄露告警系统作者:lmkkss 概述每年天燃气、煤气、沼气等泄露引起的火灾、爆炸、煤气中毒等安全事故常有发生,而这些东西跟我们的生活息息相关,不可或缺。这些东西就成了离我们最近的易爆炸物,一旦发生泄露,很容易发生煤气中毒,火灾,爆炸等事故。这些事故场景在电视上时有报道,其惨烈程度,触目惊心。设计这个作品正是为了预防此类事故的发生,基于-Thread平台,使用ART-PI开发板,搭配燃气检测传感器和L610网络元,实现燃气浓度的采集与泄漏告警预警。 开发环境硬件::ART-PI(STM32H750XB),广和通L610-CN-00-MiniPCIe-10,警示灯,蜂鸣器,风扇,可燃气传感器,18650电池及充放电模组, RT-Thread版本:RT-Thread V 4.0.3 开发工具及版本:RT-Thread Studio V1.0.2 RT-Thread使用情况概述调度器,信号量,UART,WebNet, PIN 硬件框架方案图 家用燃气泄露告警系统方案如下图所示,主要由两部分组成,一部分是是家庭燃气告警系统,另一部分是由网络云平台,通知用户家庭燃气发生泄露。 家庭燃气告警系统由ART-PI搭配燃气传感器,蜂鸣器,警示灯,及L610联网系统组成,负责家庭本地端的燃气信息的采集,预警及发生泄露时换气,防止爆炸中毒。另一部分由云网络,将危险信息发给用户,提示用户及时关闭燃气,防止危险发生。 软件框架说明方案框架由5部分组成,分别为网络模块,主控元,控制元,采集模块及供电系统组成,供电系统为提供所有模块的驱动电能,主控元从采集模块中获取燃气浓度,根据浓度值通过控制元和网络模块保障用气安全. 系统开机后,依次初始化所有模块,由RT-Thread系统调度驱动所有模块. 软件模块说明系统在检测有燃气泄漏时,通过蜂鸣器提示用户,燃气发生了泄漏,当空间浓度超过一定阈值后,上报云平台,通过网络提示用户注意燃气泄漏情况,如果浓度继续升高,超过一定阈值,打开排气扇,将泄漏的可燃气抽出去,稀释浓度,降低爆炸,燃气中毒风险. 演示效果比赛感悟非常荣幸能参加这次比赛,这是一次很难得的学习物联网的机会,虽然在传统嵌入式行业深耕多年,但是很少接触到这个物联网,这也是一次很难得的尝试,之前虽然写过很多代码,也写过简易的调度操作系统,当我看RT-thread系统代码,还是被RT-thread的系统很多做法叹服,我这次虽然比赛的项目并不复杂,但是由于工作原因,没有抽出很多时间做这个,所以很惭愧.后续会继续完善,慢慢把更多的产品融入RT-Thread平台,和物联网相结合,也衷心希望RT-Thread能越来越好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顧棟

若对你有帮助,望对作者鼓励一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值