监控脚本:Python3 CPU 内存 磁盘 端口监控脚本
1. 背景介绍
在服务器运维和应用开发过程中,我们经常需要对服务器的资源进行监控,以及对资源使用情况进行分析和优化。其中,CPU、内存、磁盘和端口是最常见的资源。本文将介绍如何使用Python3编写一个简单的监控脚本,用于监控这些资源的使用情况。
2. 脚本功能概览
本脚本可以实时监控服务器的CPU利用率、内存使用情况、磁盘空间以及端口的连接情况,并将这些信息输出到屏幕上。该脚本还可以将这些信息保存到日志文件中,方便后续分析和追踪问题。
3. 脚本实现
3.1 安装依赖库
在编写脚本之前,我们需要先安装一些Python依赖库,用于获取服务器资源的使用情况。可以通过以下命令来安装这些依赖库:
pip install psutil
pip install psutil[process]
3.2 引入依赖库
在Python脚本中,我们需要引入psutil
库来获取CPU、内存和磁盘信息。同时,我们还需要引入socket
库来获取端口连接情况。可以在脚本开头添加以下代码:
import psutil
import socket
3.3 获取CPU利用率
使用psutil
库可以方便地获取CPU的使用情况。可以通过以下代码获取CPU利用率:
cpu_percent = psutil.cpu_percent(interval=1)
print("CPU利用率:{}%".format(cpu_percent))
3.4 获取内存使用情况
使用psutil
库可以方便地获取内存的使用情况。可以通过以下代码获取内存使用情况:
memory = psutil.virtual_memory()
print("内存使用情况:总共 {}M,已使用 {}M,剩余 {}M".format(
memory.total / 1024 / 1024,
memory.used / 1024 / 1024,
memory.available / 1024 / 1024
))
3.5 获取磁盘空间
使用psutil
库可以方便地获取磁盘空间的使用情况。可以通过以下代码获取磁盘空间使用情况:
disk_usage = psutil.disk_usage('/')
print("磁盘空间使用情况:总共 {}G,已使用 {}G,剩余 {}G".format(
disk_usage.total / 1024 / 1024 / 1024,
disk_usage.used / 1024 / 1024 / 1024,
disk_usage.free / 1024 / 1024 / 1024
))
3.6 获取端口连接情况
使用socket
库可以方便地获取端口的连接情况。可以通过以下代码获取端口连接情况:
def check_port(port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex(('localhost', port))
sock.close()
return result == 0
port_list = [80, 443, 3306, 6379]
for port in port_list:
if check_port(port):
print("端口{}连接正常".format(port))
else:
print("端口{}连接异常".format(port))
4. 流程图
下面是该脚本的流程图:
flowchart TD
A[开始] --> B[安装依赖库]
B --> C[引入依赖库]
C --> D[获取CPU利用率]
D --> E[获取内存使用情况]
E --> F[获取磁盘空间]
F --> G[获取端口连接情况]
G --> H[输出监控信息]
H --> I[保存日志文件]
I --> J[结束]
5. 序列图
下面是使用该脚本获取资源使用情况的序列图:
sequenceDiagram