跳到主要内容

历史报警存储

插件用途

将达到指定等级的报警产生和恢复记录写入数据库,供历史报警查询和报表使用。

转发组范围、离线缓存和启停操作见数据转发。本页只说明历史报警存储特有的表、等级过滤、双库镜像和调试功能。

保存并查询一条报警

  1. 先给一个测试变量设置高限报警,不要用生产设备试报警。
  2. 打开“开发配置 → 数据转发”,新增转发组,范围选“手动选择”并保存。重新编辑组,将这个测试变量加入“转发变量”并保存。
  3. 在该组下新增目标 Demo_Alarm_Target,插件选择“历史报警存储”。
  4. 目标属性中选择数据库类型 Sqlite,连接字符串填 Data Source=manual-alarm.sqlite;journal mode=WAL。保持历史报警表名 historyAlarm、最小报警等级 0,脚本留空、双库镜像关闭,其余保持默认。
  5. 保存并启用组和目标。数据库文件位于网关运行目录,该目录必须可写。
  6. 在仿真或测试变量中先产生一次报警,再让它恢复。目标启动以前已经发生的事件不能作为本次存储验证。
  7. 进入“数据与告警 → 报警查询 → 历史报警”,在“转发目标”中选择刚建的目标,选项按“组名/目标名”显示,例如 Demo_Alarm_Group/Demo_Alarm_Target。选择覆盖本次操作的时间范围并确认,点击刷新图标,再核对变量、报警值与事件时间。

使用正式数据库时,将第 4 步改为实际数据库类型和连接字符串。要筛选严重报警再调整“最小报警等级”;它不是在这里设置变量的报警阈值。

目标基本信息

参数默认值如何配置
所属转发组-必须选择已保存的转发组。
目标名称-必填,同一转发组内不能重复。
启用开启关闭时不会初始化或写入报警表。
日志级别Info排查数据库或报警写入问题时临时使用 Debug
启动超时60页面可填 13600 秒。

目标属性

参数默认值如何配置
数据库类型SqlServer支持 SqlServerMySqlSqlitePostgreSql
分表策略不分表关系型数据库可按天、周、月、季度、年或自定义服务分表。
连接字符串开发环境 SQL Server 示例替换为实际数据库地址、账号和密码;账号需要建表、查询、插入和删除权限。
历史报警表名historyAlarm保存报警产生和恢复记录的表名;多个目标建议使用独立名称。
保留天数3650正整数;小于 1 的值会归一为 1。清理按报警 EventTime 执行。
历史报警表脚本从表达式选择器选择 Dynamic SQL 脚本,由脚本负责建表、写入和清理;留空使用标准表。
时区偏移+08:00+08:00-05:00 等固定偏移;留空表示 UTC。查询时使用相同约定。
最小报警等级0只接收 AlarmLevel >= 此值的报警;低于此值的报警和恢复事件都会被忽略。
双库镜像关闭仅关系型标准表支持;填写备用库后主库和备用库同时写入。

关系型数据库连接字符串

数据库示例
SQL ServerServer=127.0.0.1,1433;Database=thingsgateway_alarm;User Id=history_user;Password=<密码>;TrustServerCertificate=True;
MySQLServer=127.0.0.1;Port=3306;Database=thingsgateway_alarm;Uid=history_user;Pwd=<密码>;
SQLiteData Source=DB/alarm.db;journal mode=WAL
PostgreSQLHost=127.0.0.1;Port=5432;Database=thingsgateway_alarm;Username=history_user;Password=<密码>;

“双库镜像”仅支持 SQL Server、MySQL、SQLite 和 PostgreSQL。启用时,主库与备用库必须是不同的数据库实例,且不能同时配置“历史报警表脚本”。镜像对话框中的自动检查、自动补齐和容量设置与历史数据存储相同。

目标变量属性

该插件没有目标变量级附加参数。报警是否写入只由转发组范围和“最小报警等级”决定。

缓存与容量

参数默认值如何配置
启用失败重试缓存开启建议保持开启,数据库暂不可写时保留报警,恢复后自动补发。
缓存文件最大行数262144CacheDB 出站报警上限,超过后删除最旧数据。
上传分片大小2000每次写入或补发的最大报警数。
内存队列上限100000内存报警队列上限,持续超限仍可能丢弃旧数据。
过滤离线数据关闭该字段由通用目标属性提供,但历史报警的接收条件实际由转发组范围和“最小报警等级”决定;需要排除离线来源时应在转发组或报警规则中处理。
并发上传数量1默认串行写入;确认数据库承受能力后再调整。

目标调试

进入“开发配置 → 数据转发”,选择当前转发组和目标后打开“调试”。

功能作用
转发管线查看转发组范围和进入目标的报警数据。
缓存出站查看待写报警、保留重试和最近错误。

转发管线

历史报警存储转发管线

“转发管线”用于确认转发组范围、目标状态和进入目标的报警数据。

缓存出站

历史报警存储缓存出站

“缓存出站”显示报警队列、CacheDB 待处理数量、保留重试数和最近错误。启用离线缓存后,数据库恢复时会继续写入待处理报警。

验证方法

  1. 启用转发组和目标,确认目标在线。
  2. 使用允许测试的变量触发一条不低于“最小报警等级”的报警,再恢复该报警。
  3. 查询历史报警表,确认产生和恢复记录均已写入。

常见问题

现象检查方法
报警没有入库检查报警是否实际触发、报警等级是否达到下限、目标是否在线。
目标无法启动检查数据库连接、表名、分表策略和账号权限。
数据库恢复后未补写检查是否启用离线缓存,并查看“缓存出站”和目标日志。
双库镜像保存或启动失败确认主库与备用库不同、数据库类型受支持,且未配置历史报警表脚本。

相关操作

  • 数据转发:配置转发组、范围、触发、缓存、冗余和目标启停。
  • 报警配置:配置报警条件和等级。
  • 插件索引:查找其它采集或数据转发插件。