V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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 · 2020-09-29 11:42:39 +08:00 · 2780 次点击
    这是一个创建于 1514 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天运维突然跑过来说在 windows 服务器上监控 python 项目的运行会有问题,能否在启动项目的时候起一个 socket 服务端功能就是占用一个端口, 运维通过监控端口情况来判断项目是否运行,他们原先的方法是通过
    tasklist | findstr "python.exe" 
    来监控项目的运行,但是那边说经常出现项目正常运行,但是执行上面命令无输出的情况,想请问一下大家是通过什么方法来监控 windows 上面的 python 项目
    
    18 条回复    2020-09-29 21:42:06 +08:00
    crclz
        1
    crclz  
       2020-09-29 12:07:09 +08:00
    docker ps 。
    docker 显然已经成为运维的标准化的工具了。
    18870715400
        2
    18870715400  
    OP
       2020-09-29 12:14:35 +08:00
    @crclz 我们暂时还没有用到 docker,除了 docker 还有其它更好的方法么
    ysc3839
        3
    ysc3839  
       2020-09-29 12:17:04 +08:00 via Android
    > 经常出现项目正常运行,但是执行上面命令无输出的情况

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

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

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

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