通用的告警通知方案设计
通用的告警通知方案设计
dong4j监控告警模块用于实时监控各类设备数据,通过采集、分析和处理数据,生成有价值的指标和警报信息,并向管理员发送通知,确保业务稳定运行。
1.1 目标
监控告警模块用于实时监控各类设备数据,通过采集、分析和处理数据,生成有价值的指标和警报信息,并向管理员发送通知,确保业务稳定运行。
- 保持业务稳定:监控告警模块需要实时监控设备运行状态,并能够及时发现问题和异常情况,及时发出告警通知并迅速响应异常,以便管理员采取及时措施。
- 改善服务质量:监控告警模块支持对设备数据进行采集和分析,生成有价值的指标和警报信息,及时发现并解决问题,避免用户受到影响,提高用户体验。例如通过监控设备的在线率,当出现大规模的设备离线时,能第一时间介入解决问题,避免设备因故障导致客户业务受阻。
1.2 功能
主要包括数据采集、数据分析、告警通知、告警处理、数据展示、数据管理界面等多个功能模块。
- 数据采集:负责采集各个模块的数据,包括但不限于业务平台系统、DB、设备等的数据。采集的数据会存储到对应的数据库中,供后续分析使用。
- 数据分析:负责对采集到的数据进行处理、分析和计算,从而得出有价值的指标和警报信息。数据处理模块包括数据分析、告警规则和算法等子模块。
- 告警通知:负责向管理员/其他系统发送数据分析模块生成的警报通知,包括短信、邮件、即时消息等多种形式。管理员可以根据自己的需求,选择接收告警通知的方式和通知人。
- 告警处理:负责记录告警信息的处理情况,包括告警信息的处理节点、是否已经被处理、处理结果如何等。管理员在收到告警通知后,采取措施解决问题,并将处理情况记录,以便后续分析和跟踪。
- 数据展示:负责将监控数据以及分析结果以 Dashboard 的形式展示出来,帮助管理员更直观地了解设备/场站等的运行状况。
- 管理界面:提供监控告警的管理界面,管理员可以通过该界面进行警报设置、数据查看等操作。管理员可以在该界面中设置预警阈值等参数,用于数据分析模块的判断标准。
2. 告警规则(条件)
告警规则需要结合业务需求,通过对监控指标进行分析和比对,判断当前状态是否正常,并生成相应的告警信息的规则。告警规则需要考虑多个因素,如监控指标的变化趋势、阈值设定、告警级别、告警通知方式等。常用的告警规则有:
- 阈值告警规则:该规则根据监控指标的阈值来触发警报,例如,温度高于阈值时,就会触发警报,并通知相关人员和部门。
- 持续时间告警规则:该规则根据监控指标的持续时间来触发警报,例如,当在线设备故障率超过了阈值,并持续 5 分钟以上时,就会触发警报,并通知相关人员和部门。
- 模式告警规则:该规则根据监控指标的模式和趋势来触发警报,例如,当在线设备的可用率在一段时间内一直处于下降趋势时,就会触发警报,并通知相关人员和部门。
- 组合告警规则:该规则是将多个告警规则进行组合,当满足其中一个或多个规则时,就会触发警报,并通知相关人员和部门。
- 定时告警规则:该规则根据时间设置来触发警报,例如,每天下午 4 点时,对设备进行一次巡检,若发现异常,则触发警报,并通知相关人员和部门。
- 基于事件的告警规则: 基于事件的告警规则可以根据事件的发生来触发警报。例如,通过对设备状态数据的监测,当出现设备异常故障这些事件时,可以自动触发警报,并通知相关人员进行故障诊断和修复。
设置告警规则的整体流程如下:
- 选择告警规则的数据来源, 将设备的物模型作为设置触发条件的入参;
- 设置什么情况下触发告警, 比如某个设备的某个属性的当前值超过阈值; 某几个设备的的某几个值发生符合条件的变更, 则触发某种告警;
- 根据告警严重等级设置告警级别, 不同的级别会有不同的处理方式和统计方法;
- 设置告警方式;
2.1 设备源
告警规则支持两种设备源类型:
- 设备类型:告警规则的作用范围包括设备类型下的所有设备(同一个类设置的物模型一致)。例如:比如某厂商的同一型号的智能水表,那么该类型下的所有智能设备,都可使用该告警规则,而无需为每个设备重复创建告警规则。
- 设备:告警规则的作用范围仅针对指定的一个或多个设备。
- 多个设备组合, 这种主要用于设置业务上告警规则, 比如某个场站的告警规则, 会由多个设备共同组合验证。
2.2 触发条件
触发条件是告警规则中的重要部分,支持设置多个属性运算条件, 比如:
- 水位高于某个阈值;
- 某点管道流量低于某个阈值;
可同时添加多个触发条件,任意一个触发器满足条件或全部满足条件才会触发.
2.2.1 重复次数
设置重复次数后,告警条件首次触发时不会进入告警状态,也不会发送告警通知。当告警条件 连续重复 触发该次数后,进入告警状态并发送告警通知。
2.2.2 持续时间
设置持续时间后,系统会在告警条件被 连续触发 达到该持续时间后,进入告警状态。
需要注意的是,当 重复次数 和 持续时间 同时设置时,两者必须同时满足,设备才会进入 告警 状态。
比如:
- 触发条件是温度大于 29℃
- 重复次数是 3 次
- 持续时间是 10 分钟
2.2.3 有效时间段(待定)
当希望告警规则只在部分时段有效时,可以开启有效时段选项:
全天每 30 分钟作为一个时段单位;
可以选择任意想要的时段;
无效时段允许告警恢复;
2.3. 告警级别
告警级别用来区分告警的重要级别,用在告警历史和告警通知的显示文字中。例如,在短信通知方式中,告警级别会显示在短信特殊位置。
可选的告警级别包括:
- 普通告警
- 重要告警
- 紧急告警
可以根据不同的告警级别进行灵活配置,如设置普通告警无需处理,但需要记录日志;严重告警需要及时通知相关人员,以便进行处理;紧急告警需要立即采取措施,以避免损失。
3. 告警通知(动作)
当系统发现问题并生成告警时,告警通知模块会自动触发,并将告警信息通知给相关人员和部门,以便及时采取措施解决问题。
具体步骤如下:
告警生成:系统检测到异常情况并生成告警信息。
告警分类:告警通知模块对告警信息进行分类,根据不同的告警等级和类型,选择相应的通知方式和接收人员。
通知方式选择:告警通知模块根据用户设置的通知方式,选择合适的方式通知相关人员。例如,对于紧急的告警,可以通过短信或电话通知负责人员;对于重要的告警,可以通过邮件或即时通讯工具(企业微信或钉钉等)通知相关人员,普通告警则在大屏幕上进行展示即可。
邮件通知:将告警信息通过邮件发送给相关人员或部门。该方式适用于需要及时通知并且信息量较大的告警情况。
短信通知:将告警信息以短信的形式发送给相关人员或部门。该方式适用于需要紧急通知但信息量较少的告警情况。
语音电话通知:将告警信息通过语音电话形式通知相关人员或部门。该方式适用于需要紧急通知但又不能立即查看信息的告警情况。
微信/钉钉/企业微信等即时通讯工具通知:将告警信息通过即时通讯工具发送给相关人员或部门。该方式适用于需要及时通知且方便处理的告警情况。
大屏幕展示:将告警信息以可视化的形式展示在大屏幕上,方便相关人员实时了解监控情况。
站内通知:当监控系统产生告警信息时,可通过应用内通知的方式快速通知相关人员,并提供详细的告警信息。
通知内容生成:告警通知模块生成告警通知内容,并将告警信息、设备信息、时间等关键信息包含在通知中,以便相关人员了解问题的具体情况。
通知发送:通过自定义规则,告警通知模块将通知发送给预设的接收人员,同时记录发送时间、发送状态等信息,方便后续跟进和处理。
3.1 通知组
告警通知方式前期主要考虑 短信, 后期可加入其他告警方式.
在使用通知方式之前, 需要创建 通知组.
如果不设置告警通知组, 则只会记录告警历史记录.
通知组 的作用是复用通知配置, 比如张三负责多个项目部, 在设置告警规则时, 不需要多次填写张三作为通知人, 只需要选择第一次创建好的通知组即可.
一个通知组只能选择一个通知方式,如果需要多种通知方式,则需要创建多个通知组。
3.2 通知方式
目前只考虑 短信 通知.
3.3 每日通知上限
设置告警规则的每日总通知次数上限,超过上限后当日不再发送通知.
4. 告警规则的可用状态
每个告警规则可设置全局可用状态,用来启用或禁用该规则,对该告警规则的所有设备源都生效。
在全局可用状态开启的情况上,可以对关联的设备独立设置启用或禁用状态。例如,当对某个设备进行维护时,可临时关闭该设备的告警规则,但不影响告警规则关联的其它设备。
5. 告警规则的告警状态
告警规则拥有以下几种的告警状态:
- 正常(Ok):表示最近一次设备属性上报未触发告警规则。
- 告警(Alerting):表示最近一次设备属性上报已触发告警规则,且达到设置的重复次数和持续时间。如果未设置重复次数和持续时间,则首次触发会进入告警状态。
- 待定(Pending):表示最近一次设备属性上报已触发告警规则,但未达到设置的重复次数和持续时间。
- 未知(Unknown):表示告警规则暂时无明确的告警状态,例如:规则创建后一直没有相关设备属性上报,或者告警规则被禁用、不在有效时段等情况。
6. 警报信息处理
对已经发出来的告警信息进行处理以及记录处理的内容,可以清晰了解每个告警的处理状态和处理过程,更好地管理和维护系统。
6.1. 告警信息的处理
当一个告警被触发并且通知给调度后,调度需要对这个告警信息进行处理。这个处理过程包括以下几个步骤:
- 分析告警信息:调度需要对告警信息进行分析,了解告警的来源、告警等级以及影响范围等,以便更好地判断告警的紧急程度和处理方法。
- 判断告警的处理方法:根据告警的紧急程度和影响范围,调度需要判断告警的处理方法。如果告警比较紧急且影响范围较大,调度需要第一时间联系一线运维进行现场处理;如果告警比较普通且影响范围较小,调度可以在合适的时间进行处理。
- 处理告警:具体措施包括合闸、重启设备等等。处理完成后,一线运维需要记录处理的内容,以便后续的跟踪和分析。
6.2. 处理记录的跟踪
每个告警信息都应该有相应的处理记录,以便追踪告警的处理情况。处理记录的跟踪包括以下几个方面:
记录告警的处理过程
需要记录告警的处理过程,包括采取的措施、处理时间、处理结果等等。这些记录可以帮助了解告警的处理情况和处理效果。
记录告警的处理人员
需要记录处理告警的人员信息,包括处理人员的姓名、工号、联系方式等等。这些记录可以帮助了解告警的处理责任人和责任区域。
记录告警的处理状态
需要记录告警的处理状态,包括告警的开始时间、结束时间、处理状态等等。这些记录可以帮助了解告警的处理状态和处理效率。
告警信息处理状态:
未处理:当系统接收到告警信息后,还没有进行任何处理,此时告警状态为未处理状态;
处理中:当开始处理告警信息时,告警状态会被设置为处理中;
已解决:当处理告警信息后,确定问题已经得到解决,告警状态将被设置为已解决状态;
- 人工复归
- 自动复归
误报:当告警信息被判定为误报时,告警状态会被设置为误报状态;
忽略:当管告警信息不需要被处理时,可以将告警状态设置为忽略状态;
6. 告警历史
可通过告警级别, 当前告警状态, 设备等条件查询告警历史.
7. 告警统计
直观的分析在过去的不同时段中,设备告警的出现频次。
8. 站内通知
当设备触发告警或恢复正常时,控制台右上角会有通知提示,点击提示栏可以快速到达告警历史详情页。
9. 界面设计
此方案包括以下功能模块:
告警设置模块
用于设置告警的规则和处理方式,如设置告警的级别、触发条件、告警通知方式、告警的处理方式等。
告警列表模块
包括当前所有的告警信息以及过去所有发生的告警信息,包括告警等级、告警类型、告警内容、告警时间等信息。
告警详情
展示选中告警的详细信息,包括告警的发生时间、告警的影响范围、告警的处理情况等信息。
告警处理
用于处理已经发生的告警,通常在告警详情页面进行处理通过该模块对告警信息进行处理,包括告警确认、告警分配、告警处理进展跟踪等。同时可以将处理结果记录在该模块中,便于后续的跟踪和分析。
告警统计
对所有告警信息进行统计分析,包括告警级别、告警类型、设备类型、告警时间、告警内容等等。通过该模块来了解告警情况的总体概括,同时也为监控系统的改进和优化提供数据支持。
总览界面:展示系统中的所有告警信息,以及告警的处理情况和处理结果,并按照告警级别、告警类型等分类。
数据可视化分析界面:结合具体的监控告警指标,通过图表的形式展示具体告警数据的趋势和变化,例如历史告警故障设备趋势、历史故障 SIM 卡分布等。