การประยุกต์ใช้ Uptime Kuma เตือนไฟฟ้าดับ
- Posted by Kanjana Sukplang
- Categories Explicit Knowledge, การจัดการความรู้, ชุมชนการบริการและความรู้, ชุมชนเครือข่ายและแม่ข่าย, ชุมชนโอเพนซอร์ส
- Date March 18, 2024
เมื่อไฟฟ้าดับโดยไม่ได้รับการแจ้งล่วงหน้า แต่อุปกรณ์เครือข่ายติดตั้งไว้ในห้องที่มีระบบสำรองไฟฟ้า ทำให้ไม่สามารถทราบเวลาของระบบไฟฟ้าที่ดับและไม่แจ้งเตือนมายังระบบมอนิเตอร์ตามเวลาที่ถูกต้อง เช่น กรณีไฟฟ้าดับ ระบบสำรองไฟฟ้ามีความสามารถสำรองไฟได้ ๑ ชั่วโมง หลังจากไฟดับเกิน ๑ ชั่วโมง ระบบมอนิเตอร์จึงจะแจ้งเตือนมา ทำให้ไม่ทราบเวลาที่เริ่มต้นของไฟฟ้าที่ดับและคิดว่ามีระบบสำรองไฟได้อีก ๑ ชั่วโมงจากอุปกรณ์สำรองไฟ ทำให้คาดการณ์ผิด มีผลให้ไม่สามารถ Shutdown ระบบอย่างปลอดภัยได้ทัน จึงประยุกต์ใช้ระบบ Uptime Kuma กับการแจ้งเตือนผ่าน Line หรือ Telegram เพื่อที่จะทำให้ทราบสถานะที่แท้จริงของไฟฟ้าในอาคาร ซึ่งปกติการแจ้งเตือนไฟฟ้าดับจะใช้อุปกรณ์อิเล็กทรอนิกส์หรือ Sensor หรือ IoT Sensor แต่ในการประยุกต์ครั้งนี้ เราจะใช้ อุปกรณ์เครือข่ายที่มี IP Management ซึ่งอาจใช้ Switch เก่า โดยติดตั้งกับปลั๊กไฟของอาคารที่ไม่มีระบบสำรองไฟ จากนั้นใช้ Uptime Kuma ที่มีการติดตั้งไว้


ขั้นตอนโดยสรุปมีดังต่อไปนี้
(1) ติดตั้งอุปกรณ์ Switch หรืออุปกรณ์เครือข่ายที่สามารถกำหนด IP Address ที่จะทำการทดสอบ
(2) ติดตั้งโปรแกรม Uptime Kuma
(3) ตั้งค่าเพื่อ Monitor อุปกรณ์เครือข่ายในข้อ (1)
(4) ตั้งค่า Notification ใน Uptime Kuma เช่น Line, Mail, Telegram ในการทดสอบนี้จะใช้ Telegram
(5) ตั้งค่ารับ Notification ใน Telegram
ขั้นตอนการดำเนินการ
1. ติดตั้งอุปกรณ์ Switch หรืออุปกรณ์เครือข่ายที่ได้รับ IP Address
ในการทดสอบครั้งนี้ใช้ TL-WR710N ตั้งค่าการทำงานแบบ Switch ที่ไม่ปล่อย IP Address รบกวนระบบเครือข่ายในอาคาร และไม่ปล่อยสัญญาณ WiFi รบกวนเครือข่ายไร้สายที่ใช้งานในบริเวณที่ดำเนินการ

2. ติดตั้งโปรแกรม Uptime Kuma มีหลายวิธี สามารถดูวิธีการติดตั้งได้ที่เว็บไซต์ของ Uptime Kuma https://github.com/louislam/uptime-kuma วิธีการติดตั้งที่ง่ายคือการติดตั้ง Uptime Kuma ด้วย Docker บน Linux Server แต่ครั้งนี้เรามี Uptime Kuma ที่ใช้งานเพื่อ Monitor ระบบงานอยู่แล้ว (10.4.1.44) โดยใช้สำหรับมอนิเตอร์ เว็บ, Radius สำหรับ Internet Authentication, Radius สำหรับ VPN Authentication, Switch แบบพื้นฐานผ่านการ Ping ฯลฯ โดย Uptime Kuma มี Feature พื้นฐานดังต่อไปนี้
- Monitoring uptime for HTTP(s) / TCP / HTTP(s) Keyword / HTTP(s) Json Query / Ping / DNS Record / Push / Steam Game Server / Docker Containers
- Fancy, Reactive, Fast UI/UX
- Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and 90+ notification services, click here for the full list
- 20-second intervals
- Multi Languages
- Multiple status pages
- Map status pages to specific domains
- Ping chart
- Certificate info
- Proxy support
- 2FA support
หลังจากติดตั้งเสร็จเข้าใช้งานผ่านเว็บแอพพลิเคชั่นที่ http://IP-Server(ของ Uptime Kuma):3001
3. ตั้งค่าเพื่อ Monitor อุปกรณ์เครือข่ายที่นำมาติดตั้ง
เมื่อเข้าระบบ Uptime Kuma แล้วให้ตั้งค่ามอนิเตอร์อุปกรณ์เครือข่ายที่ติดตั้ง ที่ Uptime Kuma คลิก Add New Monitor ใส่ IP ของอุปกรณ์ที่เราติดตั้ง


4. ตั้งค่า Notification ใน Telegram

พิมพ์ /newbot ทำการ Copy token API Key เก็บไว้


คลิก START ที่ Telegram แล้วให้ไปตั้งค่าที่ Uptime Kuma นำ token API Key ที่เก็บไว้ มาใส่ใน Bot Token หลังจากสร้าง Bot ให้เราเอาค่า Chat ID จาก URL ใน Setting Notification ของ Uptime Kuma มาใส่ในช่อง Chat ID


ทดสอบการทำงานของทั้ง Uptime Kuma และ Telegram โดยถอดปลั๊กอุปกรณ์ที่เราทดสอบ จำลองไฟดับ จะมีการแจ้งเตือนมาที่ Telegram แล้ว

5. ตั้งค่ารับ Notify ใน Telegram แบบกลุ่มตามภาพ


Add Members ชื่อคนเข้ากลุ่ม และ Add Members BOT ที่เราสร้างเข้ากลุ่มด้วย

หลังจากสร้าง Group เรียบร้อย ให้เราเอาค่า Chat ID จาก URL ใน Setting Notification ใน โปรแกรม Uptime Kuma มาใส่


จากนั้นทำการปรับแต่งที่ Uptime Kuma กำหนดช่วงเวลาในการ Resend Notification if Down X times consecutively (Resend every 1 times) ให้ส่งตลอดทุกครั้งทุก 60 วินาที จนกว่า ไฟฟ้าจะติด ดังรูป

ทดสอบดึงปลั๊กจำลองไฟดับ สังเกตที่ Uptime Kuma และ Telegram




จากการทดสอบ เราสามารถนำโปรแกรม Uptime Kuma และ Telegram ไปประยุกต์ใช้ตรวจสอบไฟฟ้าดับที่ส่วนงานต่าง ๆ ในมหาวิทยาลัย โดยมีการแจ้งเตือนมาที่ผู้ดูและระบบได้
You may also like
ในองค์ความรู้นี้จะนำเสนอ การเขียนโปรแกรมบีบอัดและรวมไฟล์รูปภาพในรูปแบบ ZIP สำหรับระบบบัตรพนักงาน มหาวิทยาลัยบูรพา ซึ่งแบ่งเป็นขั้นตอนการดำเนินการ ดังนี้ ทำการดาวโหลดไฟล์รูปภาพจาก MinIO มาลงที่โฟลเดอร์ storage แสดงดังภาพ สร้างฟังก์ชันสำหรับ บีบอัดและรวมไฟล์รูปภาพในรูปแบบ ZIP แสดงดังภาพ ไฟล์ Zip ที่ออกจากระบบ แสดงดังภาพ อ้างอิง https://www.php.net/manual/en/class.ziparchive.php
การสร้าง QR Code ในรูปแบบนามบัตรดิจิทัล (vCard) บน Laravel Framework เพื่อใช้กับระบบบัตรพนักงานของมหาวิทยาลัยบูรพา
ในองค์ความรู้นี้จะนำเสนอ การสร้าง QR Code ในรูปแบบ vCard สำหรับบัตรพนักงาน มหาวิทยาลัยบูรพา ซึ่งแบ่งเป็นขั้นตอนการดำเนินการ ดังนี้ 1. การติดตั้ง Package สำหรับสร้าง QR Code ที่ชื่อ simplesoftwareio/simple-qrcode โดยติดตั้งผ่าน Composer คำสั่ง : composer require simplesoftwareio/simple-qrcode 2. สร้างฟังก์ชันสำหรับ QR Code ในรูปแบบ vCard ซึ่งโครงสร้างข้อมูล ต้องเริ่มต้นด้วย BEGIN:VCARD และจบด้วย END:VCARD และฟิลด์ที่กำหนดค่าที่สำคัญ เช่น ชื่อ (FN) …
ที่มา/ปัญหา เพื่อให้การใช้งาน Docker Volumes ร่วมกับโปรแกรม Cursor และ Git Azure ได้อย่างมีประสิทธิภาพจึงต้องทำการเชื่อมต่อข้อมูลไฟล์ Project กับ Container และใช้ SSH ในการเชื่อมต่อโดยมีขั้นตอนการทำดังต่อไปนี้ สิ่งที่จำเป็นและต้องเตรียม ๑. Docker Desktop ๒. Docker Container ๓. Extension SFTP ของ Cursor หรือ VS Code ขั้นตอนการติดตั้งและใช้งาน ๑. ติดตั้ง OpenSSH Server โดยเข้าไปที่ Container Exec แล้วลองพิมพ์ …
