SELF HOSTING

Hướng dẫn self-hosted UptimeKit: Công cụ giám sát uptime miễn phí

UptimeKit là một công cụ giám sát uptime mã nguồn mở được phát triển bởi cộng đồng và lưu trữ trên GitHub. Nó cho phép bạn theo dõi tình trạng hoạt động của các trang web, API và dịch vụ trực tuyến một cách tự động và liên tục. Thay vì sử dụng các dịch vụ theo dõi thương mại đắt đỏ như Pingdom hay StatusCake, UptimeKit cung cấp giải pháp miễn phí, dễ triển khai và hoàn toàn có thể kiểm soát.

Bản chất của UptimeKit là một dashboard (bảng điều khiển) đơn giản nhưng hiệu quả, giúp bạn:

  • Theo dõi trạng thái real-time của các endpoint (điểm cuối dịch vụ)
  • Nhận thông báo khi có downtime
  • Lưu giữ lịch sử uptime/downtime chi tiết
  • Xuất dữ liệu để phân tích

Lợi ích chính của UptimeKit

Khi chọn UptimeKit, bạn sẽ hưởng lợi từ những ưu điểm sau:

  • Miễn phí và mã nguồn mở – Không cần trả phí đăng ký hàng tháng, kiểm soát toàn bộ mã nguồn và có thể tự cải thiện theo nhu cầu
  • Dễ triển khai – Chỉ cần cài đặt Node.js, clone repo từ GitHub và bạn đã sẵn sàng sử dụng
  • Tích hợp nhanh chóng – Dễ dàng kết nối với GitHub Actions, Discord, Slack, email hoặc các dịch vụ thông báo khác
  • Độc lập và an toàn – Bạn sở hữu toàn bộ dữ liệu, không phụ thuộc vào dịch vụ bên thứ ba
  • Linh hoạt – Có thể chạy trên máy tính cá nhân (localhost), server riêng hoặc các nền tảng cloud khác nhau

Yêu cầu hệ thống

Trước khi cài đặt UptimeKit, hãy kiểm tra những yêu cầu sau:

Yêu cầuPhiên bảnGhi chú
Node.js>= 16.xCần cài đặt từ nodejs.org
npm>= 8.xĐi kèm với Node.js
GitPhiên bản gần đâyĐể clone repository
RAM>= 512 MBĐủ cho chạy local, 1GB+ nếu production
Hệ điều hànhWindows, macOS, LinuxHỗ trợ đa nền tảng

Hướng dẫn cài đặt chi tiết

Bước 1: Kiểm tra và cài đặt Node.js

Đầu tiên, mở terminal (hoặc Command Prompt trên Windows) và kiểm tra phiên bản Node.js:

node --version
npm --version

Nếu chưa cài đặt, hãy tải từ nodejs.org và chọn phiên bản LTS (Long Term Support).

Bước 2: Clone Repository UptimeKit

Tạo một thư mục cho dự án và clone repo UptimeKit từ GitHub:

mkdir ~/uptimekit-project
cd ~/uptimekit-project
git clone https://github.com/abhixdd/UptimeKit.git
cd UptimeKit

Bước 3: Cài đặt Dependencies

Cài đặt tất cả các thư viện phụ thuộc bằng npm:

npm install

Lưu ý: Nếu gặp lỗi khi chạy npm install, hãy thử các cách khắc phục:

  • Xóa node_modulespackage-lock.json, rồi cài lại: rm -rf node_modules package-lock.json && npm install
  • Cập nhật npm: npm install -g npm@latest
  • Thử sử dụng npm registry khác nếu mạng chậm

Bước 4: Cấu hình ban đầu

Tạo một file .env trong thư mục UptimeKit để cấu hình các biến môi trường:

nano .env

Thêm các thông tin cơ bản:

PORT=3000
NODE_ENV=development
DATABASE_URL=./data/uptimekit.db
NOTIFICATION_ENABLED=true

Cấu hình và sử dụng

Chạy UptimeKit ở chế độ Development

Khởi động UptimeKit trên máy local để thử nghiệm:

npm run dev

Hoặc nếu không có script dev, hãy chạy trực tiếp:

npm start

Sau đó, mở trình duyệt và truy cập:

http://localhost:3000

Thêm các endpoint cần giám sát

Trong giao diện dashboard của UptimeKit, hãy:

  1. Nhấp vào “Add Monitor” hoặc “Thêm giám sát”
  2. Nhập thông tin:
    • URL/Endpoint: URL của website hoặc API cần theo dõi (ví dụ: https://example.com)
    • Tên giám sát: Tên dễ nhớ (ví dụ: “My Blog API”)
    • Khoảng thời gian check: Bao lâu kiểm tra một lần (ví dụ: 5 phút)
    • Timeout: Thời gian chờ tối đa (ví dụ: 10 giây)
  3. Nhấp Save để lưu cấu hình

Cấu hình thông báo

Để nhận được cảnh báo khi có downtime, cấu hình kênh thông báo:

Thông báo qua Email:

SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
[email protected]
SMTP_PASSWORD=your-app-password
[email protected]

Thông báo qua Discord (Webhook):

DISCORD_WEBHOOK_URL=https://discordapp.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN

Thông báo qua Slack:

SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK

Deployment lên Server

Deployment với GitHub Actions

Tạo file .github/workflows/monitor.yml để chạy UptimeKit tự động:

name: UptimeKit Monitor

on:
  schedule:
    - cron: '*/5 * * * *'  # Chạy mỗi 5 phút
  workflow_dispatch:

jobs:
  monitor:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '18'
      
      - name: Install dependencies
        run: npm install
      
      - name: Run UptimeKit monitoring
        run: npm start
        env:
          PORT: 3000
          NODE_ENV: production

Deployment trên VPS hoặc Server cá nhân

1. Kết nối SSH vào server:

ssh user@your-server-ip

2. Cài đặt Node.js (nếu chưa có):

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

3. Clone UptimeKit:

cd /opt
sudo git clone https://github.com/abhixdd/UptimeKit.git
cd UptimeKit
npm install

4. Tạo service systemd để chạy UptimeKit tự động:

Tạo file /etc/systemd/system/uptimekit.service:

[Unit]
Description=UptimeKit Monitoring Service
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/UptimeKit
ExecStart=/usr/bin/npm start
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Bật service:

sudo systemctl enable uptimekit
sudo systemctl start uptimekit

UptimeKit là lựa chọn tuyệt vời cho những ai muốn có một công cụ giám sát uptime đơn giản, mạnh mẽ và hoàn toàn miễn phí. Với cài đặt dễ dàng, hỗ trợ thông báo đa kênh, và khả năng triển khai linh hoạt, bạn có thể nhanh chóng thiết lập một hệ thống giám sát chuyên nghiệp mà không cần tốn chi phí.

Hãy thử UptimeKit ngay hôm nay, khám phá các tính năng nâng cao, và đừng quên đóng góp lại cho dự án trên GitHub nếu bạn tìm thấy nó hữu ích. Cộng đồng mã nguồn mở luôn chào đón những đóng góp từ các nhà phát triển!

Tài liệu tham khảo:

Duy Nghiện
Hãy làm khán giả, đừng làm nhân vật chính :)

You may also like

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