Workshop: ตั้งค่า Monitoring Dashboard สำหรับ Production Server บน de.co.th

Workshop นี้จะนำคุณผ่านกระบวนการตั้งค่าระบบ Monitoring Dashboard ที่ครบถ้วนสำหรับ Production Server บน Cloud VPS ของ ผู้ให้บริการโฮสติ้ง คุณจะเรียนรู้วิธีติดตั้ง Prometheus สำหรับเก็บข้อมูล Metrics, ใช้ Grafana สร้าง Dashboard ที่สวยงาม และตั้งค่า AlertManager เพื่อแจ้งเตือนแบบ Real-time ผ่าน Slack หรือ Discord

เป้าหมายของ Workshop

  • ทำความเข้าใจหลักการ Monitoring และความสำคัญในระบบ Production
  • ติดตั้งและตั้งค่า Prometheus บน Cloud VPS
  • เชื่อมต่อ Node Exporter เพื่อรวบรวม Server Metrics
  • สร้าง Dashboard ด้วย Grafana แบบเข้าใจง่าย
  • ตั้งค่า Alert สำหรับการติดตามค่า CPU, Memory, Disk และ Network
  • เชื่อมต่อระบบแจ้งเตือน Slack/Discord สำหรับการแจ้งเตือน Real-time

Monitoring คืออะไร?

Monitoring หมายถึงการติดตามสถานะของระบบ Server อย่างต่อเนื่อง เพื่อรวบรวมข้อมูลเกี่ยวกับ Resources ต่างๆ เช่น CPU Usage, Memory Usage, Disk I/O, Network Traffic และอื่นๆ การ Monitoring ที่มีประสิทธิภาพช่วยให้ DevOps Engineer สามารถตรวจพบปัญหาก่อนที่จะเกิดผลกระทบต่อ Production Server และผู้ใช้งาน

ด้วยการติดตาม Metrics อย่างสม่ำเสมอ คุณจะสามารถ:

  • ตรวจพบปัญหาอย่างแม่นยำและรวดเร็ว
  • วิเคราะห์แนวโน้มการใช้งาน Resources
  • วางแผนการขยาย Infrastructure อย่างมีประสิทธิภาพ
  • ลดเวลา Downtime และปรับปรุง Availability

Metrics ที่จำเป็นสำหรับ Dashboard

  • CPU Usage: ความใช้งาน CPU ของ Server (เป็นเปอร์เซ็นต์)
  • Memory Usage: การใช้งาน RAM และ Swap Memory
  • Disk Usage: พื้นที่ใช้งานและพื้นที่ว่างบนดิสก์
  • Disk I/O: ความเร็วการอ่าน/เขียนข้อมูล (Read/Write)
  • Network Traffic: ปริมาณข้อมูลที่รับและส่ง (Bandwidth)
  • Response Time: เวลาที่ใช้ในการตอบสนองคำขอจากผู้ใช้
  • Uptime/Downtime: ระยะเวลาที่ Server ทำงานได้อย่างปกติ

ขั้นตอนที่ 1: ติดตั้ง Prometheus

Prometheus เป็น Time-Series Database ที่ออกแบบมาเพื่อเก็บข้อมูล Metrics ของระบบ ทำการติดตั้ง Prometheus บน Cloud VPS ของคุณ และตั้งค่า Scrape Configuration เพื่อเก็บข้อมูล Server Metrics จาก Node Exporter ทุก 15 วินาที

ขั้นตอนที่ 2: ติดตั้ง Node Exporter

Node Exporter เป็น Agent ที่ติดตั้งบน Server เพื่อเก็บรวบรวม System Metrics เช่น CPU, Memory, Disk และ Network ข้อมูลเหล่านี้จะถูกส่งไปยัง Prometheus เพื่อเก็บบันทึกและการวิเคราะห์

ขั้นตอนที่ 3: ตั้งค่า Grafana

Grafana เป็น Visualization Tool ที่มีประสิทธิภาพสำหรับแสดง Prometheus Data ในรูปแบบกราฟและ Dashboard ที่สวยงาม ทำให้ง่ายต่อการทำความเข้าใจเกี่ยวกับสถานะของระบบ

ขั้นตอนที่ 4: สร้าง Alert Rules

ตั้งค่า AlertManager เพื่อสร้าง Alert Rules ต่างๆ เช่น:

  • CPU Usage สูงกว่า 80%
  • Memory Usage สูงกว่า 85%
  • Disk Usage สูงกว่า 90%
  • Network ความผิดปกติหรือจำนวน Errors มากขึ้น

ขั้นตอนที่ 5: เชื่อมต่อ Slack/Discord Integration

เชื่อมต่อ AlertManager ไปยัง Slack Webhook หรือ Discord Channel เพื่อให้ Alert ถูกส่งไปยังทีมของคุณแบบ Real-time และสามารถตอบสนองต่อปัญหาได้อย่างรวดเร็ว

Components ของ Monitoring Stack

  • Prometheus: Time-Series Database สำหรับเก็บ Metrics
  • Node Exporter: Agent สำหรับส่ง Server Metrics ไป Prometheus
  • Grafana: Visualization Dashboard สำหรับแสดง Metrics
  • AlertManager: ส่ง Alert เมื่อ Metrics เกิด Anomaly
  • cAdvisor: Monitor Docker Container ทั้งหมด (ถ้าใช้ Docker)

สิ่งที่ต้องเตรียมก่อน Workshop

  • Cloud VPS บน ผู้ให้บริการโฮสติ้ง Cloud VPS (แนะนำ 2 Core CPU, 4GB RAM ขึ้นไป)
  • ความรู้พื้นฐานเกี่ยวกับ Linux/Server Administration
  • ความเข้าใจพื้นฐานเกี่ยวกับ Docker (หากต้องการ)
  • Slack หรือ Discord Account สำหรับการแจ้งเตือน

ตัวอย่าง Dashboard ที่จะสร้าง

ในระหว่าง Workshop คุณจะสร้าง Dashboard ที่สามารถแสดง:

  • CPU Usage ในรูปแบบ Graph และ Gauge
  • Memory Usage พร้อมแสดงทั้ง Used และ Available
  • Disk Usage แยกตามพาร์ติชันต่างๆ
  • Network Traffic (In/Out)
  • System Load Average
  • HTTP Response Time (หากเป็น Web Server)
  • ประสิทธิภาพสูงและ Uptime ที่น่าเชื่อถือ สำหรับการตั้ง Monitoring Stack
  • ทีมสนับสนุนทางเทคนิค 24/7 จาก ผู้ให้บริการโฮสติ้ง พร้อมช่วยเหลือ
  • สามารถปรับขนาด Resources ได้ง่าย เมื่อ Monitoring Stack เติบโต
  • ราคาเหมาะสมและมีความยืดหยุ่นสูง

Workshop นี้เหมาะสำหรับ DevOps Engineer, System Administrator และผู้ที่ต้องการเรียนรู้เกี่ยวกับการ Monitoring ระบบ Production อย่างมืออาชีพ