基于python编写监控系统各项资源的脚本
作者:shigen01
今天的文章涉及到docker的操作和一个python脚本,实现监控网络的流量、CPU使用率、内存使用率和磁盘使用情况。来和shigen
一起先看看效果吧:
这是在控制台中出现的数据,可以很简单的看到我们想要的监控指标。如果实现定时任务和数据的存储、数据的展示,就是很好看的数据监控图表了。
我的代码主要是运行在一个centos的docker容器中。
是的,你没有看错,我还暴露了容器的22端口,供我在宿主机进行连接。
但是这不是重点,我拉取的centos其实是一个裸机,跟我们最开始买的服务器一样的。运行代码,肯定是需要安装python解释器的,这里shigen
找到了珍藏许久的shell
脚本,直接复制粘贴即可配置好python的环境。
这里我选取的python版本是:3.9.2。
wget https://registry.npmmirror.com/-/binary/python/3.9.2/Python-3.9.2.tgz
tar -zxvf Python*
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
./configure
make && make install
验证python是否安装成功,只需要执行一下命令即可:
which python3 && python3 --version
那其实还有很重要的一步:配置pip
的镜像,不然网络会慢到你怀疑人生。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
现在,我们的前置的准备工作全部的完成了。我们直接在vscode中编辑好代码:
# -*- encoding: utf-8 -*- __date__ = '2023/11/02 19:01:26' import psutil from rich.table import Table from rich.console import Console # 创建新表格 table = Table(show_header=True, header_style="bold magenta", expand=True) table.add_column("指标", style="dim", width=12) table.add_column("数值", justify="right") # 获取系统信息 cpu_percent = psutil.cpu_percent(interval=1) cpu_freq = psutil.cpu_freq() cpu_cores = psutil.cpu_count(logical=False) memory = psutil.virtual_memory() network_stats = psutil.net_io_counters() disk_stats = psutil.disk_partitions(all=True) # 添加 CPU 信息到表格 table.add_row("CPU 使用率", f"{cpu_percent}%") if cpu_freq is not None: table.add_row("CPU 频率", f"{cpu_freq.current:.2f} MHz") else: table.add_row("CPU 频率", "N/A") table.add_row("CPU 核心数", f"{cpu_cores} 核") # 添加内存信息到表格 table.add_row("总内存", f"{memory.total / (1024**3):.2f} GB") table.add_row("已用内存", f"{memory.used / (1024**3):.2f} GB") table.add_row("内存使用百分比", f"{memory.percent}%") # 添加网络信息到表格 table.add_row("发送字节数", f"{network_stats.bytes_sent / (1024**2):.2f} MB") table.add_row("接收字节数", f"{network_stats.bytes_recv / (1024**2):.2f} MB") # 添加磁盘信息到表格 for partition in disk_stats: disk_usage = psutil.disk_usage(partition.mountpoint) table.add_row(f"{partition.device} ({partition.mountpoint})", f"{disk_usage.percent}%") # 创建 console 对象并输出表格 console = Console() console.print(table)
这里主要用到了两个库:psutil
和rich
,借助psutil
我们可以轻易的获得系统的各种指标,那rich
主要是在控制台实现炫酷的效果。这里是时间关系,shigen
写的比较简单。
那文件在我的主机上,centos的服务器在我的docker里边,文件到我的docker容器就需要docker cp
派上用场了。在主机执行:
docker cp xx.py dockerId:/shigen/python
我们安装一下需要的库:
pip3 install psutil rich
现在环境配置成功,我们就可以看到上边的表格指标数据了。其实还是主要的复习一下docker的使用,顺便写了一个脚本实现服务器资源的监控,算是一个日常的练手吧。
以上就是基于python编写监控系统各项资源的脚本的详细内容,更多关于python监控系统资源的资料请关注脚本之家其它相关文章!