|
@@ -8,7 +8,7 @@ mqtt测试服务器报警模块
|
|
|
AalrmModule 是一个报警模块,可以通过扫描数据库中的数据,根据设置的规则进行故障报警的独立程序
|
|
|
|
|
|
# 安装启动
|
|
|
-前置条件:需要mysql数据库,linux c环境(centos等)
|
|
|
+>前置条件:需要mysql数据库,linux c环境(centos等)
|
|
|
1.拷贝本项目到服务器,在AlarmModule目录下执行
|
|
|
```
|
|
|
make
|
|
@@ -29,8 +29,8 @@ tail -f -n 1000 /tmp/log/xinyun_mqtt_alarm.svr.log
|
|
|
```
|
|
|
|
|
|
# 分析
|
|
|
- 考虑到物联网项目中,设备数量和节点数量的不断增多,
|
|
|
-
|
|
|
+ 考虑到物联网项目中,设备数量和节点数量的不断增多,
|
|
|
+
|
|
|
使用之前扫描数据库历史表和逐条解析接收报文方式,会导致性能问题和其他误报警等问题,
|
|
|
|
|
|
因此采用此方式定时扫描数据库status表,根据设定的阈值规则进行告警判断。
|
|
@@ -43,7 +43,7 @@ tail -f -n 1000 /tmp/log/xinyun_mqtt_alarm.svr.log
|
|
|
|
|
|
### 不管是网关还是节点处理的报警逻辑是一样的,报警的类型分以下2大类
|
|
|
|
|
|
- 1.继电器数据判断(错误码中包括了设备上传的各种报警)
|
|
|
+1. 继电器数据判断(错误码中包括了设备上传的各种报警)
|
|
|
```
|
|
|
//继电器状态:
|
|
|
#define SW_ON 0 //0x0000:继电器合闸
|
|
@@ -63,13 +63,14 @@ tail -f -n 1000 /tmp/log/xinyun_mqtt_alarm.svr.log
|
|
|
```
|
|
|
这部分数据通过RelayAlarm函数处理
|
|
|
|
|
|
- 2.结合时间段,拉合闸状态、电流阈值的告警
|
|
|
-
|
|
|
-+ 自动模式合闸时间段继电器拉闸 告警
|
|
|
-+ 自动模式拉闸时间继电器合闸 告警
|
|
|
-+ 继电器拉闸状态有电流 告警
|
|
|
-+ 继电器合闸状态无电流 告警
|
|
|
-+ 继电器合闸状态电流偏离正常阈值 告警(需事先采集正常电流最大最小值)
|
|
|
+2. 结合时间段,拉合闸状态、电流阈值的告警
|
|
|
+```
|
|
|
+自动模式合闸时间段继电器拉闸 告警
|
|
|
+自动模式拉闸时间继电器合闸 告警
|
|
|
+继电器拉闸状态有电流 告警
|
|
|
+继电器合闸状态无电流 告警
|
|
|
+继电器合闸状态电流偏离正常阈值 告警(需事先采集正常电流最大最小值)
|
|
|
+```
|
|
|
|
|
|
### 报警其他情况排除
|
|
|
1. 告警dev_fault表计数字段fault_count=3 连续报警3次才会真正报警
|