推荐学习书目
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 · 3574 views
    This topic created in 2077 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
        1
    crclz  
       Sep 29, 2020
    docker ps 。
    docker 显然已经成为运维的标准化的工具了。
    18870715400
        2
    18870715400  
    OP
       Sep 29, 2020
    @crclz 我们暂时还没有用到 docker,除了 docker 还有其它更好的方法么
    ysc3839
        3
    ysc3839  
       Sep 29, 2020 via Android
    > 经常出现项目正常运行,但是执行上面命令无输出的情况

    把遇到这种情况时完整的 tasklist 输出贴出来看看?
    singerll
        4
    singerll  
       Sep 29, 2020 via Android
    放探针,docker 并不能解决程序服务崩了的问题
    wuwukai007
        5
    wuwukai007  
       Sep 29, 2020 via Android
    alwaysup,不知道能不能满足需求
    wersonliu9527
        6
    wersonliu9527  
       Sep 29, 2020
    有个基于 nodejs 的 pm2
    18870715400
        7
    18870715400  
    OP
       Sep 29, 2020
    @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
        8
    ysc3839  
       Sep 29, 2020
    @18870715400 这样的输出,不应该经过 findstr 之后就无输出了呀?我只能怀疑是系统有什么问题了。
    JCZ2MkKb5S8ZX9pq
        9
    JCZ2MkKb5S8ZX9pq  
       Sep 29, 2020
    以前我也有这个疑问,后来 V2er 给出了个主意,直接主程序套 try……简单粗暴
    出错了我是发提示音,你也可以改成邮件啥的。

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

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

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