Uptime Kuma: เฝ้าระวังเว็บและ API ด้วยระบบ Monitoring แบบ Self-hosted
ทำความรู้จัก Uptime Kuma เครื่องมือ Monitoring แบบ Self-hosted สำหรับตรวจสอบเว็บ API พอร์ต และ DNS พร้อมแนวทางติดตั้งด้วย Docker ตั้งค่าการแจ้งเตือน และสร้าง Status Page

Uptime Kuma: เฝ้าระวังเว็บและ API ด้วยระบบ Monitoring แบบ Self-hosted
Uptime Kuma คือเครื่องมือ Monitoring แบบ Self-hosted ซึ่งติดตั้งและทำงานอยู่บนเซิร์ฟเวอร์ที่เราควบคุมเอง หน้าที่หลักคือคอยตรวจสอบว่าเว็บไซต์ API และบริการต่าง ๆ ยังออนไลน์ ตอบสนองภายในเวลาที่เหมาะสม และไม่หยุดทำงานโดยไม่มีใครทราบ
แทนที่จะรอให้ลูกค้าแจ้งว่าเว็บไซต์เข้าไม่ได้ เราสามารถให้ Uptime Kuma ตรวจเว็บ เรียก API เช็กพอร์ต หรือค้นหาข้อความบนหน้าเว็บตามรอบเวลาที่กำหนดได้ เมื่อพบความผิดปกติ ระบบจะส่งการแจ้งเตือนไปยังทีมที่รับผิดชอบทันที ทำให้เริ่มตรวจสอบและแก้ไขปัญหาได้เร็วขึ้น
จุดเด่นของ Uptime Kuma
Uptime Kuma มีหน้าเว็บสำหรับสร้างและจัดการ Monitor ทั้งหมด จึงไม่จำเป็นต้องเขียนไฟล์ Configuration ขนาดยาว ผู้ใช้สามารถดูสถานะปัจจุบัน ประวัติ Uptime และเหตุการณ์ที่บริการหยุดตอบสนองได้จาก Dashboard เดียว
เครื่องมือนี้เหมาะกับทีมขนาดเล็ก นักพัฒนาอิสระ และผู้ที่มี VPS, NAS หรือ Home Lab อยู่แล้ว เพราะติดตั้งง่ายและไม่ต้องผูกระบบ Monitoring เข้ากับบริการ SaaS ภายนอก ข้อมูลการตรวจสอบและการตั้งค่าต่าง ๆ ยังคงอยู่ในโครงสร้างพื้นฐานที่ผู้ใช้ดูแลเอง
รูปแบบการตรวจสอบที่รองรับ
Uptime Kuma รองรับการตรวจสอบหลายรูปแบบ จึงสามารถนำมาเฝ้าระวังองค์ประกอบสำคัญของระบบได้มากกว่าเว็บไซต์เพียงอย่างเดียว ตัวอย่างรูปแบบที่ใช้งานบ่อย ได้แก่
- HTTP/HTTPS: ตรวจสอบว่าเว็บไซต์หรือ API ยังตอบสนองและคืนค่า HTTP status ตามที่คาดไว้
- HTTP Keyword: ตรวจสอบทั้งการตอบสนองของหน้าเว็บและข้อความสำคัญที่ควรปรากฏในเนื้อหา
- TCP Port: ตรวจสอบว่าพอร์ตของฐานข้อมูล Reverse Proxy หรือบริการเครือข่ายยังเปิดรับการเชื่อมต่อ
- Ping: ตรวจสอบว่าเครื่องปลายทางยังออนไลน์และตอบสนองผ่านเครือข่าย
- DNS: ตรวจสอบว่าชื่อโดเมนยัง Resolve ไปยังปลายทางได้อย่างถูกต้อง
การเลือกชนิด Monitor ควรสอดคล้องกับสิ่งที่ต้องการยืนยัน หากต้องการทราบเพียงว่าเว็บตอบสนองหรือไม่ การตรวจแบบ HTTP/HTTPS อาจเพียงพอ แต่ถ้าต้องการยืนยันว่าหน้าเว็บโหลดเนื้อหาที่ถูกต้องด้วย ควรใช้ HTTP Keyword เพิ่มเติม
ติดตั้ง Uptime Kuma ด้วย Docker
วิธีเริ่มต้นที่นิยมคือรัน Uptime Kuma ด้วย Docker บนเครื่องที่เปิดทำงานตลอดเวลา เช่น VPS, NAS หรือเซิร์ฟเวอร์ภายในองค์กร คำสั่งต่อไปนี้จะสร้าง Container เปิดพอร์ต 3001 และเก็บข้อมูลไว้ใน Docker Volume ชื่อ uptime-kuma
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
เมื่อติดตั้งเสร็จแล้ว ให้เปิด http://YOUR_SERVER_IP:3001 ผ่านเว็บเบราว์เซอร์ จากนั้นสร้างบัญชีผู้ดูแลระบบสำหรับการเข้าใช้งานครั้งแรก เมื่อเข้าสู่ Dashboard แล้วจึงเริ่มเพิ่มเว็บไซต์ API หรือบริการที่ต้องการตรวจสอบได้
สร้าง Monitor สำหรับเว็บไซต์
ในการตรวจสอบเว็บไซต์ ให้เลือก Add New Monitor แล้วตั้งชื่อที่สื่อความหมาย เช่น Main Website จากนั้นเลือกชนิด HTTP(s) และใส่ URL ของเว็บไซต์ เช่น https://example.com
ค่าที่ควรกำหนดเพิ่มเติมคือ Interval และ Retry โดยเว็บไซต์ทั่วไปอาจใช้ Interval 60 วินาที และ Retry 3 ครั้ง การให้ระบบลองตรวจซ้ำก่อนแจ้งเตือนช่วยลด False Alarm ที่อาจเกิดจากเครือข่ายกระตุกหรือปัญหาชั่วคราวเพียงไม่กี่วินาที
ตรวจสอบ API ผ่าน Health Check
สำหรับ API ควรสร้าง Health Check Endpoint โดยเฉพาะ เช่น /health ซึ่งตอบกลับด้วย HTTP status 200 และข้อความสั้น ๆ อย่าง ok เมื่อส่วนประกอบสำคัญของระบบยังทำงานตามปกติ จากนั้นตั้ง Uptime Kuma เป็น HTTP Keyword เพื่อให้ตรวจสอบทั้ง status code และเนื้อหาที่ตอบกลับพร้อมกัน
แนวทางนี้ช่วยตรวจพบกรณีที่เว็บเซิร์ฟเวอร์ยังตอบ 200 แต่ระบบภายในบางส่วนเกิดปัญหา เช่น การเชื่อมต่อฐานข้อมูลล้มเหลวหรือบริการที่ API พึ่งพาไม่พร้อมใช้งาน อย่างไรก็ตาม Health Check ควรถูกออกแบบให้ตรวจเฉพาะสิ่งจำเป็นและตอบกลับได้รวดเร็ว เพื่อไม่ให้การตรวจสอบสร้างภาระแก่ระบบมากเกินไป
ตั้งค่าการแจ้งเตือนให้เหมาะกับทีม
Uptime Kuma รองรับช่องทางแจ้งเตือนหลายประเภท เช่น Telegram, Discord, Slack, Email และ Webhook รวมถึงระบบที่เชื่อมต่อผ่าน Webhook ในรูปแบบที่เข้ากันได้ การเลือกช่องทางควรพิจารณาจากวิธีทำงานของทีมและความสำคัญของแต่ละบริการ
ควรส่งการแจ้งเตือนไปยังทีมที่รับผิดชอบโดยตรง เพื่อหลีกเลี่ยงข้อความจำนวนมากจนผู้รับเริ่มละเลยเหตุการณ์สำคัญ หลังตั้งค่าแล้วควรใช้ปุ่ม Test เพื่อตรวจสอบว่าข้อความถูกส่งไปยังปลายทางได้จริงก่อนเปิดใช้งาน Monitor ในระบบ Production
แยกเครื่อง Monitoring ออกจากบริการหลัก
หากเป็นไปได้ ไม่ควรวาง Uptime Kuma ไว้บนเซิร์ฟเวอร์เดียวกับเว็บไซต์หลัก เพราะเมื่อเซิร์ฟเวอร์ดังกล่าวล่ม ทั้งเว็บไซต์และระบบ Monitoring จะหยุดทำงานพร้อมกัน ส่งผลให้ไม่สามารถส่งการแจ้งเตือนออกมาได้
ทางเลือกที่เหมาะสมคือวาง Uptime Kuma บน VPS อีกเครื่อง หรืออย่างน้อยให้อยู่คนละเครือข่ายกับระบบที่กำลังตรวจสอบ ตำแหน่งลักษณะนี้ยังช่วยให้การตรวจสอบสะท้อนมุมมองของผู้ใช้ภายนอกได้ใกล้เคียงความเป็นจริงมากขึ้น
กำหนดความถี่โดยคำนึงถึง Load และ Rate Limit
การตั้ง Interval ถี่มากไม่ได้หมายความว่าระบบ Monitoring จะมีประสิทธิภาพดีขึ้นเสมอไป สำหรับเว็บไซต์ทั่วไป รอบการตรวจสอบทุก 30–60 วินาทีมักเพียงพอ ส่วน API ที่มีความสำคัญสูงอาจกำหนดให้ตรวจถี่ขึ้นตามระดับบริการที่ต้องการ
ทุกครั้งที่ Uptime Kuma ตรวจสอบปลายทางจะเกิด Request เพิ่มขึ้น จึงต้องคำนึงถึง Load ของระบบและ Rate Limit ของ API ด้วย ควรเลือกความถี่ที่ทำให้ตรวจพบปัญหาได้ทันเวลา โดยไม่สร้างภาระเกินความจำเป็นหรือทำให้ระบบตรวจสอบถูกจำกัดการเรียกใช้งาน
สื่อสารสถานะด้วย Status Page
Uptime Kuma สามารถสร้าง Status Page เพื่อแสดงสถานะของ Website, API, Database, CDN และบริการอื่น ๆ ในหน้าเดียวได้ หน้าสถานะนี้กำหนดให้เป็น Public สำหรับผู้ใช้ทั่วไป หรือใช้ภายในองค์กรเพื่อให้ทีม Support และทีมพัฒนาตรวจสอบร่วมกันก็ได้
เมื่อเกิด Incident ผู้เกี่ยวข้องจะเห็นได้ทันทีว่าบริการใดได้รับผลกระทบ จึงช่วยลดการตอบคำถามเดิมซ้ำ ๆ และทำให้การสื่อสารสถานะมีแหล่งข้อมูลกลางที่ชัดเจน หลังระบบกลับมาปกติ Status Page ยังช่วยแสดงภาพรวมว่าแต่ละบริการพร้อมใช้งานแล้วหรือไม่
สรุป
Uptime Kuma เป็นตัวเลือกที่เหมาะสำหรับผู้ที่ต้องการระบบ Monitoring ซึ่งติดตั้งง่าย ควบคุมข้อมูลและโครงสร้างพื้นฐานได้เอง และไม่ผูกกับบริการ SaaS ภายนอก จุดเริ่มต้นที่ดีคือสร้าง Monitor สำหรับเว็บไซต์หลักและ Health Check ของ API ก่อน แล้วจึงเพิ่มช่องทางแจ้งเตือน การตรวจสอบบริการอื่น และ Status Page ตามความจำเป็นของระบบ