家用 PC 上运行了一个自己写的监控类程序,人在外面如何得知程序是否正常运行? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ignor
V2EX    Windows

家用 PC 上运行了一个自己写的监控类程序,人在外面如何得知程序是否正常运行?

  •  
  •   ignor 2021-12-01 11:49:27 +08:00 4596 次点击
    这是一个创建于 1410 天前的主题,其中的信息可能已经有所发展或是发生改变。
    写了个小脚本用来监控某种状态,触发了条件会给自己发邮件通知。

    但是如果程序 down 掉或者网断了自然就没办法收到通知了,所以有没有比较简单的办法在手机和 PC 之间实现一个心跳机制?

    利用第三方服务也行,主要是想弄得简单点。
    35 条回复    2021-12-18 00:29:43 +08:00
    dblpx
        1
    dblpx  
       2021-12-01 12:57:37 +08:00   1
    每隔一段时间给自己发保活邮件吧,邮箱里设定规则,主题包含保活字样的目标邮件不提醒且移动到目标文件夹,然后通过这个文件夹里的保活邮件判断服务是否在线
    orangie
        2
    orangie  
       2021-12-01 12:57:39 +08:00
    网断了那就完全没办法了。第三方服务可以试试 IFTTT 。
    Liuman
        3
    Liuman  
       2021-12-01 13:06:04 +08:00   2
    ios 可以用 Bark 或者 饭碗警告 这两个 APP 给手机推送
    az402
        4
    az402  
       2021-12-01 13:15:23 +08:00   1
    哲学问题 如何监控-监控程序
    ignor
        5
    ignor  
    OP
       2021-12-01 13:21:21 +08:00
    @dblpx 有想过这么做,但还是得分出心思时不时去邮箱里 check 一下……要是能根据保活邮件缺失再做个提醒就好了
    imdong
        6
    imdong  
       2021-12-01 13:27:12 +08:00 via iPhone
    心跳请求某地址记录最后心跳时间,另起一个监控,检查多久没心跳就告警。

    这个记录与告警监控越简单,就相对越可靠。
    CallMeReznov
        7
    CallMeReznov  
       2021-12-01 13:28:06 +08:00
    旧手机 ADB
    turan12
        8
    turan12  
       2021-12-01 13:30:30 +08:00
    再写一个监控程序监控这个监控程序,如果发现 down 掉立即自动重启然后给你发消息
    ignor
        9
    ignor  
    OP
       2021-12-01 13:31:32 +08:00
    @orangie 看了下,好像有些复杂……要如何实现“if 几分钟没收到消息,then 给自己发消息”这种需求呢?
    ignor
        10
    ignor  
    OP
       2021-12-01 13:37:55 +08:00   1
    @Liuman 饭碗警告的心跳模式应该就是我需要的,感谢
    ignor
        11
    ignor  
    OP
       2021-12-01 13:39:47 +08:00
    @az402 倒也没那么哲学啦,哈哈,毕竟对现代人来说手机宕机属于 P0 级别了
    ignor
        12
    ignor  
    OP
       2021-12-01 13:42:13 +08:00
    @imdong 就是不知道在哪另起一个监控,另搞个服务器有点太夸张了……
    jifengg
        13
    jifengg  
       2021-12-01 13:48:28 +08:00
    @turan12

    那么请问这个“监控这个监控程序”的监控程序,要是 down 掉了或者无法发送信息该怎么办呢?[狗头]
    bluedawn
        14
    bluedawn  
       2021-12-01 13:51:05 +08:00 via iPhone   2
    建议在阿里 /腾讯 /百度 /华为云这些地方用无服务器函数来心跳,每月免费额度还挺多…
    BaseException
        15
    BaseException  
       2021-12-01 14:10:16 +08:00
    直接 telegram bot ,无限次调用 api 发送消息(可能得让你家里程序的网络走代理
    xz410236056
        16
    xz410236056  
       2021-12-01 14:19:57 +08:00
    @Liuman #3 你这不是更复杂?不搭服务端怎么发。。。
    krapnik
        17
    krapnik  
       2021-12-01 14:20:14 +08:00
    https://github.com/mamoe/mirai QQ 机器人,登小号,定时心跳或者自动应答
    ylqf5461
        18
    ylqf5461  
       2021-12-01 15:03:59 +08:00
    cloudflare Workers 写个接口
    sidkang
        19
    sidkang  
       2021-12-01 15:09:03 +08:00   4
    https://healthchecks.io
    正解在此,楼主需要的应该是这个
    ignor
        20
    ignor  
    OP
       2021-12-01 15:59:07 +08:00
    @sidkang 妙,妙啊!
    seakingii
        21
    seakingii  
       2021-12-01 17:32:07 +08:00
    也可以考虑 telegram 机器人.
    junas7
        22
    junas7  
       2021-12-01 17:37:57 +08:00
    回家看看
    thevita
        23
    thevita  
       2021-12-01 17:46:53 +08:00
    https://www.researchgate.net/publication/3044444_Perfect_failure_detection_in_timed_asynchronous_systems

    it is impossible to implement a perfect failure detector in purely asynchronous systems

    ---
    cloverzrg2
        24
    cloverzrg2  
       2021-12-01 17:49:52 +08:00
    写个心跳服务,在服务器上跑
    monetto
        25
    monetto  
       2021-12-01 18:59:29 +08:00
    家里的 PC 定时向服务器的 Redis 更新心跳时间。服务器定时扫描 Redis 。没有的话...
    robin700
        26
    robin700  
       2021-12-01 20:59:04 +08:00
    1. 写一个 api ,每次请求内存缓存请求时间
    robin700
        27
    robin700  
       2021-12-01 21:00:36 +08:00
    2.该项目项目下,同时写一个后台 job ,每固定时间断内,检查缓存中的请求时间差;
    robin700
        28
    robin700  
       2021-12-01 21:03:07 +08:00
    3.时间差超过阈值给自己发邮件; 4.本地定时发送心跳请求; 5.随便找个 sever less 比如腾讯云函数之类的部署;整体实现简单而且花不了多少钱
    ayang23
        29
    ayang23  
       2021-12-01 21:03:48 +08:00   1
    https://thingspeak.com/ 用来接收物联网数据包的,解决你这个需求也可以
    felixcode
        30
    felixcode  
       2021-12-01 21:27:20 +08:00 via Android
    biguokang
        31
    biguokang  
       2021-12-01 23:01:19 +08:00
    @jifengg 直接无限套娃就好了
    dven
        32
    dven  
       2021-12-02 06:02:40 +08:00
    Prometheus 上没配告警吗
    Livid
        33
    Livid  
    MOD
    PRO
       2021-12-02 08:23:13 +08:00   1
    手机和电脑上都装这个:

    https://tailscale.com/

    然后你就有一个只要两端都能上网,就可以直接连上的安全的内网。
    7gugu
        34
    7gugu  
       2021-12-02 10:04:21 +08:00 via iPhone
    要不给电脑装一个 4G 网卡吧,断网之后切换到 4G 联网,这样就不怕掉线了
    vilic
        35
    vilic  
       2021-12-18 00:29:43 +08:00
    @Liuman 感谢推荐,另外饭碗警告也支持心跳模式~
    关于 nbsp;   帮助文档     自助推广系统     博客     API     FAQ     Solana     5593 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 07:51 PVG 15:51 LAX 00:51 JFK 03:51
    Do have faith in what you're doing.
    ubao 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