Influxdb 接入HTTP终端实现报警自定义

十年河东,十年河西,莫欺少年穷

学无止境,精益求精

influxdb 的报警由以下三种组成

 

 

 1、创建检查

 

 

 红色框为绝对值检查,绿色框为【死人检查】,这里选择绝对值检查

打开创建面板后,选择你要操作的存储桶,表,字段,以及所使用的函数

 

 

 上图选择的存储桶为packing ,表为pack,字段为temp,函数为max

其中temp可以理解为设备传感器传递过来的温度,函数max是指取最大值。

切换到第二个面板,我们定义时间和报警级别

 

 

 名称和时间很好理解,不做解释,offset是指偏移量,如果你设置为1秒,则他会查询延迟一秒的数据。

influxdb 将报警等级分为4中,如下

 

 

 点开其中一个 + 号

 

 

 创建如下:

 

 

 当温度大于30度时,为致命的警告

 

 

 当温度处于20~29.999时,为警告性报警

 

 

 当温度处于10~19.999时,为一般性报警

 

 

 当温度小于10时,正常

点击报存,进入信息推送终端的创建

2、信息推送终端

 

 

 这里是指一旦有报警信息,influxdb自动会将报警信息(json格式)推送到终端URL

我的终端URL代码为(Net6代码):

        [AllowAnonymous]
        [HttpPost]
        [Route("TestAlter")]
        public IActionResult TestAlter([FromBody] JObject data)
        {
            logger.LogError(JsonConvert.SerializeObject(data));
            return Ok(data);
        }

3、告警规则

 

 告警规则中的时间间隔是用来检测产生的报警信息,而产生的报警信息存在系统存储桶中,如下

 

 

 查看这个存储桶

 

 

 现在像packing 存储桶中插入一条数据,

pack,code=01 temp=32d 

等待15秒后,查看报警列表

 

 

 

 

 

 最后,检查下终端HTTP是否接收到报警信息

在服务器上,我用Nlog记录的日志

2022-12-05 16:14:51.3820|0|ERROR|IotWebSite.Controllers.BatteryInfluxController|{"_check_id":"0a6432886bd87000","_check_name":"Test","_level":"crit","_measurement":"notifications","_message":"Check: Test is: crit","_notification_endpoint_id":"0a6434db6b691000","_notification_endpoint_name":"Http_test","_notification_rule_id":"0a64354bf80fa000","_notification_rule_name":"RuleTest","_source_measurement":"pack","_source_timestamp":1670228220000000000,"_start":"2022-12-05T08:16:45Z","_status_timestamp":1670228220000000000,"_stop":"2022-12-05T08:17:15Z","_time":"2022-12-05T08:17:15Z","_type":"threshold","_version":1,"code":"01","temp":32} |url: |action: |IotWebSite.Controllers.BatteryInfluxController.TestAlter

 

 @天才卧龙的博客

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章