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

2020-09-29 11:42:39 +08:00
 18870715400
今天运维突然跑过来说在 windows 服务器上监控 python 项目的运行会有问题,能否在启动项目的时候起一个 socket 服务端功能就是占用一个端口, 运维通过监控端口情况来判断项目是否运行,他们原先的方法是通过
tasklist | findstr "python.exe" 
来监控项目的运行,但是那边说经常出现项目正常运行,但是执行上面命令无输出的情况,想请问一下大家是通过什么方法来监控 windows 上面的 python 项目
2614 次点击
所在节点    Python
18 条回复
crclz
2020-09-29 12:07:09 +08:00
docker ps 。
docker 显然已经成为运维的标准化的工具了。
18870715400
2020-09-29 12:14:35 +08:00
@crclz 我们暂时还没有用到 docker,除了 docker 还有其它更好的方法么
ysc3839
2020-09-29 12:17:04 +08:00
> 经常出现项目正常运行,但是执行上面命令无输出的情况

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

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

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

这种情况讲道理应该是跟监控机制有关系,业务本身需要提供心跳,监控服务监控心跳,无应答或者应答异常报警,和本身 WINDOWS 和 LINUX 系统没关系吧?
18870715400
2020-09-29 15:05:50 +08:00
@CallMeReznov 请求接口本身有心跳机制, 但是运维那边和接收心跳那边不是互通的
18870715400
2020-09-29 15:14:33 +08:00
@ysc3839 不知道为什么会这样, 他们就是通过 tasklist | findstr "python.exe" 来监控程序的, 但是有的时候他们那边显示不在运行了, 但是登录进去看到任务正在执行, 我也不太清楚, 时间段是凌晨再加上我自己登不进去服务器,没有办法第一时间判断哪里出了问题, 而且该时间段都有日志输出的
CallMeReznov
2020-09-29 15:14:33 +08:00
@18870715400 #12 那你这。。。
其实只要能起个 TCP 的端口,且能做出简单的应答,监控服务器就有办法依据这个给你分析处理。
我原来也遇到这种,最后实在逼得没办法就监控日志 OR 直接重启。
反正是开发的锅,你不解决我也只能这样了
nonduality
2020-09-29 16:11:33 +08:00
supervisord 不可以么?
18870715400
2020-09-29 16:15:50 +08:00
@nonduality 可以的的, 但是需要改动,最后还是选定我这边开启服务的时候顺便启动一个 socket 绑定一个端口, 运维监控那个端口就行了
tianshiyeben
2020-09-29 16:50:04 +08:00
用 wgcloud,能监控进程 也能监控端口 也能监控接口 支持告警
www.wgstart.com
Aumujun
2020-09-29 21:42:06 +08:00
容易,上 zabbix 配置一个监控项就可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/711507

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX