Uptime Kuma – Công cụ theo dõi website
Uptime Kuma là một công cụ giám sát thời gian hoạt động (uptime) mã nguồn mở, dễ sử dụng và có giao diện người dùng thân thiện. Nó cho phép bạn theo dõi các trang web, API và các dịch vụ khác, đồng thời cung cấp thông báo khi có sự cố xảy ra. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt Uptime Kuma trên Ubuntu sử dụng Docker Compose, giúp bạn dễ dàng triển khai và quản lý ứng dụng này.
Các tính năng của Uptime Kuma bao gồm:
- Theo dõi tình trạng hoạt động (uptime) cho các dịch vụ HTTP(s) / TCP / HTTP(s) Keyword / Ping / DNS Record / Push / Steam Game Server / Docker Containers.
- Giao diện trực quan, tải nhanh.
- Thông báo qua Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), và hơn 90 dịch vụ khác.
- Có thể kiểm tra theo chu kỳ 20 giây
- Đa ngôn ngữ
- Tạo nhiều trang theo dõi Status Page
- Sử dụng tên miền cho Status Page.
- Biểu đồ Ping
- Thông tin chứng chỉ SSL
- Hỗ trợ Proxy
- Hỗ trợ 2FA
Yêu cầu
- Hệ điều hành: Ubuntu 20.04 LTS hoặc mới hơn
- RAM: Tối thiểu 1GB (khuyến nghị 2GB trở lên)
- CPU: 1 core trở lên
- Dung lượng ổ cứng: Tối thiểu 10GB trống
- Docker
- Docker Compose
Cài đặt Docker (nếu chưa có)
Nếu bạn đã cài đặt Docker trên hệ thống Ubuntu của mình, bạn có thể bỏ qua phần này. Nếu chưa, hãy làm theo các bước sau để cài đặt Docker
Cài đặt Docker trên Ubuntu
1. Thêm GPG key của Docker:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
2. Thêm repository Docker:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
3. Cập nhật lại danh sách gói và cài đặt Docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin
4. Kiểm tra cài đặt Docker bằng lệnh sau:
sudo docker run hello-world
Cài đặt Docker Compose:
1. Tải Docker Compose:
curl -SL https://github.com/docker/compose/releases/download/v2.29.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
2. Cấp quyền thực thi:
sudo chmod +x /usr/local/bin/docker-compose
3. Kiểm tra cài đặt bằng lệnh sau:
docker-compose --version
Cấu hình người dùng:
Để tránh phải sử dụng sudo
mỗi khi chạy lệnh Docker, thêm người dùng hiện tại vào nhóm docker:
sudo usermod -aG docker ${USER}
Sau đó, đăng xuất và đăng nhập lại để áp dụng thay đổi.
Sau khi hoàn thành các bước trên, môi trường của bạn đã sẵn sàng để cài đặt Uptime Kuma bằng Docker.
Cài đặt Uptime Kuma
1. Tạo một thư mục mới cho Uptime Kuma:
mkdir ~/uptime-kuma
cd ~/uptime-kuma
2. Tạo file docker-compose.yml
:
nano docker-compose.yml
Thêm nội dung sau vào file:
version: '3.3'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
volumes:
- ./data:/app/data
ports:
- "3001:3001"
restart: always
Lưu file và thoát (Ctrl + X, sau đó nhấn Y và Enter).
3. Chạy Uptime Kuma bằng Docker Compose:
docker-compose up -d
Kiểm tra trạng thái container:
docker-compose ps
4. Mở trình duyệt web và truy cập địa chỉ:
http://your_server_ip:3001
Thay your_server_ip
bằng địa chỉ IP của máy chủ Ubuntu của bạn.
Bạn sẽ thấy trang thiết lập ban đầu của Uptime Kuma. Tạo tài khoản quản trị đầu tiên và đăng nhập vào hệ thống.
Tạo Reverse Proxy
Uptime Kuma được tích hợp sẵn tính năng kết nối với Cloudflare Tunnel để làm Reverse Proxy. Nếu muốn sử dụng, bạn cần truy cập vào mục Settings → Reverse Proxy để thiết lập. Xem thêm bài viết hướng dẫn sử dụng Cloudflare Tunnel ở đây.
Mình không dùng Cloudflare Tunnel mà chọn sử dụng Nginx Proxy Manager để làm Reverse Proxy. Bạn có thể xem lại bài viết dưới đây
Tạo kênh theo dõi mới
Sau khi đăng nhập vào Uptime Kuma, bạn sẽ nhìn thấy giao diện Dashboard. Bấm vào nút Add New Monitor để tạo mục theo dõi mới
Uptime Kuma cung cấp rất nhiều phương thức giám sát hoạt động: HTTP(s), TCP Port, Ping…. Để giám sát website, mình chọn HTTP(s)
Nhập thông tin Friendly Name (tên gọi), URL (địa chỉ web),… tương tự như dưới đây. Nếu không rành tiếng Anh, bạn nên truy cập vào trang Setting để đổi ngôn ngữ thành Tiếng Việt cho dễ sử dụng.
Bấm chọn thêm vào mục Certificate Expiry Notification để được thông báo khi chứng chỉ SSL sắp hết hạn. Bấm Save để lưu lại.
Sau khi tạo xong, các kênh theo dõi sẽ xuất hiện ở menu bên trái. Bạn có thể thêm nhiều kênh theo dõi khác tùy theo nhu cầu sử dụng.
Cài đặt thông báo
Để nhận được thông báo khi website gặp sự cố ngưng hoạt động, bấm vào nút Setup Notification trong khi thiết lập kênh theo dõi mới.
Uptime Kuma hỗ trợ gửi thông báo đến hơn 90 dịch vụ khác nhau. Mình chọn gửi thông báo qua Telegram, nhập vào Bot token và Chat ID, bấm Test rồi Save.
Giám sát dịch vụ Docker
Uptime Kuma còn có thể giám sát hoạt động của Docker trên cùng máy chủ. Mình cần phải chỉnh sửa lại file docker-compose.yml
để cấp quyền truy cập vào dịch vụ Docker cho Uptime Kuma.
Thêm vào dòng - /var/run/docker.sock:/var/run/docker.sock
trong mục volumes. Ngoài ra, do mình đã thiết lập Nginx Proxy Manager làm Reverse Proxy cho Uptime Kuma nên mình đã vô hiệu hóa phần ports và bổ sung thêm phần networks.
version: '3.3'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
#build: .
volumes:
- ./uptime-kuma-data:/app/data
- /var/run/docker.sock:/var/run/docker.sock
#ports:
# - 3001:3001 # <Host Port>:<Container Port>
restart: always
networks:
default:
name: ovh
external: true
version: '3.3'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
volumes:
- ./data:/app/data
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "3001:3001"
restart: always
networks:
default:
name: vnrom
external: true
Kích hoạt lại Uptime Kuma để áp dụng những thay đổi trên:
docker compose up -d
Truy cập vào Settings → Docker Host → Setup Docker Host, và thiết lập như hình bên dưới và bấm Save.
Sau đó, bạn có thể tạo kênh theo dõi mới:
- Monitor Type: chọn Docker Container
- Friendly Name: đặt tên
- Container Name / ID: cần nhập vào tên hoặc ID của container. Gõ lệnh
docker ps
để xem, hoặc sử dụng Portainer.
Tạo trang thông tin
Trang thông tin (Status Page) được dùng để hiển thị trạng thái hoạt động của tất cả website và dịch vụ đã thiết lập. Bạn có thể dễ dàng kiểm tra hoặc chia sẻ thông tin cho người khác để truy cập mà không cần phải đăng nhập vào Uptime Kuma.
Để tạo trang Status Page mới, bấm vào tab Status Page, sau đó bấm Add New Status Page. Nhập vào tên và đường dẫn cho Status Page, bấm Next
Bạn có thể tạo nhóm để phân chia các dịch vụ theo từng nhóm. Ngoài ra còn có thể nhập thêm thông tin chú thích (Description), thông tin cuối trang (Footer Text) và chỉnh sửa CSS trong mục Custom CSS. Bấm Save để lưu lại.
Sau khi hoàn thành, Status Page sẽ hiện ra như dưới đây.
Để chọn Status Page làm trang hiển thị mặc định khi truy cập vào tên miền (lúc chưa đăng nhập), vào Settings → General → Entry Page: chọn mục Status Page và bấm Save lưu lại.
Vậy là xong. Các bạn có thể truy cập trang demo Uptime Kuma của mình ở đây để xem: https://uptime.romhub.me
Bảo trì và cập nhật
Để đảm bảo Uptime Kuma hoạt động ổn định và an toàn, bạn nên thực hiện các bước bảo trì và cập nhật định kỳ:
Cập nhật Uptime Kuma
1. Di chuyển vào thư mục chứa file docker-compose.yml
:
cd ~/uptime-kuma
2. Kéo image mới nhất từ Docker Hub:
docker-compose pull
3. Khởi động lại container với image mới:
docker-compose up -d
Sao lưu dữ liệu
1. Tạm dừng container Uptime Kuma:
docker-compose down
2. Sao lưu thư mục data:
sudo cp -r data data_backup_$(date +%Y%m%d)
3. Khởi động lại container:
docker-compose up -d
Khôi phục dữ liệu
Nếu cần khôi phục dữ liệu từ bản sao lưu:
1. Dừng container Uptime Kuma:
docker-compose down
2. Xóa thư mục data hiện tại:
rm -rf data
3. Sao chép dữ liệu từ bản sao lưu:
cp -r data_backup_YYYYMMDD data
4. Khởi động lại container:
docker-compose up -d
Kiểm tra logs
Để xem logs của Uptime Kuma:
docker-compose logs -f uptime-kuma
Bằng cách thực hiện các bước bảo trì và cập nhật này định kỳ, bạn có thể đảm bảo Uptime Kuma luôn hoạt động ổn định và an toàn trên hệ thống của mình.
Tham khảo: thuanbui