[Open Source] #197 - Beszel: Hệ thống giám sát máy chủ gọn nhẹ với kiến trúc Hub-Agent, Go Backend và cơ chế truyền tải dữ liệu nhị phân CBOR
Việc giám sát hạ tầng Homelab hoặc cụm máy chủ VPS thường đòi hỏi các hệ thống phức tạp như Prometheus/Grafana vốn tiêu tốn nhiều tài nguyên. Beszel ra đời như một sự thay thế "tinh gọn nhưng mãnh liệt", cung cấp khả năng theo dõi CPU, RAM, Disk, Network và chi tiết từng Docker Container với mức chiếm dụng tài nguyên gần như bằng không. Điểm đặc biệt của Beszel nằm ở khả năng hoạt động xuyên thấu NAT và cơ chế bảo mật dựa trên chữ ký số chuẩn doanh nghiệp.
Dưới góc độ kỹ thuật, Beszel là một minh chứng xuất sắc về việc ứng dụng ngôn ngữ Go, kỹ thuật nhị phân hóa dữ liệu (CBOR) và kiến trúc Reverse Connection linh hoạt.
Github: https://github.com/henrygd/beszel
🛠️ 1. Nền tảng công nghệ: Hiệu năng thực thi cực hạn
Beszel tận dụng tối đa hệ sinh thái thư viện hệ thống của Go để xây dựng một bộ máy thu thập dữ liệu (Metrics Engine) bền bỉ:
- Logic Core (Golang): Lựa chọn Go giúp cả Hub và Agent đều có thể biên dịch thành một file thực thi duy nhất (Static Binary), không phụ thuộc vào thư viện hệ thống (Zero-dependency).
- Metrics Extraction (gopsutil): Sử dụng thư viện chuẩn công nghiệp để truy xuất các thông số phần cứng từ Kernel ở tốc độ cao, hỗ trợ đa nền tảng từ Linux, Windows đến macOS và FreeBSD.
- Binary Data Exchange (CBOR): Thay vì sử dụng JSON cồng kềnh, Beszel sử dụng CBOR (Concise Binary Object Representation) để đóng gói dữ liệu. Kỹ thuật này giúp giảm kích thước gói tin qua mạng đến 50-70% và triệt tiêu đáng kể overhead CPU khi parse dữ liệu tại Hub.
- Modern Hub (PocketBase): Hub được xây dựng trên nền tảng PocketBase (SQLite nhúng), mang lại khả năng quản lý người dùng, cấu hình và lịch sử dữ liệu một cách gọn nhẹ và cực kỳ ổn định.
🏗️ 2. Trụ cột kiến trúc: Hub-Agent và Reverse Networking
Kiến trúc của Beszel được thiết kế để giải quyết bài toán giám sát trong các môi trường mạng phức tạp:
- Hybrid Connection Model:
- Standard Mode: Hub chủ động kéo (Pull) dữ liệu từ Agent thông qua WebSockets hoặc SSH.
- Reverse Mode: Agent chủ động kết nối ngược lại Hub. Đây là kỹ thuật then chốt giúp giám sát các máy chủ nằm sau Firewall hoặc CGNAT (nhà mạng không cho mở port) mà không cần cấu hình VPN hay Proxy phức tạp.
- Platform-Agnostic Design: Sử dụng cơ chế
//go:buildđể tách biệt logic xử lý cho từng hệ điều hành. Ví dụ: Sử dụngpowermetricscho Apple Silicon (M1/M2/M3) vàsysfscho Linux, đảm bảo tính chính xác tuyệt đối của thông số phần cứng. - Container Intelligence: Agent tương tác trực tiếp với Docker/Podman API qua Unix Sockets để thu thập chỉ số hiệu năng của từng Container riêng lẻ, cho phép người dùng nhìn thấy "thủ phạm" gây quá tải hệ thống trong tích tắc.
🔄 3. Workflow: Vòng đời từ Cảm biến đến Dashboard (Sequence Diagram)
Sơ đồ mô tả quy trình hệ thống điều phối dữ liệu và xác thực bảo mật:

⚡ 4. Các kỹ thuật "Pro-level" trong mã nguồn
- Interval-aware Delta Calculation: Để báo cáo % CPU hay tốc độ mạng chính xác, Agent không chỉ lấy giá trị tức thời mà còn lưu trữ các snapshot. Hệ thống tính toán sự chênh lệch (Delta) giữa các lần đo, đảm bảo các biểu đồ phản ánh đúng tải trọng thực tế của hệ thống.
- CGO-free GPU Monitoring: Một kỹ thuật đỉnh cao trong
gpu.go. Beszel sử dụngpuregođể gọi trực tiếp các hàm từ thư viện NVML (NVIDIA) mà không cần bật CGO. Điều này giúp Agent giữ được tính di động (Portable) và cực kỳ dễ biên dịch chéo cho các kiến trúc CPU khác nhau. - Sleeping Disk Optimization: Một chi tiết tinh tế trong quản trị NAS. Agent có cơ chế cache thông tin sử dụng ổ đĩa lâu (vd: 1 giờ). Kỹ thuật này giúp các ổ cứng HDD đang ở chế độ ngủ (Standby) không bị đánh thức vô ích khi hệ thống quét thông số, giúp tiết kiệm điện và kéo dài tuổi thọ phần cứng.
- SSH-based Fallback: Ngoài WebSockets, Beszel tích hợp sẵn nhân SSH (
gliderlabs/ssh). Nếu kênh truyền tin chính gặp sự cố, Hub vẫn có thể truy cập Agent thông qua giao thức SSH chuẩn để duy trì dòng chảy dữ liệu giám sát.
⚖️ 5. So sánh chiến lược
| Tiêu chí | Beszel | Netdata | Prometheus + Grafana |
|---|---|---|---|
| Độ nhẹ (RAM/CPU) | Cực thấp (< 20MB RAM) | Thấp | Trung bình / Cao |
| Cài đặt | Siêu dễ (Docker/Binary) | Dễ | Phức tạp (Cần Config) |
| Xác thực | SSH Key (Rất an toàn) | Basic Auth / Cloud | Đa dạng |
| Mạng phức tạp | Hỗ trợ Reverse Connection | Khó | Cần Proxy / Tunnel |
| GPU/Container | Có sẵn | Có sẵn | Cần Exporters |
✅ Kết luận: Tại sao Beszel là tương lai của HomeLab Monitoring?
Beszel chứng minh rằng một hệ thống giám sát hiện đại không cần phải đồ sộ. Bằng cách làm chủ các kỹ thuật xử lý dữ liệu ở tầng thấp và ưu tiên tính thực dụng trong hạ tầng mạng, dự án đã tạo ra một công cụ "vô hình" — chạy lặng lẽ nhưng cung cấp những thông tin sống còn cho hệ thống.
Đối với các kỹ sư Backend, nghiên cứu Beszel mang lại giá trị về:
- Kỹ thuật Binary Serialization với CBOR cho các ứng dụng hiệu năng cao.
- Cách xây dựng Agent-based System với bảo mật dựa trên mật mã học.
- Tư duy thiết kế hệ thống tự phục hồi và vượt qua các rào cản NAT.
All Rights Reserved