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

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

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

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

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

獲取磁盤IO信息:

寫成一個函數(shù):

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

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

4. 多子圖制作
同樣的,我們將其他兩個性能指標也取出來,并做成同一個畫布下不同的子圖:

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

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