2017年4月23日 星期日

[經驗分享]資訊全面的系統監控神器 - Glances

[本圖取自官網]



眾所周知,在 Linux 伺服器的世界通常只有文字介面,要做系統管理就非常依賴設計簡潔、功能好用,呈現資訊容易閱讀等要素的工具軟體。




傳統的味道


說到系統監控,你可以使用 ps aux 指令,也可以用 top 來管理,top 提供了文字介面下的呈現環境。

top


可是問題來了,這個單色調的介面看久了感到枯燥乏味,對於資訊的陳列也不是那麼容易閱讀,更別說操作熱鍵了,但 top 卻是所有 UNIX Like 必定擁有的指令,不得不會。



強化的 top


還好,有一款進化後的 top 出現,名稱是「htop」,據說前面這個「h」指的是「Human」給人類看的意思。

htop


這個介面好看多了,CPU、RAM 等資源用類似圖表方示顯示,管理員可以一眼知道目前負載的程度,不用像 top 苦苦找尋數字在哪.... 😵😵

並且搭配不同的顏色呈現,除了增加閱讀的持久力,也可以較快的辨識出需要的資料在那裡,下方還有熱鍵提示,減少指令查詢的時間浪費。



聽起很棒,但...


htop 確實夠好,對我而言還是不夠,我還想要更多的功能:

  • 介面要更美觀直覺
  • 呈現磁碟讀寫速度
  • 呈現網路傳輸速度
  • 顯示磁碟可用容量
  • 清楚標示效能瓶頸
  • 列出最近警告事件
  • 提供遠端監看資源

這些功能,top、htop 都沒有辦法做到,尋尋覓覓,終於找到一套很棒的工具,一用就是好幾年。



全面進化的 top


當時,經過試用各種不同的工具,最後我選定了一款完全可以符合我需求的工具軟體,它的名字是「Glances」。

Glances on Linux」


這款 Glances 採用 Python 開發,幾乎橫跨所有平台,而且開源、自由。

他的標語「 An Eye on your system 」完完全全打到我的心坎裡啊!😍


Glances on macOS」


Glances on FreeBSD」


在 FreeBSD 也可以使用,而且更強力推薦搭配 FreeNAS,因為在 FreeNAS 下想要查看 Storage 各個磁碟的指令「systat -io」,用起來並不是那麼理想,但是改用 Glances 後,在文字模式下的監控能力完全提升。





記憶體使用量紅色警戒

在 Glances 介面中,會用醒目的橘色、紫色甚至紅色來標示已經造成系統效能瓶頸的項目,以及對系統有警告的事件,這可以讓管理者減少很多到處查看的時間,一個入口一次搞定。


預設的顏色表示:
  • 綠色:ok
  • 藍色:careful
  • 紫色:warning
  • 紅色:critical



安裝超級容易


安裝 Glances 方式相當多元也容易,以下提供我使用過的方法。

Linux (Ubuntu/Debian)

# apt-get install glances

Linux (Other)

# wget -O- https://bit.ly/glances | /bin/bash

MacOS (homebrew)

$ brew install python
$ pip install glances

macOS (MacPorts)

$ sudo port install glances

FreeBSD
# pkg install py27-glances


其它平台如 Windows、Android、Docker 等,可參考官網:
https://github.com/nicolargo/glances#installation



好用的遠端監看


管理伺服器我們要儘量避免 ssh 登入本機操作,以免發生意外,例如經典的「rm -rf」案例。

Glances 的遠端監看有兩種模式,依需求選用。


1.客戶端模式


這個模式的好處,是提供與本機操作完全一樣的功能,不過遠端的電腦也需要安裝有 Glances 才可以。

設定為伺服器模式,並設定密碼
$ glances -s --password

設定為客戶端連線到伺服器監看,並指定密碼
$ glances -c xxx.xxx.xxx.xxx --password

掃描有執行 Glances 伺服器模式的主機
$ glances --browser


註:
有些主機做為客戶端模式要連線到伺服器,會出現錯誤,正在等新版看會不會修正。


2.網頁模式


這模式最大的好處,就是不用安裝任何軟體就可以直接監看主機狀態,而且該呈現的資訊仍然豐富,並會定時刷新。

設定為網頁伺服器模式
$ glances -w



更厲害的是,這個網頁模式還支援 RWD 響應式頁面呈現,所以任何地方,你都可以方便的用手機或平板電腦掌握系統狀況。






最後提醒,由於它是 Python 開發且功能又多,所以是較吃效能的,若在資源吃緊的伺服器上請斟酌使用喔。