今天运维突然跑过来说在 windows 服务器上监控 python 项目的运行会有问题,能否在启动项目的时候起一个 socket 服务端功能就是占用一个端口, 运维通过监控端口情况来判断项目是否运行,他们原先的方法是通过
tasklist | findstr "python.exe"
来监控项目的运行,但是那边说经常出现项目正常运行,但是执行上面命令无输出的情况,想请问一下大家是通过什么方法来监控 windows 上面的 python 项目
1
crclz 2020-09-29 12:07:09 +08:00
docker ps 。
docker 显然已经成为运维的标准化的工具了。 |
2
18870715400 OP @crclz 我们暂时还没有用到 docker,除了 docker 还有其它更好的方法么
|
3
ysc3839 2020-09-29 12:17:04 +08:00 via Android
> 经常出现项目正常运行,但是执行上面命令无输出的情况
把遇到这种情况时完整的 tasklist 输出贴出来看看? |
4
singerll 2020-09-29 12:20:30 +08:00 via Android
放探针,docker 并不能解决程序服务崩了的问题
|
5
wuwukai007 2020-09-29 12:22:13 +08:00 via Android
alwaysup,不知道能不能满足需求
|
6
wersonliu9527 2020-09-29 12:27:58 +08:00
有个基于 nodejs 的 pm2
|
7
18870715400 OP @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 |
8
ysc3839 2020-09-29 14:32:45 +08:00
@18870715400 这样的输出,不应该经过 findstr 之后就无输出了呀?我只能怀疑是系统有什么问题了。
|
9
JCZ2MkKb5S8ZX9pq 2020-09-29 14:46:56 +08:00
以前我也有这个疑问,后来 V2er 给出了个主意,直接主程序套 try……简单粗暴
出错了我是发提示音,你也可以改成邮件啥的。 另外我自己搞了几个摘要面板,从摘要(一段时间没更新)也可以看出问题报警。 另外用到子进程的话需要特别处理一下。 |
10
luzihang 2020-09-29 14:56:01 +08:00
sentry
|
11
CallMeReznov 2020-09-29 15:00:32 +08:00
我理一理。
LZ 公司的运维监控 python 是用 tasklist 判断 python 进程是否存活来判断业务是否正常的,但出现业务本身假死但进程不崩的情况下就无法正常监控的到了? 这种情况讲道理应该是跟监控机制有关系,业务本身需要提供心跳,监控服务监控心跳,无应答或者应答异常报警,和本身 WINDOWS 和 LINUX 系统没关系吧? |
12
18870715400 OP @CallMeReznov 请求接口本身有心跳机制, 但是运维那边和接收心跳那边不是互通的
|
13
18870715400 OP @ysc3839 不知道为什么会这样, 他们就是通过 tasklist | findstr "python.exe" 来监控程序的, 但是有的时候他们那边显示不在运行了, 但是登录进去看到任务正在执行, 我也不太清楚, 时间段是凌晨再加上我自己登不进去服务器,没有办法第一时间判断哪里出了问题, 而且该时间段都有日志输出的
|
14
CallMeReznov 2020-09-29 15:14:33 +08:00
@18870715400 #12 那你这。。。
其实只要能起个 TCP 的端口,且能做出简单的应答,监控服务器就有办法依据这个给你分析处理。 我原来也遇到这种,最后实在逼得没办法就监控日志 OR 直接重启。 反正是开发的锅,你不解决我也只能这样了 |
15
nonduality 2020-09-29 16:11:33 +08:00
supervisord 不可以么?
|
16
18870715400 OP @nonduality 可以的的, 但是需要改动,最后还是选定我这边开启服务的时候顺便启动一个 socket 绑定一个端口, 运维监控那个端口就行了
|
17
tianshiyeben 2020-09-29 16:50:04 +08:00 via Android
用 wgcloud,能监控进程 也能监控端口 也能监控接口 支持告警
www.wgstart.com |
18
Aumujun 2020-09-29 21:42:06 +08:00
容易,上 zabbix 配置一个监控项就可以
|