ทำระบบ Monitoring Tools ไว้ใช้งานแบบประหยัดงบ (Uptime-Kuma)

Kridsana S - TH
6 min readFeb 4, 2024

Uptime-Kuma

เป็นระบบ Network Monitoring เป็นสิ่งสำคัญสำหรับ Network Engineer เพราะว่ามันช่วยลดภาระที่เราไม่ต้องไป Monitor ระบบเอง แต่ใช้ Bot หรือ ระบบแจ้งสถานะคอยดูแลให้ Uptime-Kuma เป็น Network Monitoring แบบ OpenSource ที่กำลังได้รับความนิยมในช่วง 2–3 ปีที่ผ่านมา เพราะว่า หน้าตาดี ใช้งานง่าย และไม่กินทรัพยากรเครื่อง และยังมีการพัฒนาอย่างต่อเนื่องจากผู้ใช้งานทั่วโลก จึงทำให้เป็นระบบที่ได้รับความนิยมอย่างมากในปัจจุบัน สามารถ Monitoring Service ได้หลากหลายรูปแบบ และมีระบบ Notification ที่ครอบคลุมทุก Service ทั่วโลก

คุณสมบัติของระบบ Uptime Kuma

  • ตรวจสอบเวลาทำงานของเว็บไซต์ HTTP, TCP/UDP, Docker — Container หรือ Services อื่นๆที่ระบบได้ให้บรอการอยู่ ณ ขณะนั้น
  • สามารถส่งการแจ้งเตือน (Notification) ผ่านทาง E-mail, Telegram, Discord, Microsoft Teams, Slack, Promo SMS, Gotify และบริการแจ้งเตือนกว่า 90 รายการ
  • รองรับหลายภาษา เช่น ไทย อังกฤษ และ อื่นๆ
  • แสดงหน้าสถานะหลายหน้า
  • ให้การสนับสนุนพร็อกซี
  • แสดงผลของข้อมูลใบรับรอง SSL เช่น รายละเอียด และวันหมดอายุ
  • แมปหน้าสถานะไปยังโดเมน

เนื่องจากเราต้องการสร้างระบบ Network Monitoring โดยใช้งบประมาณให้น้อยที่สุด จึงเลือกติดตั้งระบบ Uptime Kuma ลงบน Virtual Machine ของเครื่องคอมพิวเตอร์ที่มีอยู่แล้ว หากผู้ใช้งานต้องการที่จะแยกเครื่องคอมพิวเตอร์เพื่อใช้งานเฉพาะด้าน สามารถใช้ Raspberry Pi ซึ่งเป็น Single Board Computer ที่ราคาอยู่ระหว่าง 1100 — 4500 บาทในการสร้างระบบฯ

Ref : https://www.jeffgeerling.com/sites/default/files/images/raspberry-pi-model-size-comparison.jpg

โดยสามารถติดตั้งระบบปฏิบัติการ Unix ที่ชื่อ Raspberry Pi OS เพื่อเป็น OS พื้นฐานและติดตั้ง Uptime — Kuma ต่อไป

Ref : https://www.raspberrypi.com/software/operating-systems/

เราจะทำการติดตั้งระบบ Uptime-Kuma ซึ่งสามารถติดตั้งได้ 2 รูปแบบ ทั้งแบบ Docker Container และ แบบ Node.Js โดยจะติดตั้งลงบนระบบปฏิบัติการ Ubuntu 22.04 ที่รันอยู่บน Virtual Machine ดังนี้ สามารถศึกษาเพิ่มเติมได้ที่ Link : https://github.com/louislam/uptime-kuma

ขั้นตอนในการติดตั้งระบบ Uptime-Kuma

Download ไฟล์ ISO Ubuntu 22.04 แบบ Command Line Interface และติดตั้งลงบน Virtual Machine (กรณีนี้ใช้ VMware Workstation Pro 17)

Ref : https://releases.ubuntu.com/jammy/

1. ตั้งค่า Virtual Machine เพื่อติดตั้ง Ubuntu 22.04

1.1 เมื่อ Download เรียบร้อยแล้วให้เปิดโปรแกรม VMware Workstation 17 โดยเลือกที่เมนู Create a New Virtual Machine ตามภาพด้านล่าง

1.2 เลือกไฟล์ ISO ที่ได้ Download ไว้ในขั้นตอนที่ 1.

1.3 ตั้งชื่อให้กับ Node ที่กำลังสร้าง และ เลือก Path ที่ต้องการติดตั้ง VM Files

1.4 ปรับขนาดของ Storage ให้กับ VM โดยเลือกเก็บข้อมูลแบบ Split virtual disk เพื่อประหยัดพื้นที่ใน HDD จริง และจะขยายเพิ่มขึ้นตามข้อมูลที่อยู่ใน Storage ของ VM

1.4 ปรับขนาดของ Storage ให้กับ VM โดยเลือกเก็บข้อมูลแบบ Split virtual disk เพื่อประหยัดพื้นที่ใน HDD จริง และจะขยายเพิ่มขึ้นตามข้อมูลที่อยู่ใน Storage ของ VM

1.5 ปรับสเปคของ Hardware VM โดยเลือกที่เมนู Customize Hardware เพื่อปรับค่าของ CPU ,RAM ,Network Adaptor ให้สัมพันธ์กับ Hardware ที่มีอยู่บนเครื่องจริง และยังสามารถเพิ่ม Device ได้ตามต้องการ

1.5.1 ภาพแสดงการปรับสเปคของ Hardware VM เพื่อให้ระบบใช้งานได้อย่างมีประสิทธิภาพ

1.5.2 ภาพแสดงเมนูที่ใช้เพิ่มอุปกรณ์ Device ให้กับ VM ในกรณีอื่นๆ เช่น Mapping Device กับ อุปกรณ์จริงที่เพิ่มเข้ามาเช่น External HDD ,Network Adaptor เป็นต้น

2. ติดตั้ง Ubuntu 22.04

2.1 ติดตั้งระบบปฏิบัติการ Ubuntu 22.04 ลงบน Virtual Machine

2.1.1 เลือกภาษาที่ใช้ในการแสดงผลบนระบบปฏิบัติการ

2.1.2 สามารถ Update OS ให้เป็นปัจจุบัน หรือ ข้ามขั้นตอนเพื่อเข้าสู่การติดตั้ง OS ต่อไป

2.1.3 เลือกภาษา และ Layout ของ Keyboard ที่ต้องการจะใช้ ในที่นี้จะใช้เป็น English (US) เพื่อให้ง่ายต่อการใช้งานระบบ

2.1.4 เลือก Ubuntu Server เพื่อติดตั้ง Package เต็ม

2.1.5 ตั้งค่า Network โดยเลือก IP แบบ DHCP หากต้องการกำหนด IP ให้เลือกแบบ Manual

2.1.6 ตั้งค่าการเชื่อมต่อ Proxy address ในที่นี้ไม่ได้ใช้ Proxy จึงไม่จำเป็นต้องตั้งค่า

2.1.7 กำหนด Mirror address เพื่อใช้สำหรับ Download Programs อื่นๆที่ต้องการเพิ่มเติม

2.1.8 กำหนดรูปแบบ (Format) ในการเขียน Disk ของ OS

2.1.9 ตั้งค่า Partition เพื่อใช้ในการติดตั้ง OS และสำหรับบันทึกข้อมูลในอนาคต

2.1.10 หากตั้งค่าในข้อ 2.1.9 เรียบร้อยแล้ว ให้เลือก Continue เพื่อดำเนินการต่อไป

2.1.11 กำหนด Profile Account เพื่อใช้ในการใช้งานระบบ Ubuntu

2.1.12 หากต้องการ Upgrade ให้เป็น Ubuntu Pro สามารถเลือก Enable Ubuntu Pro หากไม่ต้องการให้กดข้ามเพื่อไปยังขั้นตอนต่อไป

2.1.13 ติดตั้ง OpenSSH server เพื่อใช้ในการทำ Remote SSH (Port 22)

2.1.13 ติดตั้ง Service อื่นๆที่จำเป็นในกรณีนี้จะเพิ่ม Docker Compose เพื่อใช้ในการ Run Container

2.1.14 เมื่อติดตั้ง OS เสร็จเรียบร้อยแล้วให้ Reboot ระบบ

2.1.15 หลังจาก Reboot เสร็จเรียบร้อยแล้ว OS ให้ดำเนินการ Login โดยใช้ Account จากข้อ 2.1.11

2.1.16 เมื่อ Login เรียบร้อยแล้ว ระบบจะแสดงรายละเอียดตามภาพ

2.1.17 ให้ทำการ Snapshot เพื่อสร้างจุด Save ในกรณีที่เกิดความผิดพลาดจากการติดตั้งในขั้นตอนต่อไป

2.1.18 ตรวจสอบ Service ต่างๆ ของ Ubuntu OS ที่ได้ติดตั้งไว้ให้เรียบร้อย

  • ตรวจสอบ SSH Service (เอาไว้ Remote ผ่านโปรแกรม SSH): sudo service ssh status
  • ตรวจสอบการเชื่อมต่ออินเทอร์เน็ต Network Connection : ping 8.8.8.8 (Google IP Address) ถ้าขึ้นข้อความตามภาพด้านล่างแสดงว่า Server สามารถเชื่อมต่อ Internet ได้

หมายเหตุ : ถ้ามีข้อความตามภาพด้านล่างแสดงว่า เกิดปัญหาจากการตั้งค่า IP Address ให้ลองตั้ง IP ใหม่โดยดูจาก Link : https://linuxconfig.org/ubuntu-22-04-network-configuration

หมายเหตุ : หากมีข้อความตามภาพด้านล่างแสดงว่า เกิดจาก Network Adapter มีปัญหา

2.1.19 ทำการ Update OS ให้เป็นปัจจุบัน และติดตั้ง net-tools ให้กับระบบ

  • Update OS (ทำให้ Unix เป็นปัจจุบัน จะได้โหลดโปรแกรมง่ายๆ): sudo apt update
  • ติดตั้งโปรแกรมจำพวก net-tools : sudo apt install net-tools

2.1.20 ใช้คำสั่ง ifconfig เพื่อตรวจสอบ IP Address ของเครื่อง และใช้สำหรับเชื่อมต่อ SSH ต่อไป

3. ติดตั้งระบบ Uptime-Kuma ลงบน Docker Compose โดยมีขั้นตอนดังนี้

3.1.1 Download และติดตั้งโปรแกรม MobaXterm เพื่อใชในการ SSH ไปยัง Ubuntu Server

Ref : https://mobaxterm.mobatek.net/

3.1.2 เพิ่ม Session ในการเชื่อมต่อ SSH

3.1.3 เลือก SSH แล้วกำหนด Remote Host : IP Address ของ Ubuntu Server ผู้ใช้งานสามารถตั้งค่าอื่นๆได้โดยเลือกดูที่เมนูด้านล่าง เมื่อกำหนดค่าเสร็จเรียบร้อบแล้วให้กด OK

3.1.4 เมื่อกำหนดค่าในข้อ 2.2.1.3 เรียบร้อยแล้ว ให้กด Accept เพื่อดำเนินการต่อไป

3.1.5 โปรแกรมจะพามายังหน้าหลักให้ Double Click ที่ Host Session ที่สร้างไว้ให้ Login เพื่อเข้าสู่ระบบ

หมายเหตุ : Unix OS จะไม่แสดง Password ในระหว่าง Login เพื่อความปลอดภัยของระบบ

3.1.6 ภาพแสดงผลของโปรแกรมเมื่อทำการ Login เสร็จเรียบร้อยแล้ว ผู้ใช้งานสามารถ Monitor Resource ของ Ubuntu Server ได้โดยการกดที่ Remote Monitoring โปรแกรมก็จะแสดงค่า CPU , RAM Bandwidth ของ Server ที่ใช้งานอยู่ในขณะนั้น

3.2.1 ไปยังเว็บไซต์ Github ตาม Link : https://github.com/louislam/uptime-kuma และ Copy Command : sudo docker run -d — restart=always -p 3001:3001 -v uptime-kuma:/app/data — name uptime-kuma louislam/uptime-kuma:1 แล้วไป Paste ลงใน MobaXterm

Ref : https://github.com/louislam/uptime-kuma

3.2.2 เมื่อ paste Command เรียบร้อยแล้วให้ Enter เพื่อ Pull Uptime-Kuma Container มายัง Ubuntu Server ตามภาพ

3.2.3 ตรวจสอบ Docker Process โดยใช้ Command : sudo docker ps จะเห็น Uptime-Kuma Container ทำงานอยู่ตามภาพ

3.2.4 ทดสอบระบบโดยใส่ IP Address ตามด้วย Port : 3001 ดังนี้ http://ip-address:3001 เมื่อระบบเข้าใช้งานได้แล้ว ให้ทำการ Snapshot VM แล้ว Export เป็นไฟล์ OVA เพื่อสำรองข้อมูลระบบ และยังสามารถนำไปใช้งานกับเครื่องคอมพิวเตอร์อื่นๆ ได้อีกด้วย

สำหรับวิธีการใช้งานระบบ Uptime Kuma นั้น ผมจะอธิบายให้ฟังในขั้นตอนต่อไป

--

--