Beszel: Giám sát server nhẹ như lông hồng mà đầy đủ tính năng
Beszel là giải pháp monitoring server siêu nhẹ, hỗ trợ Docker stats, lịch sử dữ liệu, và cảnh báo setup trong vài phút, chạy mượt trên cả máy yếu.
Nguyễn Nhật Long
@nguyennhatlong1303

Mình vừa dọn lại hệ thống monitoring cho mấy con VPS cá nhân và tình cờ phát hiện ra Beszel một project open source trên GitHub đã gom được hơn 22k star mà trước giờ mình chưa nghe ai trong cộng đồng Việt Nam nhắc tới nhiều. Sau khi thử deploy và chạy thực tế được khoảng hai tuần, mình thấy đây là một lựa chọn cực kỳ đáng cân nhắc cho anh em nào đang tìm giải pháp monitoring nhẹ nhàng, không cần phải dựng cả một stack Prometheus + Grafana nặng nề chỉ để theo dõi vài con server.
Cái bài toán mà Beszel đang giải quyết
Anh em dev, đặc biệt là những bạn tự quản lý server hoặc chạy side project, chắc hẳn đều biết cảm giác này: bạn có 2-3 con VPS chạy mấy cái app nhỏ, vài container Docker, và bạn muốn biết tình trạng CPU, RAM, disk ra sao mà không muốn tốn quá nhiều resource cho việc monitoring. Dựng Prometheus + Grafana thì overkill riêng Prometheus đã ngốn vài trăm MB RAM, chưa kể Grafana. Netdata thì nhẹ hơn nhưng vẫn khá tốn resource nếu bạn chạy trên máy 1GB RAM. Uptime Kuma thì chỉ check được uptime chứ không đi sâu vào system metrics.
Beszel nhảy vào đúng cái khoảng trống đó. Nó là một nền tảng monitoring server nhẹ, bao gồm Docker stats, dữ liệu lịch sử, và hệ thống cảnh báo tất cả gói gọn trong hai component nhỏ gọn.
Kiến trúc Hub-Agent: đơn giản mà hiệu quả
Beszel hoạt động theo mô hình hub-agent, và cái hay là cả hai đều cực kỳ nhẹ.
Hub là web application được build trên PocketBase nếu bạn chưa biết thì PocketBase là một backend framework viết bằng Go, chạy như một single binary. Hub cung cấp dashboard để bạn xem và quản lý tất cả các server đang kết nối. Vì build trên PocketBase nên nó tự có sẵn database (SQLite), authentication, API không cần setup thêm database server riêng.
Agent chạy trên mỗi server bạn muốn monitor. Agent thu thập metrics và gửi về hub. Cái agent này viết bằng Go nên compile ra binary nhỏ gọn, chạy rất ít resource.
Điểm mình thích nhất ở kiến trúc này là tính đơn giản. Không có message queue, không có time-series database phức tạp, không có service mesh. Bạn chạy hub ở một chỗ, cài agent lên mỗi server cần monitor, xong. Theo kinh nghiệm của mình khi dùng thực tế, agent chỉ chiếm khoảng 10-20MB RAM con số này gần như không đáng kể so với Prometheus node_exporter kết hợp với cAdvisor.
So sánh nhanh với các giải pháp phổ biến
Để anh em dễ hình dung Beszel đứng ở đâu trong hệ sinh thái monitoring, mình tổng hợp lại bảng so sánh:
Nhìn bảng này bạn thấy rõ: Beszel không cố cạnh tranh với Prometheus + Grafana về độ linh hoạt hay khả năng query phức tạp. Nhưng nó thắng ở chỗ setup nhanh, nhẹ, và đã có sẵn hầu hết những gì một dev hoặc sysadmin cần cho việc monitoring hàng ngày.
| Tiêu chí | Beszel | Prometheus + Grafana | Netdata | Uptime Kuma |
|---|---|---|---|---|
| RAM usage (agent/collector) | ~10-20MB | ~200-500MB | ~100-300MB | N/A (agentless) |
| Docker stats | ✅ Có sẵn | Cần cAdvisor | ✅ Có sẵn | ❌ Không |
| Historical data | ✅ Có | ✅ Có (cần storage) | ✅ Có (cloud hoặc local) | Chỉ uptime history |
| Alert system | ✅ Built-in | Cần Alertmanager | ✅ Có | ✅ Có |
| Multi-user | ✅ Có | Cần Grafana org | ✅ Cloud only | ❌ Không |
| OAuth/OIDC | ✅ Có | Qua Grafana | ✅ Cloud | ❌ Không |
| Setup complexity | Rất thấp | Cao | Trung bình | Thấp |
| GPU monitoring | ✅ Nvidia/AMD/Intel | Cần exporter riêng | ✅ Có | ❌ Không |
| S.M.A.R.T disk health | ✅ Có | Cần exporter riêng | ✅ Có | ❌ Không |
Danh sách metrics: phủ rộng hơn bạn tưởng
Khi mới nhìn vào, mình nghĩ Beszel chắc chỉ track được CPU, RAM, disk cơ bản. Nhưng thực tế danh sách metrics khá ấn tượng:
- CPU usage cho cả host system và từng Docker/Podman container riêng biệt
- Memory usage bao gồm cả swap và ZFS ARC cái ZFS ARC này quan trọng nếu bạn chạy Proxmox hoặc TrueNAS
- Disk usage hỗ trợ nhiều partition và device, kèm theo Disk I/O chi tiết
- Network usage cho cả host và từng container
- Load average metric kinh điển mà nhiều tool nhẹ hay bỏ qua
- Temperature từ các sensor trên host
- GPU usage và power draw cho Nvidia, AMD, và Intel cái này cực kỳ hữu ích nếu bạn chạy AI/ML workload
- Battery cho laptop hoặc UPS
- S.M.A.R.T disk health, bao gồm cả eMMC wear/EOL và Linux mdraid array health
Mình thấy cái này hay ở chỗ nó track được Docker container metrics mà không cần bạn phải cài thêm gì. Với Prometheus, bạn phải setup cAdvisor riêng để có Docker stats, rồi config scrape target, rồi tạo dashboard trên Grafana. Với Beszel, nó tự detect và track tất cả container đang chạy.
Đặc biệt, S.M.A.R.T monitoring là feature mà mình ít thấy ở các lightweight monitoring tool. Nếu bạn chạy server vật lý hoặc homelab, biết được tình trạng sức khỏe ổ cứng là cực kỳ quan trọng bạn không muốn đến lúc disk chết mới biết.
Hệ thống alert và multi-user
Beszel cho phép bạn config alert cho CPU, memory, disk, bandwidth, temperature, load average, và trạng thái server. Mình chưa đào sâu vào phần notification channel nhưng từ docs thì nó hỗ trợ khá nhiều kênh thông báo.
Cái multi-user support cũng là điểm đáng chú ý. Mỗi user quản lý hệ thống server riêng của mình, admin có thể share system giữa các user. Điều này có nghĩa là nếu bạn làm trong một team nhỏ, mỗi người có thể tự quản lý monitoring cho server của mình mà không cần tạo nhiều instance riêng biệt.
OAuth/OIDC support cũng có sẵn bạn có thể login bằng Google, GitHub, hay bất kỳ OAuth2 provider nào. Thậm chí có thể disable password auth hoàn toàn nếu muốn enforce OAuth login. Đây là feature mà nhiều self-hosted tool thiếu hoặc phải cài thêm plugin.
Automatic backup: chi tiết nhỏ nhưng quan trọng
Một điểm mà mình đánh giá cao là Beszel hỗ trợ automatic backup ra disk hoặc S3-compatible storage. Vì hub dùng SQLite (qua PocketBase), toàn bộ data nằm trong một file database duy nhất, việc backup rất đơn giản và reliable.
Anh em lưu ý: với các tool monitoring dùng time-series database phức tạp hơn (như InfluxDB hay Prometheus TSDB), việc backup và restore phức tạp hơn nhiều. Còn với Beszel, bạn backup một file SQLite là xong restore cũng chỉ cần copy file lại.
S3-compatible storage nghĩa là bạn có thể dùng AWS S3, MinIO, Backblaze B2, Cloudflare R2, hay bất kỳ service nào implement S3 API. Rất linh hoạt.
Ai nên dùng Beszel?
Sau hai tuần sử dụng, mình thấy Beszel phù hợp nhất với mấy nhóm người dùng:
Indie dev và side project: Bạn có 1-5 con VPS chạy các app nhỏ, muốn biết tình trạng server mà không muốn tốn resource cho monitoring stack. Beszel là perfect fit.
Homelab enthusiasts: Chạy Proxmox, Docker trên máy ở nhà, muốn dashboard đẹp để theo dõi. S.M.A.R.T monitoring và temperature tracking đặc biệt hữu ích cho use case này.
Team nhỏ: 3-5 dev cùng quản lý một số server, cần multi-user support và OAuth. Không muốn maintain một stack monitoring phức tạp.
AI/ML workload: Cần monitor GPU usage và power draw. Beszel hỗ trợ cả Nvidia, AMD, và Intel GPU mà không cần config gì thêm.
Ngược lại, nếu bạn cần query metrics phức tạp bằng PromQL, tạo custom dashboard cực kỳ chi tiết, hoặc monitor hàng trăm server với high-availability thì Prometheus + Grafana vẫn là lựa chọn đúng đắn. Beszel không cố thay thế enterprise-grade monitoring, nó giải quyết bài toán ở quy mô nhỏ hơn nhưng giải quyết rất tốt.
Vài điểm mình muốn nhấn mạnh về tech stack
Việc Beszel được viết bằng Go và build trên PocketBase mang lại vài lợi thế kỹ thuật đáng kể:
Thứ nhất, Go compile ra single binary. Bạn không cần cài runtime, không cần dependency manager, không lo version conflict. Download binary, chạy, xong. Hoặc dùng Docker image cũng chỉ vài MB.
Thứ hai, PocketBase dùng SQLite thay vì PostgreSQL hay MySQL. Nghe thì có vẻ "yếu" nhưng thực tế SQLite cực kỳ reliable cho workload kiểu này read-heavy, write không quá nhiều, data size vừa phải. Và quan trọng nhất: không cần chạy thêm database server, giảm đáng kể resource footprint.
Thứ ba, PocketBase đã có sẵn REST API, realtime subscriptions, authentication, file storage. Beszel tận dụng tất cả những thứ này thay vì phải build from scratch. Đây là ví dụ điển hình của việc chọn đúng foundation để build product.
Cộng đồng và hướng phát triển
Với 22.3k star trên GitHub, 824 fork, và hơn 1,400 commits, Beszel không phải là project weekend rồi bỏ. Community khá active với 226 issues và 64 pull requests đang mở. Project cũng có Discussions trên GitHub và một Matrix room cho real-time chat.
Mình lướt qua issues thì thấy maintainer (henrygd) respond khá nhanh và thoughtful. Project có SECURITY.md riêng, có goreleaser config cho automated releases những dấu hiệu cho thấy đây là project được maintain nghiêm túc.
Một điểm thú vị nữa là project có file i18n.yml, nghĩa là đang hỗ trợ đa ngôn ngữ. Mình chưa check kỹ nhưng nếu chưa có tiếng Việt thì đây cũng là cơ hội cho anh em muốn contribute.
Nói thật, trong thế giới self-hosted monitoring, việc một tool mới có thể gom được hơn 22k star là rất ấn tượng. Nó cho thấy cộng đồng đang thực sự cần một giải pháp monitoring nhẹ nhàng, dễ dùng, mà vẫn đủ tính năng. Beszel đáp ứng đúng nhu cầu đó, và nếu bạn đang tìm kiếm một cách đơn giản để monitor server của mình, mình nghĩ đây là lựa chọn đáng thử nhất hiện tại. Setup chỉ mất vài phút, resource gần như không đáng kể, và bạn sẽ có một dashboard monitoring đầy đủ mà không phải đau đầu maintain cả một ecosystem tools phức tạp.
Nguyễn Nhật Long
@nguyennhatlong1303Nguyễn Nhật Long is a Senior Frontend Engineer and Frontend Team Leader with 7 years of experience building real-time fintech platforms. Specializing in React, Next.js, TypeScript, and React Native, shipping 10+ products across Web, Mobile, Telegram Mini-Apps, and Web3.
Thấy hay? Chia sẻ cho bạn bè!