# python3 访问 若依-Vue 后端 端口

> [python3 访问 若依-Vue 后端 端口](https://www.ftls.xyz/posts/20220113/)
> Penned by [恐咖兵糖](https://www.ftls.xyz/) on 2022-01-13


服务器是2核1G的配置，为了防止若依被挤掉，并且及时发现，写了一个程序监控。

<!--more-->

服务器是2核1G的配置 Centos7，安装了宝塔面板 ，安装了Python3 环境。运行一个7×24小时若依程序，版本3.18。是前后端分离的一个程序。之前安装了几个比较占内存的应用。然后没想到竟然让若依程序挂掉了几分钟，具体表现就是磁盘io量过大，延迟很高。打开前端后，显示后端接口访问异常。在我安装编译Python环境时，甚至出现了若依程序无故消失。由于源于未知，因此写了一个小程序来监控后端端口。

{{< image src="https://cdn.ftls.xyz/images/2022/01/202101182.png" caption="高io读取延迟">}}

具体的一个原理就是访问端口时能够返回一串数据。其实可以在java里写controller，然后把这个API暴露出来。定时访问来监控程序和设备运行情况。我这里没有那么复杂，我直接访问了一个后端端口，返回 `欢迎使用RuoYi后台管理框架，当前版本：v3.8.1，请通过前端地址访问。`

原理是Python访问后端端口，比对字符串，如果访问成功并且正确返回数据，就代表后端正常。如果超时，就表示后端异常。然后将访问的结果,通过 WebHook 发送到企业微信群机器人中。然后将这个Python程序在宝塔定时任务中设置好。就可以正常使用了。

文件 /home/ruoyi/status.py
``` python
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。设置好间隔之后就可以正常使用了。

定时任务日志：

```
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
--------------------------------------------------------------------------------------------
```

企业微信：

{{< image src="https://cdn.ftls.xyz/images/2022/01/20220118.jpg" caption="企业微信效果">}}

