基于python編寫監(jiān)控系統(tǒng)各項(xiàng)資源的腳本
今天的文章涉及到docker的操作和一個(gè)python腳本,實(shí)現(xiàn)監(jiān)控網(wǎng)絡(luò)的流量、CPU使用率、內(nèi)存使用率和磁盤使用情況。來和shigen
一起先看看效果吧:
這是在控制臺(tái)中出現(xiàn)的數(shù)據(jù),可以很簡單的看到我們想要的監(jiān)控指標(biāo)。如果實(shí)現(xiàn)定時(shí)任務(wù)和數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)的展示,就是很好看的數(shù)據(jù)監(jiān)控圖表了。
我的代碼主要是運(yùn)行在一個(gè)centos的docker容器中。
是的,你沒有看錯(cuò),我還暴露了容器的22端口,供我在宿主機(jī)進(jìn)行連接。
但是這不是重點(diǎn),我拉取的centos其實(shí)是一個(gè)裸機(jī),跟我們最開始買的服務(wù)器一樣的。運(yùn)行代碼,肯定是需要安裝python解釋器的,這里shigen
找到了珍藏許久的shell
腳本,直接復(fù)制粘貼即可配置好python的環(huán)境。
這里我選取的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
驗(yàn)證python是否安裝成功,只需要執(zhí)行一下命令即可:
which python3 && python3 --version
那其實(shí)還有很重要的一步:配置pip
的鏡像,不然網(wǎng)絡(luò)會(huì)慢到你懷疑人生。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
現(xiàn)在,我們的前置的準(zhǔn)備工作全部的完成了。我們直接在vscode中編輯好代碼:
# -*- encoding: utf-8 -*- __date__ = '2023/11/02 19:01:26' import psutil from rich.table import Table from rich.console import Console # 創(chuàng)建新表格 table = Table(show_header=True, header_style="bold magenta", expand=True) table.add_column("指標(biāo)", style="dim", width=12) table.add_column("數(shù)值", justify="right") # 獲取系統(tǒng)信息 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 核心數(shù)", f"{cpu_cores} 核") # 添加內(nèi)存信息到表格 table.add_row("總內(nèi)存", f"{memory.total / (1024**3):.2f} GB") table.add_row("已用內(nèi)存", f"{memory.used / (1024**3):.2f} GB") table.add_row("內(nèi)存使用百分比", f"{memory.percent}%") # 添加網(wǎng)絡(luò)信息到表格 table.add_row("發(fā)送字節(jié)數(shù)", f"{network_stats.bytes_sent / (1024**2):.2f} MB") table.add_row("接收字節(jié)數(shù)", 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}%") # 創(chuàng)建 console 對(duì)象并輸出表格 console = Console() console.print(table)
這里主要用到了兩個(gè)庫:psutil
和rich
,借助psutil
我們可以輕易的獲得系統(tǒng)的各種指標(biāo),那rich
主要是在控制臺(tái)實(shí)現(xiàn)炫酷的效果。這里是時(shí)間關(guān)系,shigen
寫的比較簡單。
那文件在我的主機(jī)上,centos的服務(wù)器在我的docker里邊,文件到我的docker容器就需要docker cp
派上用場(chǎng)了。在主機(jī)執(zhí)行:
docker cp xx.py dockerId:/shigen/python
我們安裝一下需要的庫:
pip3 install psutil rich
現(xiàn)在環(huán)境配置成功,我們就可以看到上邊的表格指標(biāo)數(shù)據(jù)了。其實(shí)還是主要的復(fù)習(xí)一下docker的使用,順便寫了一個(gè)腳本實(shí)現(xiàn)服務(wù)器資源的監(jiān)控,算是一個(gè)日常的練手吧。
以上就是基于python編寫監(jiān)控系統(tǒng)各項(xiàng)資源的腳本的詳細(xì)內(nèi)容,更多關(guān)于python監(jiān)控系統(tǒng)資源的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
K-近鄰算法的python實(shí)現(xiàn)代碼分享
這篇文章主要介紹了K-近鄰算法的python實(shí)現(xiàn)代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12Python如何從txt文件中提取特定數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于Python如何從txt文件中提取特定數(shù)據(jù)的相關(guān)資料,有時(shí)我們會(huì)遇到需要按行讀取文本的情況,我們要讀取txt文件獲得數(shù)據(jù),需要的朋友可以參考下2023-08-08[項(xiàng)目布局配置]Nosql與PythonWeb-Flask框架組合
本文主要描述了怎樣使用輕量級(jí)NoSQL數(shù)據(jù)庫與PythonWeb-Flask框架組合來進(jìn)行項(xiàng)目布局及應(yīng)用配置,需要的同學(xué)可以參考下,希望可以對(duì)大家有所進(jìn)益2021-08-08django項(xiàng)目運(yùn)行因中文而亂碼報(bào)錯(cuò)的幾種情況解決
django是一個(gè)不錯(cuò)的WEB開源框架。今天測(cè)試,發(fā)現(xiàn)有些頁面中文亂碼,后來發(fā)現(xiàn)出現(xiàn)中文亂碼還不止一種情況,所以這篇文章主要給大家介紹了關(guān)于django項(xiàng)目運(yùn)行過程中因?yàn)橹形亩鴮?dǎo)致亂碼報(bào)錯(cuò)的幾種情況的解決方法,需要的朋友可以參考下。2017-11-11Python實(shí)現(xiàn)操縱控制windows注冊(cè)表的方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)操縱控制windows注冊(cè)表的方法,結(jié)合實(shí)例形式分析了Python使用_winreg模塊以及win32api模塊針對(duì)Windows注冊(cè)表操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-05-05Ubuntu22.04安裝PyTorch1.12.1 GPU版本全過程
這篇文章主要介紹了Ubuntu22.04安裝PyTorch1.12.1 GPU版本全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06