Beszel: Giải pháp giám sát máy chủ nhẹ, đơn giản
View:Beszel là một công cụ giám sát tài nguyên máy chủ nhẹ, mã nguồn mở, giúp bạn theo dõi tài nguyên hệ thống như CPU, RAM, ổ đĩa, mạng và container Docker một cách trực quan. Trong bài viết trước nếu cần monitoring website hay các dịch vụ thì ta có thể dùng Uptime Kuma. Trong bài viết này, ta sẽ tìm hiểu cách cài đặt và sử dụng Beszel để giám sát tài nguyên hệ thống: CPU, DISK, RAM,…
Beszel là gì?
Beszel bao gồm hai thành phần chính:
- Hub: Giao diện web trung tâm, thu thập và hiển thị dữ liệu từ các agent.
- Agent: Chạy trên mỗi máy chủ bạn muốn giám sát, thu thập dữ liệu hệ thống và gửi về Hub.
Beszel hỗ trợ cài đặt trên nhiều nền tảng như Linux, macOS, Windows (qua WSL2), và có thể triển khai bằng Docker hoặc binary. (What is Beszel)
Các tính năng của Beszel bao gồm:
- Nhẹ: Nhỏ gọn và tiêu tốn ít tài nguyên hơn so với các giải pháp phổ biến khác.
- Dễ dùng: Cài đặt dễ dàng, không cần mở port ra ngoài công cộng.
- Hỗ trợ monitoring Docker: Theo dõi lịch sử sử dụng CPU, bộ nhớ và mạng của từng container.
- Cảnh báo: Tùy chỉnh cảnh báo cho CPU, RAM, ổ đĩa, băng thông, nhiệt độ và trạng thái hệ thống.
- Hỗ trợ nhiều người dùng: Người dùng có thể quản lý hệ thống riêng của họ. Quản trị viên có thể chia sẻ hệ thống giữa các người dùng.
- Xác thực OAuth / OIDC: Hỗ trợ nhiều nhà cung cấp OAuth2. Có thể tắt xác thực bằng mật khẩu.
- Sao lưu tự động: Lưu và khôi phục dữ liệu từ đĩa hoặc các dịch vụ lưu trữ tương thích với S3.
- REST API: Sử dụng hoặc cập nhật dữ liệu thông qua script hoặc ứng dụng của bạn.
Cài đặt Beszel Hub
1. Cài đặt
Cách 1: Dùng Docker run
1
2
3
4
5
6
7
mkdir -p ./beszel_data && \
docker run -d \
--name beszel \
--restart=unless-stopped \
-v ./beszel_data:/beszel_data \
-p 8090:8090 \
henrygd/beszel
Cách 2: Dùng docker-compose.yml
:
Tạo một thư mục mới và tạo file docker-compose.yml
với nội dung sau:
1
2
3
4
5
6
7
8
9
10
11
version: "3"
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel
restart: unless-stopped
ports:
- 8090:8090
volumes:
- ./beszel_data:/beszel_data
- ./beszel_socket:/beszel_socket
Sau đó, chạy lệnh:
1
docker compose up -d
Cách 3: Dùng podman run
1
2
3
4
5
6
7
mkdir -p ./beszel_data && \
podman run -d \
--name beszel \
--restart=unless-stopped \
-v ./beszel_data:/beszel_data \
-p 8090:8090 \
docker.io/henrygd/beszel
2. Truy cập giao diện web
Mở trình duyệt và truy cập http://localhost:8090
để tạo tài khoản quản trị đầu tiên.
Cài đặt Beszel Agent
- Chọn “Add new Device” trên cùng bên phải trong trang chủ
- Điền các thông tin server cần monitoring:
- Name: Tên gợi nhớ
- Host/ IP: Địa chỉ IP của server
⚠️ Lưu ý trước khi cài đặt Agent:
- Cần mở port
45876
(hoặc port bạn chọn) đã được mở trên tường lửa hoặc router, đặc biệt nếu bạn sử dụng Beszel trong môi trường nhiều máy chủ (multi-host).- KHÔNG nhấn nút “Add Device” trên giao diện Beszel Hub trước khi Agent được cài đặt và khởi động thành công.
- Khi kết nối tới Agent cài trên cùng máy (localhost), không sử dụng
localhost
làm địa chỉ IP, vì container của Beszel Hub và Agent có thể nằm trong các mạng Docker khác nhau. Hãy dùng địa chỉ IP nội bộ thực tế của máy, ví dụ 192.168.x.x.
1. Cài đặt bằng script trên Linux
Chọn tab “Binary”, sau đó nhấn nút “Copy Linux Command” ở phía dưới
Trên máy chủ bạn muốn giám sát, chạy lệnh vừa copy có dạng như sau:
1
curl -sL https://get.beszel.dev -o /tmp/install-agent.sh && chmod +x /tmp/install-agent.sh && /tmp/install-agent.sh -p 45876 -k "ssh-ed25519 AAAAC3NzaC1lZDI...
Thay SSH_PUBLIC_KEY
bằng khóa công khai bạn nhận được từ Hub khi thêm hệ thống mới.
2. Cài đặt bằng Docker
Chọn tab “Docker”, sau đó nhấn nút “Copy Docker Run” ở phía dưới
Trên máy chủ bạn muốn giám sát, chạy lệnh vừa copy có dạng như sau:
1
docker run -d --name beszel-agent --network host --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock:ro -e KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfGuv" -e LISTEN=45876 henrygd/beszel-agent:latest
Cũng có thể chạy với tùy chọn Docker Compose
:
1
2
3
4
5
6
7
8
9
10
11
12
13
services:
beszel-agent:
image: "henrygd/beszel-agent"
container_name: "beszel-agent"
restart: unless-stopped
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
# monitor other disks / partitions by mounting a folder in /extra-filesystems
# - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
environment:
LISTEN: 45876
KEY: "ssh-ed25519 AAAAC3NzaC1l..."
Đợi khoảng 1 phút là trên Beszel Hub đã nhận được thông tin từ các agent
Thiết lập thông báo qua Telegram
Beszel hỗ trợ gửi thông báo qua nhiều kênh, bao gồm Telegram, Gmail,… Để thiết lập với Telegram:
- Tạo bot Telegram: Sử dụng @BotFather để tạo bot mới và lấy token.
-
Lấy Chat ID: Gửi tin nhắn bất kỳ đến bot, sau đó truy cập:
1
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
Tìm
chat.id
trong phản hồi. -
Cấu hình trong Beszel: Truy cập phần Notifications trong Hub và thêm URL theo định dạng:
1
telegram://<BOT_TOKEN>@telegram?channels=<CHAT_ID>
Quản lý Agent với systemd (Không cần khi cài bằng Docker)
Để đảm bảo Agent tự khởi động cùng hệ thống:
-
Tạo file dịch vụ:
1
sudo nano /etc/systemd/system/beszel-agent.service
Nội dung:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
[Unit] Description=Beszel Agent Service After=network-online.target Wants=network-online.target [Service] ExecStart=/opt/beszel-agent/beszel-agent Environment="LISTEN=45876" Environment="KEY=SSH_PUBLIC_KEY" Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
-
Kích hoạt dịch vụ:
1 2 3
sudo systemctl daemon-reload sudo systemctl enable beszel-agent sudo systemctl start beszel-agent
3.Các tính năng nâng cao
Bên cạnh khả năng giám sát tài nguyên hệ thống và container, Beszel còn cung cấp nhiều tính năng mạnh mẽ để hỗ trợ quản lý và mở rộng hệ thống:
- SMTP Alerts: Gửi thông báo cảnh báo qua email bằng cách cấu hình SMTP, giúp bạn kịp thời nhận biết các sự cố hệ thống.
- Quản lý Logs: Lưu trữ và xem lại nhật ký hệ thống, hỗ trợ phân tích và khắc phục sự cố hiệu quả.
- REST API: Cung cấp API RESTful cho phép tích hợp với các ứng dụng và script tùy chỉnh, mở rộng khả năng giám sát và tự động hóa.
- Quản lý người dùng: Hệ thống quản lý người dùng linh hoạt, cho phép phân quyền và chia sẻ hệ thống giữa các người dùng, phù hợp với môi trường làm việc nhóm.
- Sao lưu tự động: Hỗ trợ sao lưu dữ liệu tự động vào đĩa hoặc các dịch vụ lưu trữ tương thích với S3, đảm bảo an toàn dữ liệu và khả năng khôi phục khi cần thiết.
- Xác thực OAuth/OIDC: Hỗ trợ xác thực qua nhiều nhà cung cấp OAuth2, tăng cường bảo mật và thuận tiện trong việc quản lý truy cập. Và còn khá nhiều các tính năng khác nữa,…
Những tính năng này giúp Beszel trở thành một giải pháp giám sát hệ thống toàn diện, phù hợp cho cả cá nhân và doanh nghiệp.
Kết luận
Beszel là một công cụ giám sát máy chủ nhẹ, dễ cài đặt và sử dụng, phù hợp cho cả cá nhân và doanh nghiệp nhỏ. Với khả năng mở rộng và tích hợp thông báo linh hoạt, Beszel giúp bạn quản lý hệ thống hiệu quả hơn. Nếu bạn muốn giám sát thêm website hay dịch vụ mạng có thể tham khảo Uptime Kuma.
Tham khảo
- Trang chủ Beszel: https://beszel.dev
- Mã nguồn trên GitHub: https://github.com/henrygd/beszel
- Hướng dẫn chi tiết: https://beszel.dev/guide/getting-started