Glances:多功能 Linux 系統監控工具
Glances是一個系統監控工具,它把這些都聯絡在一起,並提供了更多的功能。你可以在遠端 Linux 伺服器上執行 Glances 來監控本地系統的系統資源,也可以通過 Web 瀏覽器監控。
下面是它的外觀。下面截圖中的終端已經用 Pywal 工具美化過,可以根據桌布自動改變顏色。
你也可以將它整合到像Grafana這樣的工具中,在一個直觀的儀表盤中監控統計資料。
它是用 Python 編寫的,這意味著它的絕大多數功能都可以在大多數平臺上使用。
Glances 的功能
Glances Data In Grafana Dashboard
讓我們快速瀏覽一下 Glances 提供的主要功能:
- 可以監控系統上的 15 個之多的指標(包括 Docker 容器)。
- 靈活的使用模式:單機模式、客戶端-伺服器模式、通過 SSH 和 Web 模式。
- 可用於整合的各種 REST API 和 XML-RPC API。
- 支援將資料輕鬆匯出到不同的服務和資料庫。
- 高度的可配置性和適應不同的需求。
- 非常全面的文件。
在 Ubuntu 和其他 Linux 發行版上安裝 Glances
Glances 在許多 Linux 發行版的官方軟體庫中都有。這意味著你可以使用你的發行版的軟體包管理器來輕鬆安裝它。
在基於 Debian/Ubuntu 的發行版上,你可以使用以下命令:
sudo apt install glances
你也可以使用 snap 包安裝最新的 Glances:
sudo snap install glances
由於 Glances 是基於 Python 的,你也可以使用 PIP 在大多數 Linux 發行版上安裝它。先安裝 PIP,然後用它來安裝 Glances:
sudo pip3 install glances
如果沒有別的辦法,你還可以使用 Glances 開發者提供的自動安裝指令碼。雖然我們不建議直接在你的系統上隨便執行指令碼,但這完全取決於你自己:
curl -L https://bit.ly/glances | /bin/bash
你可以從他們的文件中檢視其他安裝 Glances 的方法,甚至你還可以把它作為一個 Docker 容器來安裝。
使用 Glances 監控本地系統上的 Linux 系統資源(獨立模式)
你可以通過在終端上執行這個命令,輕鬆啟動 Glances 來監控你的本地機器:
glances
你可以立即觀察到,它將很多不同的資訊整合在一個螢幕上。我喜歡它在頂部顯示電腦的公共和私人 IP:
Glances 也是互動式的,這意味著你可以在它執行時使用命令與它互動。你可以按s
將感測器顯示在螢幕上;按k
將 TCP 連線列表顯示在螢幕上;按1
將 CPU 統計擴充套件到顯示單個執行緒。
你也可以使用方向鍵在程序列表中移動,並按不同的指標對錶格進行排序。
你可以通過各種命令列選項來啟動 Glances。此外,它還有很多互動式命令。你可以在他們的豐富的文件中找到完整的列表。
按Ctrl+C
鍵退出 Glances。
使用 Glances 監控遠端 Linux 系統(客戶端-伺服器模式)
要監控遠端計算機,你可以在客戶端-伺服器模式下使用 Glances。你需要在兩個系統上都安裝 Glances。
在遠端 Linux 系統上,使用-s
選項在伺服器模式下啟動 Glances:
glances -s
在客戶端系統中,使用下面的命令在客戶端模式下啟動 Glances 並連線到伺服器:
glances -c server_ip_address
你也可以通過 SSH 進入任何一臺電腦,然後啟動 Glances,它可以完美地工作。更多關於客戶端-伺服器模式的資訊請看這裡。
使用 Glances 在 Web 瀏覽器中監控 Linux 系統資源(Web 模式)
Glances 也可以在 Web 模式下執行。這意味著你可以使用 Web 瀏覽器來訪問 Glances。與之前的客戶端-伺服器模式不同,你不需要在客戶端系統上安裝 Glances。
要在 Web 模式下啟動 Glances,請使用-w
選項:
glances -w
請注意,即使在 Linux 伺服器上,它也可能顯示 “Glances Web User Interface started onhttp://0.0.0.0:61208”,而實際上它使用的是伺服器的 IP 地址。
最主要的是它使用的是 61208 埠號,你可以用它來通過網路瀏覽器訪問 Glances。只要在伺服器的 IP 地址後面輸入埠號,比如http://123.123.123.123:61208。
你也可以在本地系統中使用http://0.0.0.0:61208/或https://localhost:61208/訪問。
Web 模式也模仿終端的樣子。網頁版是根據響應式設計原則打造的,即使在手機上也很好看。
你可能想用密碼來保護 Web 模式,這樣只有授權的人才能使用它。預設的使用者名稱是glances
。
root@localhost:~# glances -w --password
Define the Glances webserver password (glances username):
Password (confirm):
Do you want to save the password? [Yes/No]: n
Glances Web User Interface started on http://0.0.0.0:61208/
你可以在快速入門指南中找到關於配置密碼的更多資訊。
匯出 Glances 資料到不同的服務
使用 Glances 最大的優勢之一就是開箱即用,它支援將資料匯出到各種資料庫、服務,並無縫整合到各種資料管道中。
你可以在監控的同時用這個命令匯出到 CSV:
glances --export csv --export-csv-file /tmp/glances.csv
/tmp/glances.csv
是檔案的位置。資料以時間序列的形式整齊地填入。
你也可以匯出到其它大型應用程式,如Prometheus,以啟用條件觸發器和通知。
它可以直接插入到訊息服務(如 RabbitMQ、MQTT)、流媒體平臺(如 Kafka),並將時間序列資料匯出到資料庫(如 InfluxDB),並使用 Grafana 進行視覺化。
你可以在這裡檢視服務和匯出選項的整個列表。
使用 REST API 將 Glances 與其他服務進行整合
這是整個棧中我最喜歡的功能。Glances 不僅可以將各種指標彙集在一起,還可以通過 API 將它們暴露出來。
這個簡單而強大的功能使得為任何特定的用例構建自定義應用程式、服務和中介軟體應用程式變得非常容易。
當你在 Web 模式下啟動 Glances 時,REST API 伺服器會自動啟動。要在 API 伺服器模式下啟動它,你可以使用以下命令:
glances -w --disable-webui
REST API的文件很全面,其響應也很容易與 Web 應用整合。這使得使用類似Node-RED這樣的工具可以很容易地構建一個統一的儀表盤來監控多個伺服器。
Glances 也提供了一個 XML-RPC 伺服器,你可以在這裡檢視文件。