通用的告警通知方案设计

监控告警模块用于实时监控各类设备数据,通过采集、分析和处理数据,生成有价值的指标和警报信息,并向管理员发送通知,确保业务稳定运行。

1.1 目标

监控告警模块用于实时监控各类设备数据,通过采集、分析和处理数据,生成有价值的指标和警报信息,并向管理员发送通知,确保业务稳定运行。

  • 保持业务稳定:监控告警模块需要实时监控设备运行状态,并能够及时发现问题和异常情况,及时发出告警通知并迅速响应异常,以便管理员采取及时措施。
  • 改善服务质量:监控告警模块支持对设备数据进行采集和分析,生成有价值的指标和警报信息,及时发现并解决问题,避免用户受到影响,提高用户体验。例如通过监控设备的在线率,当出现大规模的设备离线时,能第一时间介入解决问题,避免设备因故障导致客户业务受阻。

1.2 功能

111.drawio.svg

主要包括数据采集、数据分析、告警通知、告警处理、数据展示、数据管理界面等多个功能模块。

  • 数据采集:负责采集各个模块的数据,包括但不限于业务平台系统、DB、设备等的数据。采集的数据会存储到对应的数据库中,供后续分析使用。
  • 数据分析:负责对采集到的数据进行处理、分析和计算,从而得出有价值的指标和警报信息。数据处理模块包括数据分析、告警规则和算法等子模块。
  • 告警通知:负责向管理员/其他系统发送数据分析模块生成的警报通知,包括短信、邮件、即时消息等多种形式。管理员可以根据自己的需求,选择接收告警通知的方式和通知人。
  • 告警处理:负责记录告警信息的处理情况,包括告警信息的处理节点、是否已经被处理、处理结果如何等。管理员在收到告警通知后,采取措施解决问题,并将处理情况记录,以便后续分析和跟踪。
  • 数据展示:负责将监控数据以及分析结果以 Dashboard 的形式展示出来,帮助管理员更直观地了解设备/场站等的运行状况。
  • 管理界面:提供监控告警的管理界面,管理员可以通过该界面进行警报设置、数据查看等操作。管理员可以在该界面中设置预警阈值等参数,用于数据分析模块的判断标准。

2. 告警规则(条件)

告警规则需要结合业务需求,通过对监控指标进行分析和比对,判断当前状态是否正常,并生成相应的告警信息的规则。告警规则需要考虑多个因素,如监控指标的变化趋势、阈值设定、告警级别、告警通知方式等。常用的告警规则有:

  1. 阈值告警规则:该规则根据监控指标的阈值来触发警报,例如,温度高于阈值时,就会触发警报,并通知相关人员和部门。
  2. 持续时间告警规则:该规则根据监控指标的持续时间来触发警报,例如,当在线设备故障率超过了阈值,并持续 5 分钟以上时,就会触发警报,并通知相关人员和部门。
  3. 模式告警规则:该规则根据监控指标的模式和趋势来触发警报,例如,当在线设备的可用率在一段时间内一直处于下降趋势时,就会触发警报,并通知相关人员和部门。
  4. 组合告警规则:该规则是将多个告警规则进行组合,当满足其中一个或多个规则时,就会触发警报,并通知相关人员和部门。
  5. 定时告警规则:该规则根据时间设置来触发警报,例如,每天下午 4 点时,对设备进行一次巡检,若发现异常,则触发警报,并通知相关人员和部门。
  6. 基于事件的告警规则: 基于事件的告警规则可以根据事件的发生来触发警报。例如,通过对设备状态数据的监测,当出现设备异常故障这些事件时,可以自动触发警报,并通知相关人员进行故障诊断和修复。

设置告警规则的整体流程如下:

222.drawio.svg

  1. 选择告警规则的数据来源, 将设备的物模型作为设置触发条件的入参;
  2. 设置什么情况下触发告警, 比如某个设备的某个属性的当前值超过阈值; 某几个设备的的某几个值发生符合条件的变更, 则触发某种告警;
  3. 根据告警严重等级设置告警级别, 不同的级别会有不同的处理方式和统计方法;
  4. 设置告警方式;

2.1 设备源

告警规则支持两种设备源类型:

  • 设备类型:告警规则的作用范围包括设备类型下的所有设备(同一个类设置的物模型一致)。例如:比如某厂商的同一型号的智能水表,那么该类型下的所有智能设备,都可使用该告警规则,而无需为每个设备重复创建告警规则。
  • 设备:告警规则的作用范围仅针对指定的一个或多个设备。
  • 多个设备组合, 这种主要用于设置业务上告警规则, 比如某个场站的告警规则, 会由多个设备共同组合验证。

2.2 触发条件

触发条件是告警规则中的重要部分,支持设置多个属性运算条件, 比如:

  1. 水位高于某个阈值;
  2. 某点管道流量低于某个阈值;

可同时添加多个触发条件,任意一个触发器满足条件或全部满足条件才会触发.

2.2.1 重复次数

设置重复次数后,告警条件首次触发时不会进入告警状态,也不会发送告警通知。当告警条件 连续重复 触发该次数后,进入告警状态并发送告警通知。

2.2.2 持续时间

设置持续时间后,系统会在告警条件被 连续触发 达到该持续时间后,进入告警状态。

需要注意的是,当 重复次数持续时间 同时设置时,两者必须同时满足,设备才会进入 告警 状态。

比如:

  1. 触发条件是温度大于 29℃
  2. 重复次数是 3 次
  3. 持续时间是 10 分钟

2.2.3 有效时间段(待定)

当希望告警规则只在部分时段有效时,可以开启有效时段选项:

  1. 全天每 30 分钟作为一个时段单位;

  2. 可以选择任意想要的时段;

  3. 无效时段允许告警恢复;

2.3. 告警级别

告警级别用来区分告警的重要级别,用在告警历史和告警通知的显示文字中。例如,在短信通知方式中,告警级别会显示在短信特殊位置。

可选的告警级别包括:

  • 普通告警
  • 重要告警
  • 紧急告警

可以根据不同的告警级别进行灵活配置,如设置普通告警无需处理,但需要记录日志;严重告警需要及时通知相关人员,以便进行处理;紧急告警需要立即采取措施,以避免损失。

3. 告警通知(动作)

当系统发现问题并生成告警时,告警通知模块会自动触发,并将告警信息通知给相关人员和部门,以便及时采取措施解决问题。

具体步骤如下:

  1. 告警生成:系统检测到异常情况并生成告警信息。

  2. 告警分类:告警通知模块对告警信息进行分类,根据不同的告警等级和类型,选择相应的通知方式和接收人员。

  3. 通知方式选择:告警通知模块根据用户设置的通知方式,选择合适的方式通知相关人员。例如,对于紧急的告警,可以通过短信或电话通知负责人员;对于重要的告警,可以通过邮件或即时通讯工具(企业微信或钉钉等)通知相关人员,普通告警则在大屏幕上进行展示即可。

    • 邮件通知:将告警信息通过邮件发送给相关人员或部门。该方式适用于需要及时通知并且信息量较大的告警情况。

    • 短信通知:将告警信息以短信的形式发送给相关人员或部门。该方式适用于需要紧急通知但信息量较少的告警情况。

    • 语音电话通知:将告警信息通过语音电话形式通知相关人员或部门。该方式适用于需要紧急通知但又不能立即查看信息的告警情况。

    • 微信/钉钉/企业微信等即时通讯工具通知:将告警信息通过即时通讯工具发送给相关人员或部门。该方式适用于需要及时通知且方便处理的告警情况。

    • 大屏幕展示:将告警信息以可视化的形式展示在大屏幕上,方便相关人员实时了解监控情况。

    • 站内通知:当监控系统产生告警信息时,可通过应用内通知的方式快速通知相关人员,并提供详细的告警信息。

  4. 通知内容生成:告警通知模块生成告警通知内容,并将告警信息、设备信息、时间等关键信息包含在通知中,以便相关人员了解问题的具体情况。

  5. 通知发送:通过自定义规则,告警通知模块将通知发送给预设的接收人员,同时记录发送时间、发送状态等信息,方便后续跟进和处理。

3.1 通知组

告警通知方式前期主要考虑 短信, 后期可加入其他告警方式.

在使用通知方式之前, 需要创建 通知组.

如果不设置告警通知组, 则只会记录告警历史记录.

通知组 的作用是复用通知配置, 比如张三负责多个项目部, 在设置告警规则时, 不需要多次填写张三作为通知人, 只需要选择第一次创建好的通知组即可.

一个通知组只能选择一个通知方式,如果需要多种通知方式,则需要创建多个通知组。

3.2 通知方式

目前只考虑 短信 通知.

3.3 每日通知上限

设置告警规则的每日总通知次数上限,超过上限后当日不再发送通知.

4. 告警规则的可用状态

每个告警规则可设置全局可用状态,用来启用或禁用该规则,对该告警规则的所有设备源都生效。

在全局可用状态开启的情况上,可以对关联的设备独立设置启用或禁用状态。例如,当对某个设备进行维护时,可临时关闭该设备的告警规则,但不影响告警规则关联的其它设备。

5. 告警规则的告警状态

告警规则拥有以下几种的告警状态:

  • 正常(Ok):表示最近一次设备属性上报未触发告警规则。
  • 告警(Alerting):表示最近一次设备属性上报已触发告警规则,且达到设置的重复次数和持续时间。如果未设置重复次数和持续时间,则首次触发会进入告警状态。
  • 待定(Pending):表示最近一次设备属性上报已触发告警规则,但未达到设置的重复次数和持续时间。
  • 未知(Unknown):表示告警规则暂时无明确的告警状态,例如:规则创建后一直没有相关设备属性上报,或者告警规则被禁用、不在有效时段等情况。

20241229154732_9Tt1ae8Q.webp

6. 警报信息处理

对已经发出来的告警信息进行处理以及记录处理的内容,可以清晰了解每个告警的处理状态和处理过程,更好地管理和维护系统。

6.1. 告警信息的处理

当一个告警被触发并且通知给调度后,调度需要对这个告警信息进行处理。这个处理过程包括以下几个步骤:

  1. 分析告警信息:调度需要对告警信息进行分析,了解告警的来源、告警等级以及影响范围等,以便更好地判断告警的紧急程度和处理方法。
  2. 判断告警的处理方法:根据告警的紧急程度和影响范围,调度需要判断告警的处理方法。如果告警比较紧急且影响范围较大,调度需要第一时间联系一线运维进行现场处理;如果告警比较普通且影响范围较小,调度可以在合适的时间进行处理。
  3. 处理告警:具体措施包括合闸、重启设备等等。处理完成后,一线运维需要记录处理的内容,以便后续的跟踪和分析。

6.2. 处理记录的跟踪

每个告警信息都应该有相应的处理记录,以便追踪告警的处理情况。处理记录的跟踪包括以下几个方面:

  1. 记录告警的处理过程

    需要记录告警的处理过程,包括采取的措施、处理时间、处理结果等等。这些记录可以帮助了解告警的处理情况和处理效果。

  2. 记录告警的处理人员

    需要记录处理告警的人员信息,包括处理人员的姓名、工号、联系方式等等。这些记录可以帮助了解告警的处理责任人和责任区域。

  3. 记录告警的处理状态

    需要记录告警的处理状态,包括告警的开始时间、结束时间、处理状态等等。这些记录可以帮助了解告警的处理状态和处理效率。

告警信息处理状态:

  • 未处理:当系统接收到告警信息后,还没有进行任何处理,此时告警状态为未处理状态;

  • 处理中:当开始处理告警信息时,告警状态会被设置为处理中;

  • 已解决:当处理告警信息后,确定问题已经得到解决,告警状态将被设置为已解决状态;

    • 人工复归
    • 自动复归
  • 误报:当告警信息被判定为误报时,告警状态会被设置为误报状态;

  • 忽略:当管告警信息不需要被处理时,可以将告警状态设置为忽略状态;

6. 告警历史

可通过告警级别, 当前告警状态, 设备等条件查询告警历史.

7. 告警统计

直观的分析在过去的不同时段中,设备告警的出现频次。

8. 站内通知

当设备触发告警或恢复正常时,控制台右上角会有通知提示,点击提示栏可以快速到达告警历史详情页。

9. 界面设计

此方案包括以下功能模块:

  1. 告警设置模块

    用于设置告警的规则和处理方式,如设置告警的级别、触发条件、告警通知方式、告警的处理方式等。

  2. 告警列表模块

    包括当前所有的告警信息以及过去所有发生的告警信息,包括告警等级、告警类型、告警内容、告警时间等信息。

  3. 告警详情

    展示选中告警的详细信息,包括告警的发生时间、告警的影响范围、告警的处理情况等信息。

  4. 告警处理

    用于处理已经发生的告警,通常在告警详情页面进行处理通过该模块对告警信息进行处理,包括告警确认、告警分配、告警处理进展跟踪等。同时可以将处理结果记录在该模块中,便于后续的跟踪和分析。

  5. 告警统计

    对所有告警信息进行统计分析,包括告警级别、告警类型、设备类型、告警时间、告警内容等等。通过该模块来了解告警情况的总体概括,同时也为监控系统的改进和优化提供数据支持。

  6. 总览界面:展示系统中的所有告警信息,以及告警的处理情况和处理结果,并按照告警级别、告警类型等分类。

  7. 数据可视化分析界面:结合具体的监控告警指标,通过图表的形式展示具体告警数据的趋势和变化,例如历史告警故障设备趋势、历史故障 SIM 卡分布等。