Glances – 超強大資源使用監視工具

只要說到伺服器的資源監視想到的不外乎就是 top 與 進階版的htop, 今天要介紹一個更厲害的資源使用監視工具 Glances.

Glances 是一套使用 python 構成的資源監視工具, 除了基本的資源監視外還提供了 Web 介面以及遠端查看的功能.

Requirements

Python > 2.7, >= 3.3
psutil>=2.0.0

Installation

使用 pip 安裝

pip install glances

使用 shell script 安裝

curl -L https://bit.ly/glances | /bin/bash

Usage

基本使用

就跟 top 一樣, 直接在畫面上顯示資訊

glances

啟動 Web 介面

Glances 可以提供 web 介面, 但在使用前要補安裝相依套件 bootle

pip install bottle

接著啟動

glances -w

接著就可以使用喜歡的瀏覽器訪問 http://127.0.0.1:61208

遠端模式

server 模式

glances -s

client 連接

glances -c ip

Access Control

預設模式下 Glances 是免帳密驗證的, 但是為了安全起見我們還是設定一組帳號進行驗證
加入驗證的方法很簡單, 只需要帶入參數 --username--password

glances -s --username  --password

Glances 便會在啟動過程確認要設置的帳號密碼

Define the Glances server username: keniver
Define the Glances server password (keniver username):
Password (confirm):

最後, Glances 會詢問是否紀錄帳號與密碼, 之後啟動就不會再詢問了

Do you want to save the password? [Yes/No]:

當我們為 Glances 啟動驗證後, 我們連線時需要帶入 --username , --password, 並輸入先前設定的密碼才能連線

Python pip 發生 TypeError: __call__() takes exactly 2 arguments (1 given) 的解決辦法

在某次 apt-get update 後發現 pip install 出現 TypeError: call() takes exactly 2 arguments (1 given), 所有操作都無法繼續進行

追查了一下錯誤資訊, 發生錯誤的原因是 /Library/Python/2.7/site-packages/packaging/requirements.py 的 59 行

原始程式碼如下

MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")

比對其他版本的 pip 後, 發現這行應該是

MARKER_EXPR = originalTextFor(MARKER_EXPR)("marker")

於是乎就用正確的程式碼替換掉原來的程式碼, 重新運行 pip install 之後就正常了

pip 官方後續也修復了這個 Bug, 可以使用下列指令進行強制更新

python -m pip install --upgrade --force pip