สำหรับแอดมินที่ต้องดูแลหลายๆ เว็บไซต์ สิ่งที่จำเป็นก็คือเครื่องมือที่เรียกว่า uptime monitoring ที่คอยเตือนเมื่อเกิดเหตุการณ์เว็บล่ม เพราะบางครั้งแค่เว็บล่มเพียงไม่กี่นาที ก็ทำให้เกิดความเสียหายหลายแสนทีเดียว
บริการ uptime monitoring สมัยนี้มีหลากหลายเจ้า ปกติจะเก็บค่าบริการกันแบบ subscription รายเดือน แต่ถ้าใครไม่อยากจ่ายตังค์ วันนี้ผมมีโซลูชั่น สำหรับใครที่มีการใช้งาน NAS อยู่แล้ว เราจะเอา NAS มาทำเป็น uptime monitoring กันครับ แต่มีเงื่อนไขว่า NAS ที่เอามาใช้ต้องสามารถรันแอพ Docker ได้ด้วยนะ
ในตัวอย่างวันนี้ ผมใช้ Synology DS920+ (อัพเดต DSM ล่าสุด) เพื่อนๆ จะใช้ของยี่ห้ออื่นๆ ก็ได้ ขอให้สามารถรัน Docker ได้ วิธีการก็ไม่น่าจะต่างกันครับ
ขั้นตอนการทำ uptime monitoring ด้วย Synology NAS
- มาที่ Synology NAS ให้เราติดตั้ง Container Manager จาก Package Center ให้เรียบร้อยก่อน
- เปิด Container Manager ไปที่เมนู Registry ค้นหา Image ชื่อ uptime-kuma เลือกใช้ Image ของ louislam กด Download มาไว้ที่ Container manager ให้เรียบร้อย
- ไปที่เมนู Image รอให้ดาวน์โหลดจนเสร็จ กดเลือก Image อีกทีแล้ว Run
- จะมีหน้าต่าง wizard ให้เราเซ็ตอัพไปทีละหน้า สำหรับหน้าแรก ติ๊กถูก Enable auto – restart และ set up web portal ตามภาพ ส่วนเลขพอร์ตก็ใช้ค่าตั้งต้นได้เลย
- หน้าต่อมา ส่วน Volume Setting ให้กด + Add Folder สร้าง folder ใหม่ ไว้ที่ไหนก็ได้ ชื่อ uptime-kuma แล้วแมพเข้ากับ /app/data ส่วนอื่นๆ ไม่ต้องปรับอะไร
- หน้านี้คือรีวิวการตั้งค่า ให้กด Done เป็นการเริ่มทำงานทันที
ตอนนี้เราก็มีเซิร์ฟเวอร์ uptime monitoring รันอยู่บน NAS เรียบร้อย มาดูวิธีการใช้งานกันครับ
วิธีการใช้งาน Uptime-kuma
- ให้ไปที่เว็บ http://<nas ip>:3001 ครั้งแรก ระบบจะให้สร้าง user and password ก่อน จากนั้นล็อกอินเข้าไปปกติ
- เราจะเข้ามาที่หน้า Dashboard ก่อนจะเพิ่มเว็บไซต์ ผมแนะนำให้เรามาทำตัวแจ้ง Alert กันก่อน โดยกดไปที่ Settings
- ไปที่เมนู Notifications แล้วกด Setup Notification
- ตั้งค่าดังนี้
- Notification Type เลือกเป็น Line Notify (หรือจะเลือกเป็น Line Messenger ก็ได้ แต่อันนี้จะขั้นตอนเยอะหน่อย เพราะเราต้องไปสร้าง ฺBot OA ด้วย วิธีนี้เหมาะสำหรับมีแอดมินหลายคน แล้วอยากได้ noti พร้อมๆ กัน)
- Friendly Name ตั้งชื่ออะไรก็ได้แล้วแต่เรา เช่น Line notify uptime alert
- Access Token ให้เราไปเอาจากเว็บ https://notify-bot.line.me/ ล็อกอินด้วย QR Code ของ line ปกติ กดไปที่เมนู My page (dropdown menu ใต้ชื่อยูซเซอร์ของเรา) จากนั้นกดปุ่ม Generate token เสร็จแล้วก็อปปี้มาใส่ในช่อง Access token
- ลองกด Test จะมีข้อความส่งไปที่ Line ของเราผ่านทาง Line Notify ครับ เสร็จแล้วกด Save ให้เรียบร้อย
- ทีนี้ก็มาเพิ่มเว็บที่ต้องการให้ monitoring กดไปที่เมนู +Add New Monitor
- ใส่ชื่อเว็บที่ช่อง Friendly Name แล้วก็ใส่ URL ให้ถูกต้อง จากนั้นเปิด Notifications ทางขวามือด้วย เสร็จแล้วก็ Save เป็นอันเสร็จ ส่วนค่าอื่นๆ ไม่ต้องปรับครับ ดีอยู่แล้ว
ถ้ามีอีกหลายเว็บก็เพิ่มเข้าไปให้หมดครับ สามารถเพิ่มได้ไม่จำกัด โดยเว็บทั้งหมดจะลิสต์ที่กล่องทางซ้ายมือ เราสามารถคลิกดู status ของเว็บได้ โดยจะแสดงดังภาพ
ค่าเริ่มต้นจะตรวจสอบทุกๆ 1นาที เวลาเว็บล่ม (หรือ return ค่าอะไรก็ตามที่ไม่ใช่ 200) ระบบจะแจ้งไปที่ Line ของเราทันทีครับ ตัวอย่างดังภาพ