บอกลาบริการล่มโดยไม่รู้ตัว: คู่มือติดตั้ง Uptime Kuma ระบบมอนิเตอร์สถานะ Home Server ด้วย Docker
เปลี่ยน Home Server ให้มีระบบแจ้งเตือนอัจฉริยะแบบเรียลไทม์ เรียนรู้วิธีติดตั้ง Uptime Kuma ด้วย Docker เพื่อเฝ้าระวังบริการและอุปกรณ์ในบ้าน พร้อมส่งการแจ้งเตือนตรงเข้า Telegram เมื่อระบบมีปัญหา
ยิ่งคุณรันบริการ Self-hosting บน Home Server ของตัวเองมากเท่าไหร่ ไม่ว่าจะเป็น Nextcloud, Vaultwarden, AdGuard Home, Paperless-ngx หรือ Local AI สแต็กอย่าง Ollama คุณก็ยิ่งประสบปัญหาคลาสสิกอย่างหนึ่ง นั่นคือ "บริการแอบดับโดยที่เราไม่รู้ตัว"
หลายครั้งที่เราจะรู้ว่าบริการอย่างรหัสผ่านหรือไดรฟ์เก็บบันทึกข้อมูลล่ม ก็ต่อเมื่อเราจำเป็นต้องรีบเปิดใช้งานนอกบ้าน แล้วพบว่าหน้าเว็บขึ้น Error 502 หรือเชื่อมต่อไม่ได้ ส่งผลให้เสียทั้งเวลาและขัดจังหวะการทำงานในชีวิตประจำวัน
เพื่อเติมเต็มโครงสร้างพื้นฐานของ Private Brain OS ให้สมบูรณ์แบบและมีความเสถียรระดับมืออาชีพ เราจำเป็นต้องมีระบบเฝ้าระวัง (Monitoring System) ที่คอยตรวจเช็กสถานะการทำงานของบริการทั้งหมดตลอด 24 ชั่วโมง และซอฟต์แวร์ที่เป็นคำตอบอันดับหนึ่งในใจสาย Self-host ทั่วโลกคือ Uptime Kuma ครับ
Uptime Kuma คืออะไร?
Uptime Kuma คือซอฟต์แวร์โอเพนซอร์ส (Open-source) ประเภท Self-hosted Monitoring Tool ที่ออกแบบมาเพื่อตรวจสอบสถานะความพร้อมใช้งาน (Uptime & Availability) ของเว็บเซิร์ฟเวอร์, บริการบนพอร์ต TCP/UDP, การตอบสนองแบบ Ping ไปจนถึงสถานะของ Docker Container ในเครื่อง
จุดเด่นที่ทำให้ Uptime Kuma ได้รับความนิยมเหนือกว่าระบบมอนิเตอร์ดั้งเดิม: * หน้าตา UI สวยงามและทันสมัย: มีแดชบอร์ดที่ใช้งานง่าย แสดงกราฟ Latency (Response Time) และเปอร์เซ็นต์ Uptime ชัดเจน * รองรับการตรวจเช็กหลากหลายรูปแบบ: ตรวจสอบได้ทั้ง HTTP(s), Ping, TCP Port, DNS Record, Docker Container Status, Push Monitor และอีกมากมาย * ระบบแจ้งเตือน (Notifications) ครอบคลุม: รองรับการส่งการแจ้งเตือนหาคุณทันทีผ่านช่องทางยอดนิยมมากกว่า 90 แบบ เช่น Telegram, Discord, LINE Notify, Slack, Webhook และ Ntfy * สร้างหน้า Status Page ได้ในตัว: สามารถจัดหมวดหมู่บริการแล้วสร้างหน้าเว็บแสดงสถานะระบบ (Status Page) ทั้งแบบสาธารณะหรือส่วนตัว เพื่อนำไปแปะไว้บน Homepage แดชบอร์ดของบ้านได้ทันที * น้ำหนักเบาและประหยัดทรัพยากร: เขียนด้วย Node.js + Vue.js รันผ่าน Docker ได้อย่างรวดเร็ว กินแรมเพียงเล็กน้อย
สิ่งที่ต้องเตรียมก่อนเริ่มติดตั้ง
- Home Server ที่ติดตั้ง Docker และ Docker Compose พร้อมใช้งาน
- การเชื่อมต่อผ่าน SSH เข้าสู่เซิร์ฟเวอร์
- บัญชี Telegram (สำหรับตั้งค่า Bot ส่งแจ้งเตือนเข้าสมาร์ทโฟนแบบเรียลไทม์)
ขั้นตอนที่ 1: เตรียมโฟลเดอร์และเขียนไฟล์ Docker Compose
เริ่มต้นด้วยการเปิด SSH เข้าสู่ Home Server แล้วสร้างโฟลเดอร์สำหรับจัดเก็บข้อมูลของ Uptime Kuma:
# สร้างโฟลเดอร์สำหรับโครงการ Uptime Kuma
mkdir -p ~/uptime-kuma/data
# เข้าไปยังโฟลเดอร์
cd ~/uptime-kuma
สร้างไฟล์ docker-compose.yml ด้วยคำสั่ง nano docker-compose.yml จากนั้นใส่คอนฟิกรอบด้านดังต่อไปนี้:
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001" # พอร์ตสำหรับเข้าใช้งาน Web UI
volumes:
- ./data:/app/data
- /var/run/docker.sock:/var/run/docker.sock # อนุญาตให้ตรวจสอบสถานะ Docker Container ในเครื่องได้โดยตรง
[!NOTE] การแมป /var/run/docker.sock เข้าไปในคอนเทนเนอร์ จะทำให้ Uptime Kuma สามารถดึงสถานะการทำงาน (Run/Stop/Restart) ของ Container ตัวอื่น ๆ บน Home Server ได้โดยตรง โดยไม่ต้องส่งคำขอ HTTP หรือ Pingขั้นตอนที่ 2: รันบริการและตั้งค่าผู้ดูแลระบบครั้งแรก
เมื่อเขียนไฟล์บันทึกเรียบร้อยแล้ว ให้สั่งรันคอนเทนเนอร์ขึ้นมาด้วยคำสั่ง:
docker compose up -d
รอประมาณ 10-15 วินาที แล้วเปิดเบราว์เซอร์บนคอมพิวเตอร์หรือสมาร์ทโฟนที่อยู่ในเครือข่ายเดียวกัน ไปที่ที่อยู่:
http://<IP-ของ-Home-Server>:3001
ในหน้าแรกที่ปรากฏขึ้น ระบบจะให้คุณตั้งค่า: 1. Language: เลือกภาษาที่ต้องการ (รองรับทั้งภาษาไทยและภาษาอังกฤษ) 2. Create Admin Account: กำหนดชื่อผู้ใช้ (Username) และรหัสผ่าน (Password) สำหรับเข้าจัดการระบบ
กด Create เพื่อเข้าสู่หน้าแดชบอร์ดหลักของ Uptime Kuma
ขั้นตอนที่ 3: เพิ่มการมอนิเตอร์บริการตัวแรก (Monitor Setup)
ทดลองเพิ่มการตรวจเช็กบริการภายใน Home Server ของคุณ เช่น ตัวจัดการรหัสผ่าน Vaultwarden หรือคลาวด์ Nextcloud:
- คลิกปุ่ม "Add New Monitor" (เพิ่มตัวเฝ้าระวังใหม่) ที่มุมซ้ายบน
- เลือก Monitor Type:
- สำหรับหน้าเว็บทั่วไป เลือก
HTTP(s) - สำหรับตรวจสอบ Docker Container เลือก
Docker Container - สำหรับตรวจสอบการเชื่อมต่อเน็ตเวิร์ก เลือก
PingหรือTCP Port - Friendly Name: ตั้งชื่อบริการให้จำง่าย เช่น
Vaultwarden Server - URL: ใส่ที่อยู่บริการ เช่น
http://192.168.1.100:8080หรือ domain name ของคุณ - Heartbeat Interval: กำหนดความถี่ในการตรวจเช็ก (ค่าเริ่มต้นคือทุกๆ
60วินาที) - Retries: จำนวนครั้งที่จะลองใหม่ก่อนแจ้งเตือนว่าระบบล่ม (แนะนำตั้งไว้ที่
2หรือ3เพื่อป้องกัน False Alarm จากเน็ตกระตุกชั่วคราว) - กด Save ที่ด้านล่างสุด
ระบบจะเริ่มทำการ Ping/Check ทันที และแสดงเส้นกราฟเวลาตอบสนอง (Response Time) เป็นสีเขียวสวยงาม
ขั้นตอนที่ 4: ตั้งค่าระบบแจ้งเตือนทันทีผ่าน Telegram
เพื่อให้คุณรู้ตัวทันทีเมื่อบริการล่ม การตั้งค่าแจ้งเตือนเข้า Telegram Bot เป็นวิธีที่สะดวกและฟรี 100%:
การสร้าง Telegram Bot:
- ค้นหาผู้ใช้
@BotFatherในแอปพลิเคชัน Telegram - พิมพ์คำสั่ง
/newbotแล้วตั้งชื่อ Bot ตามขั้นตอนที่ระบบแนะนำ - เมื่อสร้างเสร็จ คุณจะได้ HTTP API Token (คีย์ยาวๆ) ให้คัดลอกเก็บไว้
- ค้นหาบอตชื่อ
@userinfobotหรือดึง Telegram Chat ID ของคุณออกมา
การเชื่อมต่อใน Uptime Kuma:
- ในหน้า Uptime Kuma ไปที่เมนู Setup Notification -> Add Notification
- เลือก Notification Type:
Telegram - Friendly Name: ตั้งชื่อว่า
Telegram Alert - Bot Token: วาง API Token ที่ได้จาก BotFather
- Chat ID: ใส่รหัส Telegram Chat ID ของคุณ
- กดปุ่ม Test — หากตั้งค่าถูกต้อง แอป Telegram ในมือถือของคุณจะเด้งข้อความทดสอบทันที!
- เปิดสวิตช์ Default Enabled เพื่อให้ทุก Monitor ใช้การแจ้งเตือนช่องทางนี้อัตโนมัติ แล้วกด Save
ยามใดก็ตามที่บริการบน Home Server เกิดค้าง, พอร์ตดับ หรือระบบเน็ตเวิร์กขัดข้อง Uptime Kuma จะส่งข้อความแจ้งเตือนสีแดงพร้อมระบุสาเหตุตรงเข้า Telegram ของคุณภายในไม่กี่วินาที!
ขั้นตอนที่ 5: สร้างหน้า Status Page รวมสถานะทั้งบ้าน
คุณสามารถสร้างหน้าเว็บรวมสถานะบริการที่ดูสะอาดตา เพื่อเอาไปเปิดดูภาพรวมหรือแปะไว้บนแดชบอร์ดหลักของบ้าน:
- คลิกที่เมนู Status Pages ด้านบน
- กด Add New Status Page
- ตั้งชื่อแดชบอร์ด เช่น
Private Brain OS Statusและกำหนด URL Path เช่น/status/brain - ลากบริการ (Monitors) ที่ต้องการโชว์เข้ามาจัดกลุ่ม เช่น กลุ่ม Core Infrastructure, กลุ่ม Storage & Backup, กลุ่ม AI Services
- กด Save คุณจะได้หน้าเว็บแสดงสถานะระบบที่ดูเป็นมืออาชีพ พร้อมอัปเดตแบบเรียลไทม์
สรุป: เฝ้าระวังระบบอย่างมั่นใจในแบบ Local-first
การทำ Self-hosting ไม่ใช่แค่เรื่องของการรันซอฟต์แวร์ให้ใช้งานได้ แต่คือการสร้างระบบที่คุณสามารถดูแลและควบคุมมันได้อย่างสมบูรณ์แบบ 100%
การติดตั้ง Uptime Kuma เพิ่มเข้าไปใน Home Server จะช่วยเปลี่ยนระบบในบ้านที่คุณต้องคอยลุ้นว่าบริการจะล่มเมื่อไหร่ ให้กลายเป็นโครงสร้างพื้นฐานดิจิทัลที่มีระบบเฝ้าระวังอัตโนมัติ ช่วยให้คุณใช้งานบริการใน Private Brain OS ได้อย่างสบายใจ ไร้กังวล และพร้อมรับมือกับทุกปัญหาล่วงหน้าได้อย่างทันท่วงทีครับ