推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
18870715400
V2EX  ›  Python

想请问一下在 windows 上面如何监控 Python 项目的运行

  •  
  •   18870715400 · Sep 29, 2020 · 3973 views
    This topic created in 2235 days ago, the information mentioned may be changed or developed.
    今天运维突然跑过来说在 windows 服务器上监控 python 项目的运行会有问题,能否在启动项目的时候起一个 socket 服务端功能就是占用一个端口, 运维通过监控端口情况来判断项目是否运行,他们原先的方法是通过
    tasklist | findstr "python.exe" 
    来监控项目的运行,但是那边说经常出现项目正常运行,但是执行上面命令无输出的情况,想请问一下大家是通过什么方法来监控 windows 上面的 python 项目
    
    18 replies  •  2020-09-29 21:42:06 +08:00
    crclz
    crclz
    Sep 29, 2020
    1
    docker ps 。
    docker 显然已经成为运维的标准化的工具了。
    18870715400
    18870715400
    OP
    Sep 29, 2020
    2
    @crclz 我们暂时还没有用到 docker,除了 docker 还有其它更好的方法么
    ysc3839
    ysc3839
    Sep 29, 2020 via Android
    3
    > 经常出现项目正常运行,但是执行上面命令无输出的情况

    把遇到这种情况时完整的 tasklist 输出贴出来看看?
    singerll
    singerll
    Sep 29, 2020 via Android
    4
    放探针,docker 并不能解决程序服务崩了的问题
    wuwukai007
    wuwukai007
    Sep 29, 2020 via Android
    5
    alwaysup,不知道能不能满足需求
    wersonliu9527
    wersonliu9527
    Sep 29, 2020
    6
    有个基于 nodejs 的 pm2
    18870715400
    18870715400
    OP
    Sep 29, 2020
    7
    @ysc3839

    python.exe 9136 Console 1 13,220 K
    python.exe 9832 Console 1 39,220 K
    python.exe 9920 Console 1 35,536 K
    python.exe 9716 Console 1 35,520 K
    python.exe 9408 Console 1 35,516 K
    python.exe 8384 Console 1 58,180 K
    python.exe 7612 Console 1 38,104 K
    python.exe 8356 Console 1 58,268 K
    ysc3839
    ysc3839
    Sep 29, 2020
    8
    @18870715400 这样的输出,不应该经过 findstr 之后就无输出了呀?我只能怀疑是系统有什么问题了。
    JCZ2MkKb5S8ZX9pq
    JCZ2MkKb5S8ZX9pq
    Sep 29, 2020
    9
    以前我也有这个疑问,后来 V2er 给出了个主意,直接主程序套 try……简单粗暴
    出错了我是发提示音,你也可以改成邮件啥的。

    另外我自己搞了几个摘要面板,从摘要(一段时间没更新)也可以看出问题报警。

    另外用到子进程的话需要特别处理一下。
    luzihang
    luzihang
    Sep 29, 2020
    10
    sentry
    CallMeReznov
    CallMeReznov
    Sep 29, 2020
    11
    我理一理。
    LZ 公司的运维监控 python 是用 tasklist 判断 python 进程是否存活来判断业务是否正常的,但出现业务本身假死但进程不崩的情况下就无法正常监控的到了?

    这种情况讲道理应该是跟监控机制有关系,业务本身需要提供心跳,监控服务监控心跳,无应答或者应答异常报警,和本身 WINDOWS 和 LINUX 系统没关系吧?
    18870715400
    18870715400
    OP
    Sep 29, 2020
    12
    @CallMeReznov 请求接口本身有心跳机制, 但是运维那边和接收心跳那边不是互通的
    18870715400
    18870715400
    OP
    Sep 29, 2020
    13
    @ysc3839 不知道为什么会这样, 他们就是通过 tasklist | findstr "python.exe" 来监控程序的, 但是有的时候他们那边显示不在运行了, 但是登录进去看到任务正在执行, 我也不太清楚, 时间段是凌晨再加上我自己登不进去服务器,没有办法第一时间判断哪里出了问题, 而且该时间段都有日志输出的
    CallMeReznov
    CallMeReznov
    Sep 29, 2020
    14
    @18870715400 #12 那你这。。。
    其实只要能起个 TCP 的端口,且能做出简单的应答,监控服务器就有办法依据这个给你分析处理。
    我原来也遇到这种,最后实在逼得没办法就监控日志 OR 直接重启。
    反正是开发的锅,你不解决我也只能这样了
    nonduality
    nonduality
    Sep 29, 2020
    15
    supervisord 不可以么?
    18870715400
    18870715400
    OP
    Sep 29, 2020
    16
    @nonduality 可以的的, 但是需要改动,最后还是选定我这边开启服务的时候顺便启动一个 socket 绑定一个端口, 运维监控那个端口就行了
    tianshiyeben
    tianshiyeben
    Sep 29, 2020 via Android
    17
    用 wgcloud,能监控进程 也能监控端口 也能监控接口 支持告警
    www.wgstart.com
    byte404
    byte404
    Sep 29, 2020
    18
    容易,上 zabbix 配置一个监控项就可以
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2045 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 15:18 · PVG 23:18 · LAX 07:18 · JFK 10:18
    ♥ Do have faith in what you're doing.