Linux 系統實時監控的瑞士軍刀 —— Glances
早些時候,我們提到過有很多可以用來監視系統性能的 Linux 系統監視工具。 但我們估計,或許更多的用戶會傾向與絕大多數 Linux 發行版都帶的工具 (top 命令)。
top 命令是 Linux 下的一個實時任務管理器, 同時也是用於在 GNU/Linux 發行版中尋找系統性能方面的瓶頸,並幫助我們作出正確操作的常用系統監視工具。 她有著一個極為簡潔的界面,並自帶少量的可以幫助我們快速了解系統性能的實用選項。
但是,有些時候想要通過她尋找一個占用系統資源比較大的應用或進程可能會比較困難。 因為 top 命令本身並不會幫助我們高亮那些吃太多 CPU,內存,或者其他資源的程序。
為了達到這個目標,這裏我們將介紹一款超牛逼的系統監視程序 —— Glances。 她可以自動高亮利用最高系統資源的程序,並為 Linux/Unix 服務器提供盡可能多的信息。
什麽是 Glances?
Glances 是一個由 Python 編寫,使用 psutil 庫來從系統抓取信息的基於 curses 開發的跨平臺命令行系統監視工具。 通過 Glances,我們可以監視 CPU,平均負載,內存,網絡流量,磁盤 I/O,其他處理器 和 文件系統 空間的利用情況。
Glances 是一個用來監視 GNU/Linux 和 FreeBSD 操作系統的 GPL 授權的自由軟件。
Glances 同時也提供了很多實用的選項。 其中我們能夠在配置文件見到的一項主要的功能就是設置關鍵值及相應的標簽 (careful[小心], warning[警告] 和 critical[嚴重]), 然後她會自動幫我們用不同顏色標出系統達到某個瓶頸的信息。
Glances 主要功能
- CPU 信息 (用戶的相關應用, 系統核心程序和空閑程序)
- 總內存信息,包括了物理內存,交換空間和空閑內存等等
- 之前的 1 分鐘、5 分鐘和 15 分鐘平均的 CPU 負載
- 網絡鏈接的下行和上行速度
- 處理器總數,以及其活動狀態
- 硬盤 I/O 相關(讀寫)速度詳情
- 當前掛載設備的磁盤使用情況
- 高 CPU 和內存使用的進程名,和相關應用的位置
- 在底部顯示當前日期和時間
- 將消耗最高系統資源的進程用紅色標出
下面是一個 Glances 的使用截圖:
Glances View
在 Linux/Unix 系統中安裝 Glances
雖然這個工具的發布比較晚,但你仍然可以在 Red Hat 系的系統中通過 EPEL 軟件源安裝。在終端用下面的命令安裝:
對於 RHEL/CentOS/Fedora 發行版
- # yum install -y glances
對於 Debian/Ubuntu/Linux Mint 發行版
- $ sudo apt-add-repository ppa:arnaud-hartmann/glances-stable
- $ sudo apt-get update
- $ sudo apt-get install glances
如何使用 Glances
首先,你需要在終端中輸入以下命令
- # glances
Glances Preview – Ubuntu 13.10
按下 ‘q‘ (‘ESC‘ 和 ‘Ctrl-C‘ 也可以) 退出 Glances 終端。 這裏是從 CentOS 6.5 截取的另一張截圖:
Glances Preview – CentOS 6.5
Glances 的默認刷新頻率是 1 (秒),但是你可以通過在終端指定參數來手動定義其刷新頻率
- # glances -t 2
Glances 中顏色的含義
Glances 會用一下幾種顏色來代表狀態:
- 綠色:OK(一切正常)
- 藍色:CAREFUL(需要註意)
- 紫色:WARNING(警告)
- 紅色:CRITICAL(嚴重)
閥值可以在配置文件中設置,一般閥值被默認設置為(careful=50、warning=70、critical=90)。
我們可以按照自己的需求在配置文件(默認在 /etc/glances/glances.conf)中自定義。
Glances 的選項
除了很多命令行選項之外,Glances 還提供了更多的可在其運行時開關輸出信息選項的快捷鍵,下面是一些例子:
- a – 對進程自動排序
- c – 按 CPU 百分比對進程排序
- m – 按內存百分比對進程排序
- p – 按進程名字母順序對進程排序
- i – 按讀寫頻率(I/O)對進程排序
- d – 顯示/隱藏磁盤 I/O 統計信息
- f – 顯示/隱藏文件系統統計信息
- n – 顯示/隱藏網絡接口統計信息
- s – 顯示/隱藏傳感器統計信息
- y – 顯示/隱藏硬盤溫度統計信息
- l – 顯示/隱藏日誌(log)
- b – 切換網絡 I/O 單位(Bytes/bits)
- w – 刪除警告日誌
- x – 刪除警告和嚴重日誌
- 1 – 切換全局 CPU 使用情況和每個 CPU 的使用情況
- h – 顯示/隱藏這個幫助畫面
- t – 以組合形式瀏覽網絡 I/O
- u – 以累計形式瀏覽網絡 I/O
- q – 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以)
遠程使用 Glances
你甚至也可以通過 Glances 來監視遠程系統。 要在遠程系統使用 ‘glances’,需要在服務器運行 ‘glances -s’(-s 啟動服務器/客戶端模式)命令。
- # glances -s
- Define the password for the Glances server
- Password:
- Password (confirm):
- Glances server is running on 0.0.0.0:61209
註意:當你執行了‘glances’命令後,她會讓你為 Glances 服務器設置密碼。
當你設置完畢,你將看到 “Glances server is running on 0.0.0.0:61209” (Glances 服務器正在 0.0.0.0 的 61209 端口運行)的消息。
當 Glances 服務器啟動後,到本地執行下面的命令來指定服務器IP地址或主機名以鏈接。
註:這裏的 ‘172.16.27.56’ 是我 Glances 服務器的 IP 地址。
- # glances -c -P 172.16.27.56
下面是一些在使用服務器/客戶端模式時必須知道的事情:
* 在服務器模式,你可以通過 `-B 地址` 來設置綁定地址,也可以通過 `-p 端口` 來綁定監聽的 TCP 端口 * 在客戶端模式,你可以通過同樣的 `-p 端口` 來指定服務器端口 * 默認的綁定地址是 0.0.0.0,但這麽做會監聽所有網絡接口的指定端口 * 在服務器/客戶端模式下,限制的閥值將由服務器的設置決定 * 你也可以在命令行下用過 `-P 密碼` 的方式來為服務器端設置一個密碼
總結
Glances 對於大多用戶而言是個在系統資源上提供過多信息的工具。但是如果你是一個想要僅從命令行就能快速獲取系統整體狀況的系統管理員,那這個工具絕對是你的必備利器。
譯者註
- 請不要將 glances(本文中的工具)和 glance(一個 OpenStack 的工具)這兩個包搞混了
- Ubuntu 官方 Extra 源中的 glances 因為 python 庫移動的問題導致無法正常使用 但可以通過建立軟鏈接的方式臨時修復:sudo ln -s /usr/lib/python2.7/dist-packages/glances /usr/share/pyshared/glances
via: http://www.tecmint.com/glances-an-advanced-real-time-system-monitoring-tool-for-linux/
譯者:VizV 校對:wxy
本文由 LCTT 原創翻譯,Linux中國 榮譽推出
Linux 系統實時監控的瑞士軍刀 —— Glances