Quay lại
Tutorial
6 phút đọc25 tháng 3, 20266

Uptime Kuma: Tự host hệ thống giám sát website miễn phí, không giới hạn

Chán giới hạn 50 monitor miễn phí của UptimeRobot? Uptime Kuma cho bạn self-host hệ thống monitoring xịn sò, không giới hạn, setup chỉ 5 phút với Docker.

N

Nguyen Nhat Long

@longnn

A technical diagram showing Uptime Kuma monitoring architecture: central Uptime Kuma container connected via Docker socket to other containers like Nginx, PostgreSQL, Redis, and also connected via HTTP to external websites, with notification arrows going to Discord, Telegram, and Email icons, clean flat design with dark background

Uptime Kuma: Tự host hệ thống giám sát website miễn phí, không giới hạn

3 giờ sáng, khách hàng nhắn "anh ơi web chết rồi" — trong khi bạn đang ngủ ngon lành. Quen chưa? Mình từng dính vụ này, website down gần 2 tiếng mà không hay biết vì... quên check email thông báo từ UptimeRobot. Từ đó mình quyết tâm tìm một giải pháp monitoring mà mình kiểm soát hoàn toàn, và Uptime Kuma chính là câu trả lời.

Tại sao không dùng UptimeRobot hay Hetrixtools cho xong?

Thực ra mình dùng cả hai dịch vụ này khá lâu rồi:

  • UptimeRobot: miễn phí 50 monitor, kiểm tra mỗi 5 phút
  • Hetrixtools: miễn phí 15 monitor, kiểm tra mỗi 1 phút

Với nhu cầu cá nhân thì ổn. Nhưng khi bạn bắt đầu quản lý nhiều project, nhiều server, cần monitor cả Docker container, cần check mỗi 20 giây thay vì 5 phút — thì gói miễn phí không đủ nữa. Gói trả phí thì... cũng không rẻ.

Điều mình thấy hay là: trong thời đại self-hosting đang lên ngôi, hoàn toàn có thể tự dựng một hệ thống monitoring xịn sò mà không tốn thêm đồng nào — ngoài chi phí VPS mà bạn đang có sẵn.

A split-screen comparison dashboard: left side shows UptimeRobot free plan with a warning badge saying 50 monitor limit, right side shows Uptime Kuma self-hosted dashboard with unlimited monitors listed, modern flat design with green status indicators and dark theme
A split-screen comparison dashboard: left side shows UptimeRobot free plan with a warning badge saying 50 monitor limit, right side shows Uptime Kuma self-hosted dashboard with unlimited monitors listed, modern flat design with green status indicators and dark theme

Uptime Kuma là gì?

Uptime Kuma là một công cụ mã nguồn mở (open-source) để giám sát trạng thái hoạt động của website và dịch vụ mạng. Nói đơn giản: nó liên tục "ping" vào website/server của bạn, và hét lên khi có gì đó chết.

Những thứ khiến mình chọn Uptime Kuma thay vì các giải pháp khác:

  • Không giới hạn số lượng monitor — muốn theo dõi bao nhiêu tùy thích
  • Chu kỳ kiểm tra tối thiểu 20 giây — nhanh hơn nhiều so với 5 phút của UptimeRobot free
  • Hỗ trợ đa dạng: HTTP(s), TCP Port, Ping, DNS Record, Docker Container, Steam Game Server...
  • Thông báo qua 90+ kênh: Telegram, Discord, Slack, Email, Gotify, Pushover...
  • Giao diện đẹp, load nhanh, hỗ trợ tiếng Việt
  • Status Page riêng với custom domain
  • Theo dõi SSL certificate — biết trước khi cert hết hạn
  • Hỗ trợ 2FA cho bảo mật

Theo kinh nghiệm của mình, setup từ đầu đến khi chạy được chưa tới 10 phút nếu bạn đã quen Docker.

Cài đặt Uptime Kuma với Docker

Mình khuyến khích dùng Docker vì nó sạch sẽ, dễ backup, dễ migrate. Nếu VPS chưa có Docker, cài nhanh bằng lệnh:

bash:::curl -fsSL
https://get.docker.com
-o get-docker.sh sudo sh get-docker.sh

Tạo file docker-compose.yml:

YAML
1services:
2 uptime-kuma:
3 image: louislam/uptime-kuma:1
4 container_name: uptime-kuma
5 volumes:
6 - ./uptime-kuma-data:/app/data
7 ports:
8 - 3001:3001
9 restart: always

Chạy lên:

Terminal
1docker compose up -d

Truy cập http://<IP-VPS>:3001, tạo tài khoản admin, xong. Đơn giản vậy thôi.

A step-by-step installation flowchart showing Docker setup for Uptime Kuma: Install Docker arrow to Create docker-compose.yml arrow to Run docker compose up arrow to Access browser at port 3001 arrow to Create admin account, using modern flat icons with green checkmarks at each step, dark background with teal accent colors
A step-by-step installation flowchart showing Docker setup for Uptime Kuma: Install Docker arrow to Create docker-compose.yml arrow to Run docker compose up arrow to Access browser at port 3001 arrow to Create admin account, using modern flat icons with green checkmarks at each step, dark background with teal accent colors

Thiết lập Reverse Proxy

Chạy trên port 3001 thì hơi "trần trụi". Bạn sẽ muốn gắn domain và HTTPS cho nó. Có hai cách phổ biến:

  • Cloudflare Tunnel: Uptime Kuma tích hợp sẵn, vào Settings → Reverse Proxy là thấy
  • Nginx Proxy Manager (NPM): Mình thích cách này hơn vì đang dùng NPM cho các service khác trên cùng VPS

Nếu dùng NPM, bạn cần cho Uptime Kuma vào cùng Docker network với NPM. File docker-compose.yml sẽ cần chỉnh lại — bỏ phần ports và thêm networks. Mình sẽ show ở phần dưới.

Tạo monitor và cấu hình thông báo

Sau khi đăng nhập, bấm Add New Monitor. Với website thông thường, chọn HTTP(s), nhập URL, đặt tên, chọn chu kỳ kiểm tra. Mình thường để 60 giây — đủ nhanh mà không gây load thừa.

Một tip nhỏ: nhớ tick vào Certificate Expiry Notification để được cảnh báo khi SSL certificate sắp hết hạn. Mình từng quên renew cert và web bị Chrome chặn, mất traffic cả buổi sáng.

Thiết lập thông báo qua Discord

Mình chọn Discord vì team mình dùng Discord hàng ngày. Cách setup:

  1. Trong Discord: Server Settings → Integrations → Webhooks → New Webhook
  2. Đặt tên, chọn channel, copy Webhook URL
  3. Trong Uptime Kuma: bấm Setup Notification, chọn Discord, paste URL vào

Khi website down, bạn sẽ nhận được thông báo tức thì trong channel Discord. Khi website up lại, cũng có thông báo. Rất tiện để cả team cùng thấy.

A modern Discord notification mockup showing Uptime Kuma bot alerts: one red alert message saying website is DOWN with timestamp and response details, and one green recovery message saying website is UP again, displayed in a dark Discord-style chat interface
A modern Discord notification mockup showing Uptime Kuma bot alerts: one red alert message saying website is DOWN with timestamp and response details, and one green recovery message saying website is UP again, displayed in a dark Discord-style chat interface

Bonus: Giám sát Docker Container

Đây là tính năng mình rất thích. Ngoài monitor website, Uptime Kuma còn theo dõi được các Docker container đang chạy trên cùng máy chủ.

Để bật tính năng này, thêm Docker socket vào file docker-compose.yml:

YAML
1services:
2 uptime-kuma:
3 image: louislam/uptime-kuma:latest
4 container_name: uptime-kuma
5 volumes:
6 - ./uptime-kuma-data:/app/data
7 - /var/run/docker.sock:/var/run/docker.sock
8 restart: always
9 networks:
10 default:
11 name: ovh
12 external: true

Sau đó vào Settings → Docker Host → Setup Docker Host để kết nối. Khi tạo monitor mới, chọn Monitor Type: Docker Container và nhập tên hoặc ID container (chạy docker ps để xem).

Theo kinh nghiệm của mình, tính năng này cực kỳ hữu ích khi bạn chạy nhiều service trên cùng VPS. Container nào crash là biết ngay, không cần SSH vào check thủ công.

A technical diagram showing Uptime Kuma monitoring architecture: central Uptime Kuma container connected via Docker socket to other containers like Nginx, PostgreSQL, Redis, and also connected via HTTP to external websites, with notification arrows going to Discord, Telegram, and Email icons, clean flat design with dark background
A technical diagram showing Uptime Kuma monitoring architecture: central Uptime Kuma container connected via Docker socket to other containers like Nginx, PostgreSQL, Redis, and also connected via HTTP to external websites, with notification arrows going to Discord, Telegram, and Email icons, clean flat design with dark background

Tạo Status Page công khai

Uptime Kuma cho phép tạo Status Page — trang hiển thị trạng thái các dịch vụ của bạn, giống như status.github.com. Bạn có thể gắn custom domain cho nó, rất chuyên nghiệp nếu bạn cung cấp dịch vụ cho khách hàng.

Những điều cần lưu ý

Sau hơn 1 năm sử dụng Uptime Kuma, mình rút ra vài điểm:

  • Đặt Uptime Kuma trên VPS khác với VPS chạy website chính. Nếu cùng VPS mà VPS chết thì monitoring cũng chết theo — vô nghĩa.
  • VPS giá rẻ là đủ. Mình dùng VPS OVH giá $11.64/năm, chạy mượt mà. Uptime Kuma rất nhẹ.
  • Backup định kỳ thư mục uptime-kuma-data. Toàn bộ cấu hình và lịch sử nằm trong đó.
  • Không mount Docker socket nếu không cần. Đó là quyền truy cập nhạy cảm, chỉ bật khi thực sự cần monitor Docker container.
A minimal server rack illustration showing two separate VPS boxes: one labeled Production running website services, another labeled Monitoring running Uptime Kuma, with a dotted arrow from monitoring VPS checking the production VPS, clean isometric 3D style with dark background
A minimal server rack illustration showing two separate VPS boxes: one labeled Production running website services, another labeled Monitoring running Uptime Kuma, with a dotted arrow from monitoring VPS checking the production VPS, clean isometric 3D style with dark background

Vài lời cuối

Uptime Kuma là một trong những công cụ self-hosted mà mình recommend cho bất kỳ ai quản lý website hay server. Miễn phí, mã nguồn mở, cài đặt đơn giản, giao diện đẹp, và quan trọng nhất — bạn kiểm soát hoàn toàn data của mình.

Nếu bạn đang dùng UptimeRobot free và thấy 50 monitor không đủ, hoặc đơn giản là muốn check mỗi 20 giây thay vì 5 phút, thì Uptime Kuma là lựa chọn không cần suy nghĩ. Cứ bỏ ra 10 phút setup, bạn sẽ thấy nó đáng từng giây.

NN

Nguyen Nhat Long

@longnn

Thấy hay? Chia sẻ cho bạn bè!

Bài viết liên quan

Có thể bạn cũng thích

Xem tất cả