Giới thiệu Glances
Glances là một công cụ giám sát đa nền tảng, được thiết kế để hiển thị thông tin giám sát rộng rãi thông qua giao diện curses hoặc dựa trên web. Thông tin này được điều chỉnh động theo kích thước của giao diện người dùng.
Công cụ cũng có thể hoạt động ở chế độ client/server. Giám sát từ xa có thể được thực hiện thông qua terminal, giao diện web hoặc API (XML-RPC và RESTful). Thống kê cũng có thể được xuất sang file hoặc cơ sở dữ liệu thời gian/giá trị bên ngoài.
Glances được viết bằng Python và sử dụng các thư viện để lấy thông tin từ hệ thống của bạn. Nó dựa trên kiến trúc mở, cho phép nhà phát triển thêm plugin mới hoặc module xuất.
Thay thế mạnh mẽ cho htop/top.
Tài liệu tham khảo
- https://glances.readthedocs.io/en/latest/install.html
- https://nicolargo.github.io/glances/
- https://github.com/nicolargo/glances
Cài đặt Glances
Yêu cầu cài đặt
- Python ≥ 2.7 hoặc Python ≥ 3.4
Cài đặt tự động
Cách 1
$ curl -L https://bit.ly/glances | /bin/bash
Cách 2
$ wget -O- https://bit.ly/glances | /bin/bash
Cài đặt qua pip
Lệnh cài đặt Glances
# Chọn một trong ba cách sau
$ pip install glances
$ pip install glances[all]
$ pip install glances[action,browser,cloud,cpuinfo,docker,export,folders,gpu,graph,ip,raid,snmp,web,wifi]
Lệnh nâng cấp Glances
# Chọn một trong ba cách
$ pip install --upgrade glances
$ pip install --upgrade psutil
$ pip install --upgrade glances[all]
Cài đặt từ nguồn
Hệ thống Ubuntu
root@wgs:~# apt -y install glances
Hệ thống CentOS 7
[root@wgs ~]# yum -y install glances
Hướng dẫn sử dụng Glances
Xem lệnh trợ giúp
root@wgs:~# glances -h
usage: glances [-h] [-V] [-d] [-C CONF_FILE] [--modules-list] [--disable-plugin DISABLE_PLUGIN] [--enable-plugin ENABLE_PLUGIN] [--disable-process] [--disable-webui] [--light] [-0] [-1] [-2] [-3] [-4] [-5] [-6] [--disable-history] [--disable-bold] [--disable-bg]
[--enable-irq] [--enable-process-extended] [--export EXPORT] [--export-csv-file EXPORT_CSV_FILE] [--export-csv-overwrite] [--export-json-file EXPORT_JSON_FILE] [--export-graph-path EXPORT_GRAPH_PATH] [-c CLIENT] [-s] [--browser] [--disable-autodiscover]
[-p PORT] [-B BIND_ADDRESS] [--username] [--password] [-u USERNAME_USED] [--snmp-community SNMP_COMMUNITY] [--snmp-port SNMP_PORT] [--snmp-version SNMP_VERSION] [--snmp-user SNMP_USER] [--snmp-auth SNMP_AUTH] [--snmp-force] [-t TIME] [-w]
[--cached-time CACHED_TIME] [--open-web-browser] [-q] [-f PROCESS_FILTER] [--process-short-name] [--stdout STDOUT] [--stdout-csv STDOUT_CSV] [--hide-kernel-threads] [-b] [--diskio-show-ramfs] [--diskio-iops] [--fahrenheit] [--fs-free-space]
[--sparkline] [--theme-white] [--disable-check-update]
optional arguments:
-h, --help hiển thị thông tin trợ giúp và thoát
-V, --version hiển thị phiên bản chương trình và thoát
-d, --debug bật chế độ gỡ lỗi
-C CONF_FILE, --config CONF_FILE
đường dẫn đến file cấu hình
--modules-list, --module-list
hiển thị danh sách module (plugin & export) và thoát
--disable-plugin DISABLE_PLUGIN, --disable-plugins DISABLE_PLUGIN
vô hiệu hóa plugin (danh sách phân cách bằng dấu phẩy)
--enable-plugin ENABLE_PLUGIN, --enable-plugins ENABLE_PLUGIN
bật plugin (danh sách phân cách bằng dấu phẩy)
--disable-process vô hiệu hóa module tiến trình
--disable-webui vô hiệu hóa giao diện Web
--light, --enable-light
chế độ nhẹ cho giao diện Curses UI (vô hiệu hóa tất cả trừ menu trên cùng)
-0, --disable-irix sử dụng CPU của tác vụ sẽ được chia cho tổng số CPU
-1, --percpu #chạy Glances ở chế độ mỗi CPU
-2, --disable-left-sidebar
#vô hiệu hóa module mạng, I/O đĩa, FS và cảm biến
-3, --disable-quicklook
#vô hiệu hóa module xem nhanh
-4, --full-quicklook #vô hiệu hóa tất cả trừ module xem nhanh và tải
-5, --disable-top #vô hiệu hóa menu trên cùng (QL, CPU, MEM, SWAP và LOAD)
-6, --meangpu #chạy Glances ở chế độ GPU trung bình
--disable-history #vô hiệu hóa lịch sử thống kê
--disable-bold #vô hiệu hóa chế độ in đậm trong terminal
--disable-bg #vô hiệu hóa màu nền trong terminal
--enable-irq #bật module IRQ
-enable-process-extended
#bật thống kê mở rộng cho tiến trình hàng đầu
--export EXPORT #bật module xuất (danh sách phân cách bằng dấu phẩy)
--export-csv-file EXPORT_CSV_FILE
#đường dẫn file cho trình xuất CSV
--export-csv-overwrite
#ghi đè file CSV hiện có
--export-json-file EXPORT_JSON_FILE
#đường dẫn file cho trình xuất JSON
--export-graph-path EXPORT_GRAPH_PATH
#đường dẫn cho trình xuất đồ thị
-c CLIENT, --client CLIENT
#kết nối đến server Glances qua địa chỉ IPv4/IPv6 hoặc hostname
-s, --server #chạy Glances ở chế độ server
--browser #khởi chạy trình duyệt client (danh sách server)
--disable-autodiscover
#vô hiệu hóa chức năng tự động phát hiện
-p PORT, --port PORT #định nghĩa cổng TCP client/server [mặc định: 61209]
-B BIND_ADDRESS, --bind BIND_ADDRESS
#ràng buộc server với địa chỉ IPv4/IPv6 hoặc hostname đã cho
--username #định nghĩa tên người dùng client/server
--password #định nghĩa mật khẩu client/server
-u USERNAME_USED #sử dụng tên người dùng client/server đã cho
--snmp-community SNMP_COMMUNITY
#community SNMP
--snmp-port SNMP_PORT
#cổng SNMP
--snmp-version SNMP_VERSION
#phiên bản SNMP (1, 2c hoặc 3)
--snmp-user SNMP_USER
#tên người dùng SNMP (chỉ dành cho SNMPv3)
--snmp-auth SNMP_AUTH
#khóa xác thực SNMP (chỉ dành cho SNMPv3)
--snmp-force #bắt buộc chế độ SNMP
-t TIME, --time TIME #đặt thời gian làm mới theo giây [mặc định: 3 giây]
-w, --webserver #chạy Glances ở chế độ server web
--cached-time CACHED_TIME #đặt thời gian cache server [mặc định: 1 giây]
--open-web-browser #cố gắng mở giao diện Web UI trong trình duyệt mặc định
-q, --quiet #không hiển thị giao diện curses
-f PROCESS_FILTER, --process-filter PROCESS_FILTER
#đặt chế độ lọc tiến trình (biểu thức chính quy)
--process-short-name #buộc tên tiến trình ngắn gọn
--stdout STDOUT #hiển thị thống kê ra đầu ra chuẩn, mỗi dòng một thống kê (danh sách plugin/plugins.attribute phân cách bằng dấu phẩy)
--stdout-csv STDOUT_CSV #hiển thị thống kê ra đầu ra chuẩn, định dạng csv (danh sách plugin/plugins.attribute phân cách bằng dấu phẩy)
--hide-kernel-threads #ẩn thread kernel trong danh sách tiến trình (không khả dụng trên Windows)
-b, --byte #hiển thị tốc độ mạng theo byte mỗi giây
--diskio-show-ramfs #hiển thị RAM Fs trong plugin DiskIO
--diskio-iops #hiển thị IO mỗi giây trong plugin DiskIO
--fahrenheit #hiển thị nhiệt độ theo độ F (mặc định là độ C)
--fs-free-space #hiển thị không gian FS trống thay vì đã sử dụng
--sparkline #hiển thị đồ thị nhỏ trong giao diện curses thay vì biểu đồ thanh
--theme-white #tối ưu màu hiển thị cho nền trắng
--disable-check-update #vô hiệu hóa kiểm tra phiên bản Glances trực tuyến
Ví dụ sử dụng:
Giám sát máy cục bộ (chế độ độc lập):
$ glances
Hiển thị tất cả module Glances (plugin và exporter) và thoát:
$ glances --module-list
Giám sát máy cục bộ với giao diện Web và khởi chạy server RESTful:
$ glances -w
Glances web server started on http://0.0.0.0:61208/
Chỉ khởi chạy API RESTful (không có WebUI):
$ glances -w --disable-webui
Glances API available on http://0.0.0.0:61208/api/
Giám sát máy cục bộ và xuất thống kê ra file CSV (chế độ độc lập):
$ glances --export csv --export-csv-file /tmp/glances.csv
Giám sát máy cục bộ và xuất thống kê ra server InfluxDB với thời gian làm mới 5s (chế độ độc lập):
$ glances -t 5 --export influxdb
Khởi chạy server Glances XML/RCP:
$ glances -s
Kết nối Glances với server Glances XML/RCP (chế độ client):
$ glances -c <ip_server>
Kết nối Glances với server Glances và xuất thống kê ra server StatsD (chế độ client):
$ glances -c <ip_server> --export statsd
Khởi chạy trình duyệt client (chế độ browser):
$ glances --browser
Hiển thị thống kê ra stdout (một thống kê mỗi dòng):
$ glances --stdout now,cpu.user,mem.used,load
Hiển thị thống kê CSV ra stdout (tất cả thống kê trong một dòng):
$ glances --stdout-csv now,cpu.user,mem.used,load
Vô hiệu hóa một số plugin (danh sách phân cách bằng dấu phẩy):
$ glances --disable-plugin network,ports
Bật một số plugin (danh sách phân cách bằng dấu phẩy):
$ glances --enable-plugin sensors
Chế độ chạy Glances
Chế độ độc lập (Standalone Mode)
Thay thế mạnh mẽ cho htop/top
Nếu muốn giám sát máy cục bộ, mở console/terminal và chạy glances, nhấn "q" hoặc "ESC" để thoát
root@wgs:~# glances
Sử dụng tương tác với các phím tắt sau:
- h : Hiển thị thông tin trợ giúp
- q : Thoát chương trình
- c : Sắp xếp tiến trình theo tải CPU thời gian thực
- m : Sắp xếp tiến trình theo sử dụng bộ nhớ
- i : Sắp xếp tiến trình theo sử dụng I/O
- p : Sắp xếp theo tên tiến trình
- d : Hiển thị tình trạng đọc/ghi đĩa
- w : Xóa file log
- l : Hiển thị log
- s : Hiển thị thông tin cảm biến
- f : Hiển thị thông tin hệ thống
- 1 : Hiển thị sử dụng của từng nhân CPU
Chế độ Client/Server
Server
Trong chế độ server, bạn có thể sử dụng -B ADDRESS để đặt địa chỉ ràng buộc và -p PORT để chỉ định cổng TCP.
Mặc định địa chỉ ràng buộc là `0.0.0.0` (Glances sẽ lắng nghe trên tất cả các interface mạng có sẵn), cổng TCP là `61209`.
root@server:~# glances -s
Client
root@client:~# glances -c @server
Chế độ server web
Server
root@server:~# glances -w
Client
Truy cập http://@server:61208 qua trình duyệt
@server thay bằng IP của server
Thay đổi tần suất làm mới trang
Làm mới mỗi 10 giây
http://@server:61208/10
@server thay bằng IP của server