SELF HOSTING

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 YEnter).

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.

Screenshot

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 tokenChat 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 SettingsDocker HostSetup 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 SettingsGeneralEntry 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

Có thể bạn chưa biết

Nhận thông báo qua email
Nhận thông báo cho
guest

0 Bình luận
Mới nhất
Cũ nhất Nhiều like nhất
Phản hồi nội tuyến
Xem tất cả bình luận