Nỗi ám ảnh mang tên “SSH thủ công” mỗi khi server dở chứng
Khoảng một năm trước, mình trực tiếp quản lý cụm 10 VPS chạy microservices. Mỗi khi hệ thống có dấu hiệu chậm chờn, mình lại lạch cạch mở terminal, SSH vào từng con để gõ htop xem CPU, df -h kiểm tra disk, rồi lại iotop soi ổ cứng. Quy trình này lặp đi lặp lại cực kỳ tốn thời gian.
Đỉnh điểm là một tối chủ nhật, một server bị đầy log khiến ổ cứng chạm mức 100%. Vì thiếu dashboard trực quan, mình mất hơn 2 tiếng đồng hồ loay hoay chỉ để tìm xem con app nào đang “treo”. Sau sự cố đó, mình nhận ra mình cần một công cụ gọn nhẹ, cài nhanh, hiển thị mọi thông số trên một màn hình duy nhất qua trình duyệt.
Tại sao những lệnh quen thuộc như top, htop dần trở nên hụt hơi?
Các công cụ như top hay iostat rất mạnh nhưng lại lộ nhược điểm khi số lượng server tăng lên:
- Thông tin bị xé nhỏ: Muốn xem network phải dùng một lệnh, xem RAM lại dùng lệnh khác. Bạn không có cái nhìn tổng thể.
- Thiếu tính liên tục: Ngay khi bạn tắt cửa sổ SSH, mọi dữ liệu biến mất. Bạn chẳng thể biết CPU đã nhảy vọt thế nào cách đây 10 phút.
- Khó chia sẻ: Không lẽ mỗi lần đồng nghiệp muốn check tình trạng server, bạn lại phải cấp quyền SSH cho họ?
Giải pháp nào cân bằng giữa tính năng và tài nguyên?
Mình từng thử combo Prometheus + Grafana. Nó rất chuyên nghiệp nhưng lại quá cồng kềnh cho các dự án nhỏ. Việc chạy exporter và DB lưu trữ thường ngốn từ 500MB đến hơn 1GB RAM — một con số không hề nhỏ với các VPS cấu hình thấp.
Netdata thì giao diện đẹp nhưng đôi khi lại quá nhiều biểu đồ li ti gây nhiễu. Mình cần một thứ gì đó ở giữa: nhẹ hơn Netdata, trực quan hơn htop và bật Web lên là thấy ngay. Đó chính là lúc mình tìm thấy Glances.
Glances – Dashboard đa năng cho quản trị viên Linux
Sau 6 tháng triển khai trên các server production, mình thực sự hài lòng. Viết bằng Python, Glances gom tất cả từ CPU, Load, RAM cho đến Disk I/O, Network, Docker containers… vào một giao diện tinh gọn.
Bước 1: Cài đặt Glances chỉ với một câu lệnh
Cách nhanh nhất là sử dụng script tự động để hệ thống tự cài các thư viện phụ trợ như bottle (chạy web) hay psutil (lấy thông số hệ thống).
curl -L https://bit.ly/glances | /bin/bash
Nếu bạn muốn quản lý qua pip để kiểm soát phiên bản chặt chẽ hơn:
sudo apt update && sudo apt install python3-pip -y
sudo pip3 install glances[all]
Mẹo nhỏ: Option [all] giúp cài thêm các module mở rộng để xuất dữ liệu ra file CSV hoặc đẩy vào database sau này.
Bước 2: Kích hoạt Web Dashboard
Đây là tính năng đáng tiền nhất. Thay vì xem trên terminal đen xì, bạn hãy chạy:
glances -w
Lúc này, Glances sẽ mở port 61208. Bạn chỉ cần truy cập http://IP-SERVER:61208. Giao diện sẽ hiển thị các mảng màu xanh, vàng, đỏ cực kỳ dễ quan sát.
Bước 3: Cấu hình Systemd để chạy ngầm ổn định
Để dashboard luôn sẵn sàng kể cả khi server khởi động lại, chúng ta nên tạo một service.
sudo nano /etc/systemd/system/glancesweb.service
Dán nội dung sau vào (lưu ý đổi User nếu cần):
[Unit]
Description=Glances Web Interface
After=network.target
[Service]
ExecStart=/usr/local/bin/glances -w
Restart=always
User=root
[Install]
WantedBy=multi-user.target
Kích hoạt service:
sudo systemctl daemon-reload
sudo systemctl enable --now glancesweb
Vài lưu ý “thực chiến” để dùng Glances hiệu quả hơn
Xử lý tình trạng “Bội thực cảnh báo”
Mặc định, Glances sẽ bôi đỏ CPU khi chạm ngưỡng 80%. Với nhiều ứng dụng xử lý dữ liệu nặng, CPU lên 90% là bình thường. Nếu lúc nào màn hình cũng đỏ lòm, bạn sẽ dễ bị lờ đi các sự cố thật sự.
Cách fix: Hãy tùy chỉnh lại file config tại /etc/glances/glances.conf. Mình thường nâng mức WARNING cho CPU lên 90% để giảm nhiễu thông tin.
Bảo mật cho Web UI – Đừng để cửa ngỏ hớ hênh
Mở port 61208 ra internet mà không có mật khẩu là một rủi ro lớn. Bất kỳ ai cũng có thể biết server bạn đang chạy gì.
Mình thường áp dụng 2 lớp bảo vệ:
- Đặt pass trực tiếp: Dùng lệnh
glances -w --password. - Chặn bằng Nginx: Chạy Glances ở localhost, sau đó dùng Nginx làm Reverse Proxy để giới hạn IP truy cập hoặc thêm Basic Auth.
# Cấu hình Nginx tham khảo
location /glances/ {
proxy_pass http://127.0.0.1:61208/;
auth_basic "Yêu cầu đăng nhập";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Soi tài nguyên Docker Container
Nếu bạn dùng Docker, Glances sẽ liệt kê chi tiết mức ngốn RAM/CPU của từng container. Bạn sẽ thấy ngay con container nào đang “ăn” tài nguyên mà không cần gõ docker stats liên tục.
Lời kết
Glances không thay thế hoàn toàn các hệ thống giám sát tập trung quy mô lớn, nhưng nó là “trạm quan sát” đầu tiên cực kỳ hiệu quả. Nó nhanh, nhẹ và thực dụng. Đừng đợi đến khi server sập mới cài tool. Hãy dành ra 5 phút setup ngay hôm nay, nó sẽ giúp bạn ngủ ngon hơn vào mỗi tối cuối tuần đấy.

