python3 访问 若依-Vue 后端 端口

服务器是2核1G的配置,为了防止若依被挤掉,并且及时发现,写了一个程序监控。

服务器是2核1G的配置 Centos7,安装了宝塔面板 ,安装了Python3 环境。运行一个7×24小时若依程序,版本3.18。是前后端分离的一个程序。之前安装了几个比较占内存的应用。然后没想到竟然让若依程序挂掉了几分钟,具体表现就是磁盘io量过大,延迟很高。打开前端后,显示后端接口访问异常。在我安装编译Python环境时,甚至出现了若依程序无故消失。由于源于未知,因此写了一个小程序来监控后端端口。

https://cdn.ftls.xyz/images/2022/01/202101182.png
高io读取延迟

具体的一个原理就是访问端口时能够返回一串数据。其实可以在java里写controller,然后把这个API暴露出来。定时访问来监控程序和设备运行情况。我这里没有那么复杂,我直接访问了一个后端端口,返回 欢迎使用RuoYi后台管理框架,当前版本:v3.8.1,请通过前端地址访问。

原理是Python访问后端端口,比对字符串,如果访问成功并且正确返回数据,就代表后端正常。如果超时,就表示后端异常。然后将访问的结果,通过 WebHook 发送到企业微信群机器人中。然后将这个Python程序在宝塔定时任务中设置好。就可以正常使用了。

文件 /home/ruoyi/status.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import requests
import time

# 获取数据信息

url = 'http://0.0.0.0:80'
run = '欢迎使用RuoYi后台管理框架,当前版本:v3.8.1,请通过前端地址访问。'
status = '后端异常'
t = time.strftime('%Y-%m-%d %H:%M:%S')
try:
  text = requests.get(url, timeout=5).text
  if text==run:
      status = '后端接口正常'
  else:
    status = '不同'
  s = '成功访问'
except requests.exceptions.RequestException as e:
  s = '异常'
  print(e)

print(t)
print(s)
print(status)

# 微信发送

headers = {
    'Content-Type': 'application/json',
}
# key 是 webhook 群机器人提供的,注意不要散播出去
params = (('key', '12345678-1234-1234-1234-123456789012'),)
content = t+'\\n>'+s+'\\n>'+status+'\\n'
content = content.encode('utf-8').decode('latin-1')
data = '{"msgtype": "markdown","markdown": { "content": "'+content+ '"  }   }'
 
response = requests.post('https://qyapi.weixin.qq.com/cgi-bin/webhook/send', headers=headers, params=params, data=data)
# print(response.content.decode())

在宝塔定时任务里设置 python3 /home/ruoyi/status.py。设置好间隔之后就可以正常使用了。

定时任务日志:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
HTTPConnectionPool(host='0.0.0.0', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4ac8097668>: Failed to establish a new connection: [Errno 111] Connection refused',))
2022-01-12 10:13:25
异常
后端异常
----------------------------------------------------------------------------
★[2022-01-12 10:13:25] Successful
----------------------------------------------------------------------------
2022-01-12 10:15:34
成功访问
后端接口正常
----------------------------------------------------------------------------
★[2022-01-12 10:15:35] Successful
--------------------------------------------------------------------------------------------

企业微信:

https://cdn.ftls.xyz/images/2022/01/20220118.jpg
企业微信效果