请教 iot 设备活跃有什么开源的 Health monitoring 方法库 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
excxapp
V2EX    程序员

请教 iot 设备活跃有什么开源的 Health monitoring 方法库

  •  
  •   excxapp 2020-04-16 15:30:10 +08:00 2935 次点击
    这是一个创建于 2083 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如有很多设备,要检测在线设备数,设备通过 mqtt 或者 5 分钟发一次心跳,有些设备突然断电等情况可能不会发送离线消息。 现在有什么好的开源设备活跃库吗

    19 条回复    2020-04-17 10:36:05 +08:00
    xcstream
        1
    xcstream  
       2020-04-16 16:13:59 +08:00
    后台接受到心跳,直接往时序数据库里写就完事了
    excxapp
        2
    excxapp  
    OP
       2020-04-16 16:33:23 +08:00
    @xcstream 时序数据库写入但是需要告警机制,比如超过 5 分钟离线发送消息检测。
    我时序用的是 influxfb 。
    如果设备少的话还好,如果设备多,要经常 select 这种吗?
    现在 github 里面不知道有没有针对这种保活的开源软件。
    shaopu
        3
    shaopu  
       2020-04-16 16:59:53 +08:00
    可以参考阿里和小米是怎么弄的~
    mango88
        4
    mango88  
       2020-04-16 17:01:23 +08:00
    MQTT 不是有遗嘱消息的支持吗
    excxapp
        5
    excxapp  
    OP
       2020-04-16 17:29:09 +08:00
    @shaopu 咋参考?大佬有没有相关资料文档地址啥的?没看到网上有分享

    @mango88 mqtt 突然断开后,是不会发送消息的,我服务端要监控到,同时有些设备可能也不是 mqtt 的。监控设备断续。

    现在想到的一个方案是:
    redis 有序列表,在设备交互过程设置 score,排序获得超时的设备判断断开或者去 health check.
    HHBilly
        6
    HHBilly  
       2020-04-16 18:07:11 +08:00
    @excxapp 在建立连接的时候设置 keepalive 心跳时间就行 突然断开后会如果在心跳时间内没重新连上 就会自动发送遗嘱消息
    mango88
        7
    mango88  
       2020-04-16 18:41:41 +08:00
    @excxapp

    #6 已经说了遗嘱消息的作用

    客户端连接的时候,设置遗嘱消息
    服务端需要订阅这个遗嘱消息的主题,
    当客户端断开时,就会收到这个遗嘱消息
    这样就可以知道了某个设备离线了
    mango88
        8
    mango88  
       2020-04-16 18:43:42 +08:00
    @mango88 不是 mqtt 的设备的话,按你的 score 排序应该可行
    iRiven
        9
    iRiven  
       2020-04-16 19:52:59 +08:00
    判断设备是否出现异常离线直接查看最后一次更新数据的时间,不要去维护多余的状态。
    Oktfolio
        10
    Oktfolio  
       2020-04-16 19:57:58 +08:00
    最后上报时间
    xcstream
        11
    xcstream  
       2020-04-16 23:34:55 +08:00
    用 redis
    只统计数量的话可以
    incr #key#
    key 就是类似 yyyy-MM-dd hh:( mm - mm%5)

    统计每个设备可以
    hset #key# #deviceid#
    thomaspaine
        12
    thomaspaine  
       2020-04-17 02:54:26 +08:00
    你也没说场景

    开源服务 edgex,里面也有健康监测,你可以关注下

    另外从硬件上面来说,你可以加装超级电容或者纽扣电池,如果是用这种设备供电就发异常信息,然后关机。超级电容可以撑 5 秒吧至少。就是需要修改设备程序了。
    zexinwu84
        13
    zexinwu84  
       2020-04-17 09:09:20 +08:00 via Android
    规则引擎
    excxapp
        14
    excxapp  
    OP
       2020-04-17 09:14:15 +08:00
    @zexinwu84 比如?有 github 连接 /文档之类的吗
    excxapp
        15
    excxapp  
    OP
       2020-04-17 09:17:04 +08:00
    需求:设备在线 /离线 /活跃度(交互次数等)状态监控,设备异常状态告警
    lzyliangzheyu
        16
    lzyliangzheyu  
       2020-04-17 10:03:23 +08:00
    遗嘱消息类似于诸葛亮给刘备的锦囊妙计,服务端一段时间收不到消息之后就会打开这个锦囊(遗嘱消息)
    lzyliangzheyu
        17
    lzyliangzheyu  
       2020-04-17 10:04:51 +08:00
    遗嘱消息是刚建立连接客户端就会发给服务端的,但是服务端只是把他收着,等到设备失联了才把遗嘱消息生效
    excxapp
        18
    excxapp  
    OP
       2020-04-17 10:29:50 +08:00
    @lzyliangzheyu 有些设备不一定易是 mqtt 连接的,有可能是通过队列连接的第三方
    huruwo
        19
    huruwo  
       2020-04-17 10:36:05 +08:00
    坏消息是没有
    好消息是大家有这个需求,你可以开始做一点微小的贡献给开源社区了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5453 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 03:40 PVG 11:40 LAX 19:40 JFK 22:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86