Tại sao Beszel lại “đá bay” Netdata và Zabbix trên server của mình?
Sau hơn 6 tháng quản lý cụm 20 node VPS, mình nhận ra một điều quan trọng. Đôi khi chúng ta không cần một hệ thống đồ sộ như Zabbix hay dashboard Grafana phức tạp. Nếu bạn chỉ cần biết server nào treo, RAM sắp hết hay network bất thường, Beszel chính là câu trả lời.
Trước đây, mình dùng Netdata nhưng nó ngốn tới 100MB RAM trên các con VPS rẻ tiền 1GB. Prometheus + Grafana thì tốn quá nhiều công cấu hình. Beszel giải quyết mọi thứ: Giao diện hiện đại như SaaS, viết bằng Go cực nhẹ và hỗ trợ Multi-server ngay từ lúc cài đặt.
Triển khai Beszel trong vòng 5 phút
Hệ thống gồm hai phần: Beszel Hub (đầu não hiển thị) và Beszel Agent (cài trên server cần theo dõi). Chúng ta sẽ triển khai nhanh nhất bằng Docker Compose.
1. Cài đặt Beszel Hub
Chọn một server làm trung tâm. Tạo file docker-compose.yml với nội dung sau:
services:
beszel:
image: 'henrygd/beszel:latest'
container_name: 'beszel-hub'
restart: unless-stopped
ports:
- '8090:8090'
volumes:
- ./beszel_data:/data
Chạy lệnh docker compose up -d. Sau đó, bạn truy cập http://IP-SERVER:8090 để thiết lập tài khoản admin ban đầu.
2. Kết nối Agent vào hệ thống
Trong giao diện Hub, hãy nhấn “Add System”. Hệ thống sẽ cấp cho bạn một mã KEY định danh. File Compose cho phía Agent sẽ trông như thế này:
services:
beszel-agent:
image: 'henrygd/beszel-agent:latest'
container_name: 'beszel-agent'
restart: unless-stopped
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
PORT: 4567
KEY: 'ssh-ed25519 AAAAC3... (Key của bạn)'
Chỉ cần chạy Agent này trên mọi server khác. Chúng sẽ tự động kết nối và đẩy dữ liệu về Hub ngay lập tức.
Cơ chế bảo mật và lưu trữ
Beszel không dùng cơ chế push/pull rườm rà. Hub kết nối tới Agent qua giao thức an toàn dựa trên SSH key. Chỉ Hub nắm giữ Private Key mới có quyền lấy dữ liệu từ Agent. Điều này giúp hệ thống tránh được các cuộc tấn công quét port thông thường.
Soi lỗi Docker cực nhanh
Tính năng mình thích nhất là theo dõi Docker Stats mà không cần cấu hình thêm. Khi mount docker.sock, bạn sẽ thấy rõ từng container đang chiếm bao nhiêu tài nguyên. Đây là “cứu cánh” khi một web app bị memory leak mà bạn không biết do container nào gây ra.
Dữ liệu SQLite siêu gọn
Mọi chỉ số được lưu vào SQLite ngay tại Hub. Với 20 node giám sát liên tục, database của mình chỉ nặng khoảng 300MB sau nửa năm. Hệ thống tự động gom nhóm dữ liệu cũ (rollup) nên dung lượng phình ra cực kỳ chậm.
Cấu hình cảnh báo và bảo mật nâng cao
Thiết lập Alert qua Telegram
Beszel hỗ trợ gửi cảnh báo qua Telegram, Discord hoặc Slack nhờ tích hợp Apprise. Để tránh bị làm phiền liên tục, bạn nên đặt ngưỡng thông minh. Ví dụ: Chỉ báo động nếu CPU vượt 90% và kéo dài liên tục trong 5 phút.
Bảo mật với Reverse Proxy
Đừng mở port 8090 trực tiếp. Hãy dùng Nginx Proxy Manager hoặc Traefik để bọc HTTPS. Beszel cũng hỗ trợ OIDC, cho phép bạn đăng nhập bằng Google Auth hoặc Authentik để tăng độ an toàn cho dashboard.
Kinh nghiệm thực tế sau 6 tháng vận hành
Dưới đây là vài lưu ý nhỏ để bạn tối ưu hệ thống tốt hơn:
- Chống nhiễu cảnh báo: Đừng để alert Disk Usage mặc định 80%. Các server chạy log nhiều sẽ khiến Telegram của bạn rung liên tục. Hãy nâng ngưỡng lên 90-95%.
- Tối ưu VPS yếu: Agent chỉ tốn 15MB RAM. Tuy nhiên, với VPS 512MB, bạn nên chỉnh
UPDATE_INTERVALlên 30 giây để giảm tải I/O cho ổ cứng. - Sao lưu dữ liệu: Hãy thường xuyên backup thư mục
beszel_data. Đây là nơi chứa toàn bộ lịch sử monitoring và danh sách các node bạn đã dày công thiết lập.
So với sự cồng kềnh của Zabbix, Beszel mang lại trải nghiệm tinh gọn và hiệu quả. Nó tập trung vào những thông số thực sự quan trọng cho dân DevOps và SRE. Nếu bạn đang quản lý dàn homelab hoặc vài con VPS cá nhân, hãy thử Beszel ngay. Bạn sẽ sớm quên đi những dòng lệnh htop đen trắng nhàm chán thôi.

