Uptime Kuma là công cụ giám sát self-hosted có giao diện web trực quan, phù hợp để theo dõi website, API, port TCP, ping, DNS, chứng chỉ SSL và nhiều loại dịch vụ khác. Thay vì chỉ phát hiện sự cố khi người dùng báo website không truy cập được, bạn có thể triển khai Uptime Kuma trên một VPS riêng hoặc cùng máy chủ để kiểm tra trạng thái theo chu kỳ và gửi cảnh báo khi dịch vụ down. Bài viết này hướng dẫn cài Uptime Kuma trên VPS Ubuntu bằng Docker Compose, cấu hình volume để giữ dữ liệu, publish port an toàn, thêm monitor đầu tiên, đặt thông báo, reverse proxy với Nginx và những lưu ý quan trọng khi giám sát chính VPS đang chạy Kuma.
Một VPS hoạt động 24/7 vẫn có thể gặp sự cố: website trả lỗi 500, port ứng dụng ngừng listen, chứng chỉ SSL gần hết hạn hoặc máy chủ mất kết nối. Nếu chỉ kiểm tra thủ công, bạn có thể phát hiện quá muộn.
Uptime Kuma là công cụ giám sát self-hosted giúp theo dõi nhiều loại endpoint và hiển thị lịch sử uptime trên giao diện web. Dự án cung cấp Docker image chính thức và đây là một trong những cách triển khai thuận tiện trên VPS Ubuntu.
Nếu bạn chưa cài Docker, hãy xem bài Hướng dẫn cài Docker và Docker Compose trên VPS Ubuntu.
1. Uptime Kuma dùng để làm gì?
Uptime Kuma phù hợp để theo dõi:
- website HTTP/HTTPS;
- API endpoint;
- TCP port;
- ping;
- DNS;
- Docker container trong một số mô hình;
- SSL certificate;
- dịch vụ nội bộ có endpoint kiểm tra.
Khi monitor chuyển sang trạng thái lỗi, Uptime Kuma có thể gửi thông báo qua nhiều kênh tích hợp tùy phiên bản và cấu hình.
2. Nên cài Uptime Kuma ở đâu?
Có hai mô hình phổ biến.
Cài cùng VPS cần theo dõi
Ưu điểm:
- tiết kiệm chi phí;
- triển khai nhanh;
- phù hợp lab hoặc website nhỏ.
Nhược điểm: nếu chính VPS mất mạng hoặc tắt hoàn toàn, Uptime Kuma trên cùng máy cũng mất theo và không thể tự gửi cảnh báo ra ngoài.
Cài trên VPS giám sát riêng
Đây là mô hình tốt hơn nếu bạn cần theo dõi nhiều máy chủ. Khi VPS ứng dụng gặp sự cố, máy giám sát vẫn hoạt động để gửi cảnh báo.
Nếu bạn cần một máy riêng cho monitoring, có thể tham khảo VPS tại HUONG CLOUD.
3. Chuẩn bị VPS Ubuntu
Bạn cần:
- Ubuntu Server;
- quyền
sudo; - Docker Engine;
- Docker Compose plugin;
- ít dung lượng trống cho database và log;
- domain nếu muốn truy cập bằng HTTPS.
Kiểm tra Docker:
docker --version
docker compose version
4. Tạo thư mục project
mkdir -p ~/uptime-kuma
cd ~/uptime-kuma
5. Tạo file Docker Compose
Tạo:
nano compose.yaml
Nội dung cơ bản:
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- uptime-kuma-data:/app/data
volumes:
uptime-kuma-data:
Ở đây port 3001 chỉ bind vào localhost để tránh mở giao diện quản trị trực tiếp ra Internet. Sau đó có thể dùng Nginx reverse proxy.
6. Khởi động Uptime Kuma
docker compose up -d
Kiểm tra:
docker compose ps
Xem log:
docker compose logs -f
7. Test local
Trên VPS:
curl -I http://127.0.0.1:3001
Nếu nhận được phản hồi HTTP, container đã hoạt động.
8. Có thể mở trực tiếp port 3001 không?
Có thể cho lab bằng:
ports:
- "3001:3001"
Nhưng với production, nên dùng reverse proxy + HTTPS và không expose port quản trị thô nếu không cần.
9. Cấu hình Nginx reverse proxy
Nếu đã có Nginx, tạo server block ví dụ:
server {
listen 80;
server_name status.example.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Kiểm tra:
sudo nginx -t
sudo systemctl reload nginx
10. Trỏ domain
Tạo bản ghi A:
status.example.com -> IP_VPS
Kiểm tra:
dig status.example.com
11. Cài SSL
Nếu dùng Certbot + Nginx:
sudo certbot --nginx -d status.example.com
Sau đó truy cập:
https://status.example.com
12. Thiết lập tài khoản quản trị
Lần đầu mở Uptime Kuma, hãy tạo tài khoản quản trị với password mạnh.
Không dùng lại password VPS, email hoặc database.
Nếu hệ thống có nhiều người quản trị, nên kiểm soát việc chia sẻ credential và chỉ cấp quyền cần thiết.
13. Tạo monitor HTTP đầu tiên
Trong giao diện:
- chọn Add New Monitor;
- chọn loại HTTP(s);
- nhập tên;
- nhập URL;
- chọn interval;
- lưu.
Ví dụ URL:
https://example.com/health
Một endpoint /health riêng thường tốt hơn chỉ kiểm tra homepage nếu bạn muốn xác nhận ứng dụng thật sự hoạt động.
14. Monitor TCP port
Nếu cần kiểm tra SSH, database gateway hoặc một service TCP:
- chọn monitor TCP Port;
- nhập hostname/IP;
- nhập port.
Ví dụ:
Host: 203.0.113.10
Port: 443
Không nên monitor database public nếu bản thân database không cần mở Internet.
15. Monitor ping
Ping giúp phát hiện máy chủ có phản hồi ICMP hay không.
Tuy nhiên, nhiều firewall chặn ICMP nên ping fail không luôn đồng nghĩa dịch vụ down.
Nên kết hợp ping với monitor HTTP/TCP thực tế.
16. Monitor SSL certificate
Uptime Kuma có thể giúp theo dõi HTTPS endpoint và hỗ trợ cảnh báo liên quan chứng chỉ tùy cấu hình/phiên bản.
Điều này hữu ích để tránh certificate hết hạn ngoài ý muốn.
17. Chọn interval bao nhiêu?
Không cần check mỗi giây cho mọi dịch vụ.
Interval quá ngắn có thể:
- tạo request thừa;
- làm log tăng;
- gây false alarm khi network jitter ngắn.
Website thông thường có thể dùng chu kỳ từ vài chục giây đến vài phút tùy yêu cầu vận hành.
18. Retry và timeout
Một request lỗi duy nhất chưa chắc là outage thật.
Nên dùng retry hợp lý để tránh cảnh báo do mất gói tạm thời.
Timeout cũng cần phù hợp endpoint. Nếu API bình thường phản hồi 100 ms nhưng timeout tới 60 giây, cảnh báo có thể đến quá muộn.
19. Cảnh báo qua kênh thông báo
Trong phần Notifications, Uptime Kuma hỗ trợ nhiều integration tùy phiên bản.
Nguyên tắc cấu hình:
- tạo notification channel;
- test thử;
- gắn notification với monitor;
- xác nhận khi dịch vụ down/up đều nhận được thông báo.
Không chỉ tạo integration rồi giả định cảnh báo đã hoạt động.
20. Test cảnh báo thật
Sau khi cấu hình, hãy chủ động tạo sự cố ngắn trong maintenance window.
Ví dụ stop một container test:
docker stop demo-app
Xác nhận Uptime Kuma chuyển trạng thái và gửi cảnh báo.
Sau đó bật lại:
docker start demo-app
21. Status Page là gì?
Uptime Kuma cho phép tạo trang trạng thái để hiển thị uptime của các dịch vụ được chọn.
Bạn có thể dùng cho:
- website khách hàng;
- API;
- hệ thống nội bộ;
- dịch vụ SaaS nhỏ.
Không nên đưa monitor nhạy cảm hoặc hostname nội bộ lên public status page nếu không cần.
22. Backup dữ liệu Uptime Kuma
Dữ liệu nằm trong volume:
uptime-kuma-data
Bạn nên backup định kỳ, đặc biệt nếu đã tạo nhiều monitor và notification.
Kiểm tra volume:
docker volume inspect uptime-kuma-data
Một cách backup cần đảm bảo consistency; tốt nhất thực hiện theo hướng dẫn dự án hoặc dừng container ngắn trong maintenance nếu backup trực tiếp volume.
23. Update Uptime Kuma
Quy trình container phổ biến:
cd ~/uptime-kuma
docker compose pull
docker compose up -d
Trước update production:
- backup dữ liệu;
- đọc release notes;
- tránh update ngay trước giờ cao điểm.
24. Xem tài nguyên container
docker stats uptime-kuma
Kiểm tra thêm host:
free -h
df -h
Uptime Kuma tương đối nhẹ trong nhiều trường hợp, nhưng số monitor, lịch sử và notification có thể làm usage tăng theo quy mô.
25. Log container
docker logs uptime-kuma --tail 100
Theo dõi:
docker logs -f uptime-kuma
Nếu giao diện lỗi, container restart hoặc monitor không chạy, log là nơi nên kiểm tra đầu tiên.
26. Tình huống thực tế: website vẫn mở nhưng API chết
Nếu bạn chỉ monitor homepage, website có thể trả HTML cache bình thường trong khi API phía sau đã lỗi.
Nên tạo nhiều monitor:
- homepage;
- endpoint
/health; - API quan trọng;
- TCP port nếu cần.
Monitoring tốt phải phản ánh chức năng quan trọng chứ không chỉ kiểm tra server còn ping được.
27. Tình huống thực tế: Uptime Kuma cùng VPS bị down
Nếu Uptime Kuma và website cùng nằm trên một VPS, khi VPS mất điện hoặc mất network thì cả hai cùng biến mất.
Không có monitor bên ngoài để gửi cảnh báo.
Nếu uptime thực sự quan trọng, nên triển khai monitor trên hạ tầng khác hoặc dịch vụ giám sát ngoài.
28. Bảo mật Uptime Kuma
- dùng HTTPS;
- password mạnh;
- không expose 3001 trực tiếp nếu không cần;
- cập nhật image;
- giới hạn firewall;
- không public status page chứa thông tin nhạy cảm;
- backup volume;
- không chạy container privileged nếu không cần.
29. Uptime Kuma có thay thế Prometheus/Grafana không?
Không hoàn toàn.
Uptime Kuma mạnh ở availability monitoring đơn giản và giao diện dễ dùng.
Prometheus/Grafana phù hợp hơn khi cần:
- metric chi tiết;
- dashboard phức tạp;
- alert theo CPU/RAM/query latency;
- time-series monitoring quy mô lớn.
Hai mô hình có thể dùng song song.
30. Uptime Kuma có theo dõi CPU/RAM VPS không?
Trọng tâm chính của Kuma là uptime/service monitoring, không phải host metrics sâu như node exporter, Netdata hoặc Zabbix.
Nếu cần CPU/RAM/disk chi tiết, hãy dùng một công cụ monitoring tài nguyên riêng.
31. Checklist triển khai Uptime Kuma
- Docker Engine hoạt động.
- Compose plugin hoạt động.
- Volume persistent được cấu hình.
- Port 3001 không public nếu không cần.
- Reverse proxy hoạt động.
- HTTPS hợp lệ.
- Admin password mạnh.
- Monitor quan trọng đã tạo.
- Notification đã test.
- Backup volume đã lên lịch.
32. FAQ về Uptime Kuma trên VPS
Uptime Kuma có miễn phí không?
Uptime Kuma là dự án mã nguồn mở; hãy kiểm tra license hiện hành trên repository chính thức khi triển khai.
Có thể cài không dùng Docker không?
Dự án có các cách triển khai khác, nhưng Docker là phương án phổ biến và dễ quản lý.
Có nên đặt Kuma cùng website?
Phù hợp lab hoặc nhu cầu đơn giản; với monitoring đáng tin cậy hơn, nên tách hạ tầng.
Có thể monitor nhiều VPS không?
Có. Một Kuma instance có thể monitor nhiều endpoint nếu network cho phép.
Kuma có cảnh báo SSL hết hạn không?
Có thể theo dõi HTTPS/certificate trong các cấu hình phù hợp.
Có cần mở port 3001 public không?
Không. Reverse proxy qua localhost là lựa chọn sạch hơn cho production.
Kết luận
Cài Uptime Kuma trên VPS Ubuntu giúp bạn biết dịch vụ gặp sự cố sớm hơn thay vì chờ người dùng phản ánh. Docker Compose giúp triển khai nhanh, còn reverse proxy + HTTPS giúp giao diện quản trị an toàn hơn.
Nếu hệ thống thực sự quan trọng, hãy đặt Uptime Kuma trên một VPS giám sát riêng, cấu hình notification và test cảnh báo định kỳ. Monitoring chỉ có giá trị khi bạn chắc chắn cảnh báo thật sự đến được người chịu trách nhiệm.
Bạn có thể tham khảo VPS Ubuntu tại HUONG CLOUD nếu cần một máy nhỏ riêng cho monitoring hoặc hạ tầng Docker.
Nguồn tham khảo
- Uptime Kuma GitHub: https://github.com/louislam/uptime-kuma
- Uptime Kuma Docker image/deployment documentation: https://github.com/louislam/uptime-kuma/wiki
- Docker Compose documentation: https://docs.docker.com/compose/
- Nginx reverse proxy documentation: https://nginx.org/en/docs/http/ngx_http_proxy_module.html
Kết luận
Nếu chưa chắc cấu hình hoặc loại dịch vụ nào phù hợp, hãy gửi nhu cầu thực tế để đội ngũ hỗ trợ tư vấn trước khi mua.
Chưa biết nên chọn gói nào?
Xem bảng giá VPS hoặc liên hệ đội ngũ hỗ trợ để chọn cấu hình phù hợp.
Xem bảng giá VPS →