利用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的系統(tǒng)監(jiān)控圖表
作為運(yùn)維人員,想必大家肯定都做過(guò)這樣的事情:為了監(jiān)控系統(tǒng)資源使用情況,開(kāi)了若干個(gè)窗口,來(lái)回切換看輸出:

只要我切得夠快,性能異常點(diǎn)就逃不過(guò)我的眼睛!
這個(gè)時(shí)候你要是有個(gè)監(jiān)控工具自然是很好的,例如我們美創(chuàng)的監(jiān)控報(bào)警工具onekeeper,畫(huà)面又好看,數(shù)據(jù)也準(zhǔn)確,還是實(shí)時(shí)更新的。

然而好用的東西都是要花錢(qián)的,今天我們就利用python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的動(dòng)態(tài)監(jiān)控圖表。
1. 系統(tǒng)環(huán)境需求
我們這次要寫(xiě)的腳本主要基于Psutil與Matplotlib兩個(gè)模塊。
首先,我們這里選擇python3環(huán)境,安裝這兩個(gè)模塊:
Pip install psutil matplotlib

表示安裝成功。
2. Psuitl模塊的使用
顧名思義,psutil = process and system utilities,它不僅可以通過(guò)一兩行代碼實(shí)現(xiàn)系統(tǒng)監(jiān)控,還可以跨平臺(tái)使用,支持Linux/UNIX/OSX/Windows等。
它有許多函數(shù)功能,能夠輕松實(shí)現(xiàn)獲取系統(tǒng)運(yùn)行的進(jìn)程和系統(tǒng)利用率(包括CPU、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)等)信息,示例如下:
獲取cpu使用率:

獲取內(nèi)存使用率:

獲取磁盤(pán)IO信息:

寫(xiě)成一個(gè)函數(shù):

3. Matplotlib的使用
Matplotlib 可能是 Python 2D-繪圖領(lǐng)域使用最廣泛的套件。它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式。
我們以cpu使用率圖為例:

我們可以得到一張監(jiān)控系統(tǒng)cpu使用率的動(dòng)態(tài)圖表。

4. 多子圖制作
同樣的,我們將其他兩個(gè)性能指標(biāo)也取出來(lái),并做成同一個(gè)畫(huà)布下不同的子圖:

最后我們通過(guò)python得到了一個(gè)簡(jiǎn)單的系統(tǒng)性能動(dòng)態(tài)監(jiān)控圖表:

Psutil模塊還有其他很多獲取系統(tǒng)信息的函數(shù),是python系統(tǒng)運(yùn)維方面必備的模塊,Matplotlib作為應(yīng)用最廣的畫(huà)圖模塊之一,也有許多其他讓你的圖表更加好看好用的使用方法。

































