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ầu | Phiên bản | Ghi chú |
|---|---|---|
| Node.js | >= 16.x | Cần cài đặt từ nodejs.org |
| npm | >= 8.x | Đi kèm với Node.js |
| Git | Phiên bản gần đây | Để clone repository |
| RAM | >= 512 MB | Đủ cho chạy local, 1GB+ nếu production |
| Hệ điều hành | Windows, macOS, Linux | Hỗ 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 --versionNế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 UptimeKitBước 3: Cài đặt Dependencies
Cài đặt tất cả các thư viện phụ thuộc bằng npm:
npm installLư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_modulesvàpackage-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 .envThêm các thông tin cơ bản:
PORT=3000
NODE_ENV=development
DATABASE_URL=./data/uptimekit.db
NOTIFICATION_ENABLED=trueCấ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 devHoặc nếu không có script dev, hãy chạy trực tiếp:
npm startSau đó, mở trình duyệt và truy cập:
http://localhost:3000Thêm các endpoint cần giám sát
Trong giao diện dashboard của UptimeKit, hãy:
- Nhấp vào “Add Monitor” hoặc “Thêm giám sát”
- 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)
- URL/Endpoint: URL của website hoặc API cần theo dõi (ví dụ:
- 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_TOKENThông báo qua Slack:
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOKDeployment 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: productionDeployment trên VPS hoặc Server cá nhân
1. Kết nối SSH vào server:
ssh user@your-server-ip2. 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 nodejs3. Clone UptimeKit:
cd /opt
sudo git clone https://github.com/abhixdd/UptimeKit.git
cd UptimeKit
npm install4. 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.targetBật service:
sudo systemctl enable uptimekit
sudo systemctl start uptimekitUptimeKit 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:
- Repository GitHub: https://github.com/abhixdd/UptimeKit
- Tài liệu Node.js: https://nodejs.org/docs
- Hướng dẫn npm: https://docs.npmjs.com








