Language: th
Uptime Kuma: ตั้งค่าระบบตรวจสอบเว็บไซต์ของคุณเองบน VPS
เว็บไซต์อาจเสียขณะยังคงตอบกลับ 200 OK ได้ แบ็กอัปอาจหยุดทำงานโดยไม่แสดงข้อผิดพลาดที่ชัดเจน Uptime Kuma ตรวจจับได้ทั้งสองกรณี: ตรวจสอบเว็บไซต์ API พอร์ต และงานเบื้องหลัง จากนั้นส่งการแจ้งเตือนเมื่อเกิดปัญหา
บทความนี้ครอบคลุมว่าควรโฮสต์ระบบตรวจสอบที่ใด ต้องใช้ VPS แบบใด วิธีติดตั้ง Uptime Kuma 2 เปิดใช้ HTTPS เชื่อมต่อ Telegram และสร้าง status page
Uptime Kuma ในเจ็ดขั้นตอน
- จัดสรร VPS ขนาดเล็กแยกจากโครงการที่ต้องตรวจสอบ
- ชี้ซับโดเมน เช่น
monitor.example.comไปยัง VPS - ติดตั้ง Docker และเริ่ม Uptime Kuma 2
- ปิดพอร์ตภายใน
3001และเปิดใช้ HTTPS - สร้างมอนิเตอร์แบบ HTTP, DNS, TCP หรือ push
- ตั้งค่า Telegram และสร้าง status page เมื่อจำเป็น
- ตั้งค่าการอัปเดตและแบ็กอัปภายนอกของไดเรกทอรีข้อมูล
Uptime Kuma คืออะไร
Uptime Kuma คือเครื่องมือแบบฟรี โอเพนซอร์ส และโฮสต์เอง แดชบอร์ดกับประวัติการตรวจสอบจะเก็บอยู่บนเซิร์ฟเวอร์ของคุณเอง
ระบบตรวจสอบ HTTP(S), พอร์ต TCP, ping, DNS, WebSocket ข้อความและ JSON ในการตอบกลับ สัญญาณ push และคอนเทนเนอร์ Docker ได้ ช่วงเวลาตรวจสอบต่ำสุดคือ 20 วินาที นอกจากนี้ยังมีช่องทางการแจ้งเตือนหลายสิบแบบ 2FA กราฟ latency การตรวจสอบใบรับรอง TLS และ status page หลายหน้า
ตรวจจับความล้มเหลวที่ซ่อนอยู่หลัง 200 OK อย่างไร
การตรวจสอบ HTTP พื้นฐานมองเห็นเพียงรหัสตอบกลับ แต่เว็บเซิร์ฟเวอร์อาจแสดงหน้าเปล่าหรือหน้าข้อผิดพลาดของแอปพลิเคชันพร้อมตอบกลับด้วยสถานะสำเร็จได้
เพื่อให้ตรวจสอบได้แม่นยำขึ้น ให้ใช้:
- Keyword — ค้นหาวลีที่ควรมี เช่น ชื่อเว็บไซต์หรือข้อความ “Account dashboard”
- JSON Query — ตรวจสอบค่าในคำตอบ API เช่น
status: healthy
วิธีนี้ทำให้มอนิเตอร์ยืนยันได้ไม่เพียงว่าพอร์ตเข้าถึงได้ แต่ยังยืนยันว่าแอปพลิเคชันแสดงสัญญาณอย่างน้อยหนึ่งอย่างว่าทำงานถูกต้อง
Push monitor สำหรับแบ็กอัปและงาน cron
Push monitor จะไม่สอบถามบริการเป็นระยะ แต่รอสัญญาณตามกำหนดจากบริการนั้น สคริปต์แบ็กอัปหรืองาน cron จะเรียก URL เฉพาะหลังทำงานสำเร็จ หากสัญญาณไม่มาถึงตามเวลา Uptime Kuma จะแจ้งว่าล้มเหลว
สิ่งนี้ช่วยตรวจพบปัญหาแบบ “เงียบ”: เว็บไซต์ยังทำงานอยู่ แต่ไม่ได้สร้างแบ็กอัปรายวันมาหลายวันแล้ว
Uptime Kuma ไม่ได้แทนที่อะไร
Uptime Kuma ติดตามความพร้อมใช้งานและเวลาตอบสนองเป็นหลัก สำหรับ CPU, RAM, ดิสก์ ล็อก และเมตริกของคอนเทนเนอร์ ให้ใช้ร่วมกับ Prometheus, Netdata, Zabbix หรือระบบตรวจสอบอื่น: Kuma เห็นปัญหาจากภายนอก ขณะที่เมตริกช่วยระบุสาเหตุ
ทำไมระบบตรวจสอบควรทำงานบน VPS แยกต่างหาก
หากติดตั้ง Uptime Kuma ไว้ข้างเว็บไซต์ ความล้มเหลวของ VPS เครือข่าย หรือศูนย์ข้อมูลอาจทำให้ทั้งโครงการและระบบตรวจสอบล่มพร้อมกัน การแจ้งเตือนอาจไม่ถูกส่งออกไป
โฮสต์แดชบอร์ดบน VPS แยกต่างหาก และสำหรับโครงการสำคัญควรอยู่คนละสถานที่หรือคนละผู้ให้บริการ นอกจากนี้ควรใช้บริการภายนอกตรวจสอบ Kuma เองด้วย เพราะระบบตรวจสอบก็ต้องมีคนคอยดูเช่นกัน
ความต้องการของเซิร์ฟเวอร์ Uptime Kuma
โครงการไม่ได้กำหนดขั้นต่ำอย่างเป็นทางการที่ตายตัวสำหรับ CPU และ RAM การกำหนดค่าเริ่มต้นที่เหมาะสมสำหรับการติดตั้งขนาดเล็กคือ:
- 1 vCPU
- RAM 1 GB
- SSD 10 GB
- Ubuntu 24.04 LTS
- IPv4
- โดเมนหรือซับโดเมนสำหรับ HTTPS
การกำหนดค่านี้มักเพียงพอสำหรับการตรวจสอบแบบง่ายหลายสิบรายการ หากมีมอนิเตอร์หลายร้อยรายการ เก็บประวัติไว้นาน หรือตรวจสอบผ่านเบราว์เซอร์ ให้เลือก RAM 2 GB ขึ้นไป
วิธีติดตั้ง Uptime Kuma บน VPS
ตัวอย่างนี้ใช้ Ubuntu 24.04 และซับโดเมน monitor.example.com
1. ตั้งค่า DNS และไฟร์วอลล์
สร้างระเบียน DNS A ให้ชี้ไปยังที่อยู่ IPv4 ของ VPS เชื่อมต่อผ่าน SSH แล้วเปิดพอร์ตที่จำเป็น:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enableอย่าปิดเซสชัน SSH ปัจจุบันจนกว่าจะทดสอบการเชื่อมต่อใหม่แล้ว
2. ติดตั้ง Docker และ Docker Compose
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. เริ่ม Uptime Kuma 2
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
cat > compose.yaml <<'EOF'
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
EOF
docker compose up -d
docker compose psใช้แท็ก :2: latest ยังคงชี้ไปยังสาขา v1 ที่ล้าสมัย ไดเรกทอรี /app/data ต้องเก็บไว้บนดิสก์ในเครื่องหรือ Docker volume ปกติ NFS และระบบจัดเก็บข้อมูลที่ไม่มี file locking ที่ถูกต้องอาจทำให้ฐานข้อมูลเสียหาย
พอร์ต 3001 เข้าถึงได้เฉพาะบน 127.0.0.1 reverse proxy พร้อม HTTPS จะเผยแพร่แดชบอร์ดออกสู่ภายนอก
4. เปิดใช้ HTTPS ด้วย Caddy
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
monitor.example.com {
reverse_proxy 127.0.0.1:3001
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyหาก DNS ชี้ไปยัง VPS แล้ว Caddy จะขอใบรับรอง TLS และทำ reverse proxy สำหรับการเชื่อมต่อ WebSocket โดยอัตโนมัติ โฮสต์แดชบอร์ดที่รากของโดเมนหรือซับโดเมน: ไม่รองรับที่อยู่แบบ example.com/kuma
5. สร้างบัญชีผู้ดูแล
เปิด https://monitor.example.com สร้างบัญชีด้วยรหัสผ่านที่ยาวและไม่ซ้ำกัน แล้วเปิดใช้การยืนยันตัวตนแบบสองขั้นตอน
วิธีเพิ่มมอนิเตอร์แรก
คลิก Add New Monitor แล้วเลือก HTTP(s):
- กรอกชื่อและ URL แบบเต็ม
- ตั้งช่วงเวลา เช่น 60 วินาที
- เพิ่มการลองใหม่สองครั้งเพื่อรองรับความล้มเหลวของเครือข่ายเป็นครั้งคราว
- เลือกช่องทางการแจ้งเตือน
- บันทึกมอนิเตอร์และยืนยันว่าเริ่มเห็นการตรวจสอบที่สำเร็จ
สำหรับเว็บไซต์หลัก การตรวจสอบ HTTP และ Keyword มีประโยชน์ สำหรับ API ให้ใช้ health endpoint และ JSON Query อย่าเปิดฐานข้อมูลหรือพอร์ตผู้ดูแลสู่สาธารณะเพียงเพื่อการตรวจสอบ ให้ใช้เครือข่ายที่เชื่อถือได้หรือ VPN
ตัวอย่าง Push monitor สำหรับแบ็กอัป
หลังสร้างมอนิเตอร์แบบ Push ให้เพิ่ม URL เฉพาะของมอนิเตอร์ไว้ท้ายสคริปต์:
backup-command && \
curl -fsS "https://monitor.example.com/api/push/SECRET_TOKEN?status=up&msg=backup-ok"คำขอจะทำงานหลังแบ็กอัปสำเร็จเท่านั้น ปฏิบัติต่อ push token เหมือนรหัสผ่าน: ใครก็ตามที่รู้ URL สามารถส่งสัญญาณเท็จได้
วิธีเชื่อมต่อ Telegram
สร้างบอตผ่าน @BotFather ส่งข้อความให้บอต แล้วเปิด Settings → Notifications → Telegram กรอก Bot Token และ Chat ID คลิก Test และกำหนดช่องทางให้มอนิเตอร์ สำหรับบริการสำคัญให้เพิ่มช่องทางที่สอง เช่น อีเมล
วิธีสร้าง status page
ใน Status Pages คุณจัดกลุ่มมอนิเตอร์ แสดงสถานะปัจจุบันกับประวัติ uptime กำหนดโดเมน และแจ้งงานตามแผนผ่าน Maintenance ได้ อย่าเผยแพร่ที่อยู่ IP ภายในหรือ URL ทางเทคนิค ลูกค้าต้องการเห็นเพียงองค์ประกอบ เช่น “Website,” “API,” “Account dashboard” และ “Payments”
การอัปเดตและการสำรองข้อมูล Uptime Kuma
ก่อนอัปเดตครั้งใหญ่ ให้หยุดคอนเทนเนอร์และบันทึกไดเรกทอรีข้อมูล:
cd /opt/uptime-kuma
docker compose down
tar -czf /root/uptime-kuma-$(date +%F).tar.gz \
data compose.yaml
docker compose up -dย้ายไฟล์เก็บถาวรไปยังอุปกรณ์อื่นหรือพื้นที่จัดเก็บภายนอก สำเนาที่อยู่บน VPS เดียวกันไม่ช่วยป้องกันการลบเซิร์ฟเวอร์หรือดิสก์เสียหาย
สำหรับการอัปเดตตามปกติ:
cd /opt/uptime-kuma
docker compose pull
docker compose up -d --force-recreateหลังเริ่มระบบ ให้ตรวจสอบ docker compose ps เปิดแดชบอร์ด และส่งการแจ้งเตือนทดสอบ
ควรเลือก VPS แบบใดสำหรับ Uptime Kuma
การติดตั้งขนาดเล็กต้องการเพียง Linux VPS ที่มี 1 vCPU และ RAM 1 GB ความเป็นอิสระสำคัญกว่าประสิทธิภาพดิบ: มอนิเตอร์ต้องทำงานต่อเมื่อโครงการหลักใช้งานไม่ได้
คุณสามารถโฮสต์ Uptime Kuma บน VPS จาก tropic.host เมื่อบริการที่ตรวจสอบทำงานอยู่บนแพลตฟอร์มหรือโหนดอิสระอื่น Ubuntu, Docker และ IP แบบคงที่ทำให้เปิดแดชบอร์ดได้รวดเร็ว และเพิ่มทรัพยากรได้เมื่อจำนวนการตรวจสอบเพิ่มขึ้น
หากระบบ production อยู่ในโครงสร้างพื้นฐานเดียวกันอยู่แล้ว ให้เลือกโหนดอื่นหรือเพิ่มมอนิเตอร์แบ็กอัปภายนอก การแยก failure domain มีประโยชน์กว่าการเพิ่ม CPU อีกหนึ่งคอร์
ข้อผิดพลาดที่พบบ่อย
| ข้อผิดพลาด | เหตุใดจึงเป็นปัญหา | วิธีที่ดีกว่า |
|---|---|---|
| ระบบตรวจสอบทำงานข้างโครงการ | เหตุขัดข้องร่วมกันทำให้ทั้งบริการและการแจ้งเตือนล่ม | ใช้ VPS หรือสถานที่แยกต่างหาก |
เปิดพอร์ต 3001 ต่อสาธารณะ | เข้าถึงแดชบอร์ดได้โดยไม่มี reverse proxy หรือ HTTPS | ผูกพอร์ตกับ 127.0.0.1 |
ตรวจสอบเฉพาะรหัสสถานะ 200 | ข้อผิดพลาดของแอปพลิเคชันอาจดูเหมือนสำเร็จ | เพิ่ม Keyword หรือ JSON Query |
ใช้แท็ก latest | ชี้ไปยังสาขา v1 ที่ล้าสมัย | ใช้ louislam/uptime-kuma:2 |
| เก็บแบ็กอัปไว้บน VPS เดียวกัน | แบ็กอัปจะหายไปพร้อมเซิร์ฟเวอร์ | คัดลอกไดเรกทอรี data ไปที่อื่น |
สรุป
Uptime Kuma เปลี่ยน VPS ขนาดเล็กให้เป็นศูนย์ตรวจสอบเว็บไซต์ API DNS พอร์ต ใบรับรอง และงานเบื้องหลังของคุณเอง Keyword ช่วยตรวจจับหน้าที่เสีย JSON Query ตรวจพบคำตอบ API ที่ไม่ถูกต้อง และ Push เผยให้เห็นแบ็กอัปหรืองาน cron ที่หยุดทำงาน
สำหรับการตั้งค่าที่เชื่อถือได้ ให้โฮสต์ระบบตรวจสอบแยกจาก production ปิดพอร์ต 3001 เปิดใช้ HTTPS และ 2FA และตั้งค่าช่องทางการแจ้งเตือนสองช่องทาง จากนั้นทำแบ็กอัปภายนอกของไดเรกทอรีข้อมูลและตั้งค่าการตรวจสอบ Uptime Kuma จากภายนอกอีกชั้น
FAQ
Uptime Kuma ใช้งานฟรีหรือไม่
ใช่ โครงการเป็นโอเพนซอร์สและเผยแพร่ภายใต้ใบอนุญาต MIT คุณจ่ายเฉพาะค่าโครงสร้างพื้นฐาน โดเมน และแบ็กอัปภายนอก
Uptime Kuma ต้องใช้ RAM เท่าไร
สำหรับการติดตั้งขนาดเล็ก RAM 1 GB เป็นจุดเริ่มต้นที่เหมาะสม หากมีการตรวจสอบหลายร้อยรายการ เก็บประวัติไว้นาน หรือใช้ Browser Engine ให้จัดสรร RAM 2 GB ขึ้นไป
ติดตั้ง Uptime Kuma โดยไม่ใช้ Docker ได้หรือไม่
ได้ โดยใช้ Node.js และ PM2 อย่างไรก็ตาม Docker Compose มักอัปเดต ย้าย และกู้คืนบน VPS ได้ง่ายกว่า
ใช้ Uptime Kuma โดยไม่มีโดเมนได้หรือไม่
ในทางเทคนิคได้ ผ่านที่อยู่ IP หรือ SSH tunnel แต่สำหรับการเข้าถึงอินเทอร์เน็ตถาวร ซับโดเมนพร้อม HTTPS ปลอดภัยกว่า
Uptime Kuma แสดงการใช้ CPU, RAM และดิสก์หรือไม่
ไม่ได้ในฐานะระบบเมตริกเซิร์ฟเวอร์แบบเต็มรูปแบบ สำหรับตรวจสอบทรัพยากรเซิร์ฟเวอร์ ให้ใช้ร่วมกับ Prometheus, Netdata, Zabbix หรือเครื่องมือเฉพาะทางอื่น
