Monitor VPS ให้รู้ก่อนล่ม: Netdata, UptimeRobot และวิธีตั้ง Alert

VPS ที่ไม่มีระบบ Monitoring เปรียบเหมือนรถยนต์ที่ไม่มีแผงหน้าปัด คุณขับไปเรื่อย ๆ โดยไม่รู้ว่าน้ำมันกำลังจะหมด เครื่องกำลังจะร้อน หรือยางกำลังจะแตก การ Monitor VPS ช่วยให้คุณรับรู้ปัญหาก่อนที่จะลุกลามจนเว็บล่มหรือข้อมูลเสียหาย บทความนี้จะพาคุณตั้งระบบ Monitoring แบบครบวงจรด้วยเครื่องมือที่ใช้ได้ฟรีและติดตั้งง่าย

ทำไมต้อง Monitor VPS?

เมื่อ VPS มีปัญหา สิ่งที่เกิดขึ้นส่วนใหญ่ไม่ได้เกิดขึ้นแบบทันทีทันใด แต่มักมีสัญญาณเตือนล่วงหน้าเสมอ ไม่ว่าจะเป็น CPU ที่ค่อย ๆ พุ่งสูงขึ้นเนื่องจากมีกระบวนการที่ทำงานหนักเกินไป RAM ที่ถูกใช้จนเกือบเต็มทำให้ระบบเริ่มใช้ Swap Disk ที่กำลังจะเต็มจนไม่สามารถบันทึก Log หรือ Upload ไฟล์ได้ หรือ Network ที่รับ Traffic ผิดปกติจนอาจเป็นสัญญาณของการโจมตี

ระบบ Monitoring ที่ดีจะ

สิ่งที่ควร Monitor บน VPS

ก่อนติดตั้งเครื่องมือ ควรทำความเข้าใจก่อนว่ามีตัวชี้วัดอะไรบ้างที่ต้องติดตาม

กฎ 3-2-1 สำหรับ VPS Monitoring: ใช้ทั้ง External Monitoring (จากภายนอก เช่น UptimeRobot) และ Internal Monitoring (จากภายใน เช่น Netdata) ควบคู่กัน เพราะแต่ละแบบตรวจจับปัญหาที่ต่างกัน

Metrics ที่ต้องเฝ้า: ค่าปกติ vs ค่าอันตราย

การ Monitor VPS ให้ได้ผลต้องรู้ก่อนว่าแต่ละตัวชี้วัด "ค่าปกติ" อยู่ที่เท่าไร และเมื่อไรที่ควรเริ่มกังวล ตารางด้านล่างสรุปเกณฑ์ที่ใช้ได้จริงสำหรับ VPS ขนาดทั่วไป เพื่อให้คุณตั้ง Threshold แจ้งเตือนได้อย่างเหมาะสม ไม่ตื่นตูมเกินไปและไม่ปล่อยปละจนสายเกินแก้

Metric ค่าปกติ ค่าที่ต้องเฝ้า คำสั่งดูเร็ว ๆ
CPU < 70% > 90% นานเกิน 5 นาที top / htop
RAM < 80% Swap เริ่มถูกใช้หนัก free -h
Disk Space < 75% > 85% (ต้องลงมือก่อนเต็ม) df -h
Load Average < จำนวน Core > Core × 1.5 uptime
Network สม่ำเสมอตาม Traffic พุ่งสูงผิดปกติ (อาจถูกโจมตี) vnstat / iftop
Uptime เข้าถึงได้ต่อเนื่อง Response time > 2 วินาที UptimeRobot

หลักคิดง่าย ๆ คือ "ค่าที่ต้องเฝ้า" ไม่ได้แปลว่าระบบล่มทันที แต่เป็นจุดที่ควรเข้าไปดูว่าเกิดอะไรขึ้น โดยเฉพาะ Disk Space ที่ควรลงมือก่อนถึง 100% เสมอ เพราะเมื่อ Disk เต็มจริง Database และเว็บไซต์จะหยุดเขียนข้อมูลทันที กู้คืนยากกว่าการป้องกันมาก

เครื่องมือ Monitoring ยอดนิยม: เลือกตัวไหนดี

เครื่องมือ Monitoring มีหลายแบบ ตั้งแต่ติดตั้งง่ายใน 1 นาทีไปจนถึงระบบ Enterprise ที่ปรับแต่งได้ละเอียด การเลือกขึ้นอยู่กับว่าคุณต้องการแค่ "รู้ว่าเว็บล่มหรือยัง" หรือต้องการ Dashboard กราฟย้อนหลังแบบมืออาชีพ ตารางนี้เปรียบเทียบ 4 ตัวที่นิยมที่สุด

เครื่องมือ ประเภท เด่นเรื่อง ความยากติดตั้ง
Netdata Internal (บน VPS) Real-time Dashboard ละเอียด ติดตั้งคำสั่งเดียว ง่ายมาก
UptimeRobot External (Cloud) ตรวจ Uptime จากภายนอก แจ้งเตือนเมื่อเว็บล่ม ง่าย (ไม่ต้องลงอะไรบน VPS)
Uptime Kuma Self-hosted External Open Source แทน UptimeRobot โฮสต์เอง ไม่จำกัด Monitor ปานกลาง (ใช้ Docker)
Grafana + Prometheus Internal (Stack) กราฟย้อนหลังระยะยาว ปรับแต่งได้สุด เหมาะหลายเซิร์ฟเวอร์ ยาก (ตั้งค่าหลายชั้น)

สำหรับผู้เริ่มต้นและเว็บไซต์เดียว แนะนำ Netdata + UptimeRobot ก็เพียงพอและฟรี ส่วนใครที่ดูแลหลาย VPS หรือต้องการเก็บข้อมูลย้อนหลังเป็นเดือน ๆ เพื่อวางแผน Capacity ค่อยขยับไปใช้ Grafana + Prometheus ส่วน Uptime Kuma เหมาะกับคนที่อยากได้ External Monitoring แบบโฮสต์เองเพื่อความเป็นส่วนตัวและไม่ติดข้อจำกัดของแผนฟรี

UptimeRobot — External Monitoring ฟรี

UptimeRobot เป็นบริการ Monitoring ภายนอกที่ได้รับความนิยมสูงสุด ตรวจสอบว่าเว็บไซต์ของคุณสามารถเข้าถึงได้จากอินเทอร์เน็ตทุก 5 นาที แผน Free รองรับ Monitor ได้ 50 ตัว พร้อม Alert ทาง Email และ Webhook (ส่ง LINE ได้ด้วย)

วิธีสมัครและตั้งค่า UptimeRobot

  1. ไปที่ uptimerobot.com และสมัครบัญชีฟรีด้วย Email
  2. คลิก Add New Monitor ในหน้า Dashboard
  3. เลือก Monitor Type เป็น HTTP(s) สำหรับเว็บไซต์ทั่วไป หรือ Ping สำหรับ IP Address ของ VPS ตรง ๆ
  4. ใส่ Friendly Name (เช่น "My VPS Website") และ URL ของเว็บ
  5. ตั้ง Monitoring Interval เป็น 5 minutes (แผนฟรีสูงสุด)
  6. ในส่วน Alert Contacts ให้เพิ่ม Email หรือตั้ง Webhook สำหรับ LINE Notify
  7. คลิก Create Monitor

ตั้งค่า Alert ผ่าน LINE Notify

UptimeRobot รองรับ Webhook ซึ่งสามารถเชื่อมต่อกับ LINE Notify ได้ผ่านเซอร์วิส Integromat หรือ Make.com โดยตั้งให้ส่งข้อความไปยัง LINE เมื่อเว็บไซต์ล่มหรือกลับมาออนไลน์ ทำให้คุณรับแจ้งเตือนได้ทันทีแม้ไม่ได้อยู่หน้าคอมพิวเตอร์

ข้อดีของ External Monitoring: UptimeRobot ตรวจสอบจากเซิร์ฟเวอร์หลายแห่งทั่วโลก ถ้าเว็บล่มเพราะ VPS ดับหรือ Network มีปัญหา ระบบก็ยังแจ้งเตือนคุณได้ เพราะตัว Monitoring เองไม่ได้รันอยู่บน VPS ของคุณ

Netdata — Real-time Dashboard บน VPS

Netdata เป็นเครื่องมือ Monitoring แบบ Open Source ที่ติดตั้งลงบน VPS โดยตรง และให้ Dashboard แบบ Real-time ที่สวยงามและละเอียดมาก ครอบคลุมทั้ง CPU, RAM, Disk I/O, Network, Processes, Docker Containers และอื่น ๆ อีกมากมาย โดยไม่ต้องตั้งค่าอะไรเพิ่มเติม

ติดตั้ง Netdata ด้วยคำสั่งเดียว

Netdata มี Script ติดตั้งอัตโนมัติที่รองรับ Ubuntu, Debian, CentOS และ distro อื่น ๆ เพียงรันคำสั่งเดียว

wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
bash /tmp/netdata-kickstart.sh --nightly-channel --dont-start-it

หลังติดตั้งเสร็จ ให้เริ่มและตรวจสอบสถานะ Service

systemctl start netdata
systemctl enable netdata
systemctl status netdata

Netdata จะรันบน Port 19999 เปิด Browser แล้วไปที่ http://YOUR_VPS_IP:19999 จะเห็น Dashboard แบบ Real-time ทันที

ข้อควรระวังด้าน Security สำหรับ Netdata

ค่าเริ่มต้น Netdata เปิด Port 19999 สำหรับทุก IP ซึ่งเป็นความเสี่ยงด้านความปลอดภัย เพราะ Dashboard แสดงข้อมูลระบบที่ละเอียดซึ่งไม่ควรให้บุคคลภายนอกเห็น ให้ปิด Public Access ด้วยวิธีใดวิธีหนึ่งดังนี้

วิธีที่ 1: จำกัด IP ด้วย UFW

# อนุญาตเฉพาะ IP ของคุณ
ufw allow from YOUR_HOME_IP to any port 19999
# ปิดการเข้าถึงจากอื่น ๆ (ถ้ายังไม่ได้ตั้ง default deny)
ufw deny 19999

วิธีที่ 2: ผูก Netdata ไว้กับ Localhost เท่านั้น

# แก้ไขไฟล์ /etc/netdata/netdata.conf
[web]
    bind to = 127.0.0.1

จากนั้นใช้ SSH Tunnel เพื่อเข้าถึง Dashboard อย่างปลอดภัย

# รันบนเครื่องของคุณ (ไม่ใช่ VPS)
ssh -L 19999:localhost:19999 user@YOUR_VPS_IP
# จากนั้นเปิด http://localhost:19999 ในเบราว์เซอร์

Glances — Quick Check จาก Command Line

บางครั้งคุณแค่ต้องการดูภาพรวมของ VPS อย่างรวดเร็วผ่าน SSH โดยไม่ต้องเปิด Browser Glances คือเครื่องมือที่ตอบโจทย์นี้ แสดง CPU, Memory, Load, Network, Disk และ Processes ทั้งหมดในหน้าจอเดียว อัปเดตทุกวินาที

ติดตั้ง Glances

# ติดตั้งผ่าน pip (แนะนำ ได้เวอร์ชันล่าสุด)
pip3 install glances

# หรือติดตั้งผ่าน apt
apt install glances -y

วิธีใช้งาน Glances

# รันแบบ Terminal UI
glances

# รัน Web Server Mode (เข้าถึงผ่าน Browser ที่ port 61208)
glances -w

# รูปแบบย่อ (แสดงข้อมูลน้อยลง เหมาะกับหน้าจอแคบ)
glances --byte

Glances ยังรองรับการ Export ข้อมูลไปยัง InfluxDB, Elasticsearch หรือ CSV ทำให้สามารถนำข้อมูลไปวิเคราะห์เพิ่มเติมได้ในภายหลัง

ตั้ง Email Alert เมื่อ Disk ใช้เกิน 80%

สำหรับการแจ้งเตือนอัตโนมัติเมื่อ Disk ใกล้เต็ม คุณสามารถสร้าง Shell Script ง่าย ๆ และตั้ง Cron Job ให้ทำงานอัตโนมัติทุกชั่วโมงได้ โดยไม่ต้องพึ่งซอฟต์แวร์ใด ๆ

สร้าง Script ตรวจสอบ Disk

nano /usr/local/bin/disk-alert.sh

ใส่เนื้อหาต่อไปนี้ในไฟล์

#!/bin/bash
THRESHOLD=80
EMAIL="[email protected]"
HOSTNAME=$(hostname)

df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
  USAGE=$(echo $output | awk '{ print $1}' | cut -d'%' -f1)
  PARTITION=$(echo $output | awk '{ print $2 }')
  if [ $USAGE -ge $THRESHOLD ]; then
    echo "WARNING: ${HOSTNAME} Disk ${PARTITION} is ${USAGE}% full" | \
    mail -s "Disk Alert: ${HOSTNAME} ${PARTITION} ${USAGE}% Used" "$EMAIL"
  fi
done

ทำให้ Script สามารถรันได้และทดสอบ

chmod +x /usr/local/bin/disk-alert.sh
bash /usr/local/bin/disk-alert.sh

ตั้ง Cron Job ให้รันทุกชั่วโมง

crontab -e

# เพิ่มบรรทัดนี้
0 * * * * /usr/local/bin/disk-alert.sh

หมายเหตุ: Script นี้ต้องการ mailutils ติดตั้งบน VPS ก่อน ด้วยคำสั่ง apt install mailutils -y และต้องมีการตั้งค่า SMTP หรือ Sendmail สำหรับส่ง Email ออก

Checklist: ทำอะไรเมื่อ CPU Spike?

เมื่อได้รับแจ้งเตือนว่า CPU สูงผิดปกติ ให้ทำตามขั้นตอนเหล่านี้อย่างเป็นระบบ

  1. ดูว่า Process ใดกิน CPU มากที่สุด: รัน top หรือ htop แล้วกด P เพื่อเรียงตาม CPU Usage ดูว่า Process ใดขึ้นอันดับต้น
  2. ตรวจสอบ Log ของ Process นั้น: เช่น ถ้าเป็น Apache ให้ดู /var/log/apache2/error.log หรือ MySQL ให้ดู /var/log/mysql/error.log
  3. Restart Service ที่มีปัญหา: ถ้าแน่ใจว่า Process นั้นทำงานผิดปกติ ให้ Restart ด้วย systemctl restart servicename
  4. ตรวจ Memory และ Swap: รัน free -h ดูว่า Swap ถูกใช้มากแค่ไหน ถ้า Swap เต็มด้วยอาจต้อง Restart ระบบ
  5. ดู Network Connection: รัน netstat -an | grep ESTABLISHED | wc -l เพื่อดูจำนวน Connection ถ้ามากผิดปกติอาจถูก DDoS
  6. พิจารณา Scale Up: ถ้า CPU spike เกิดบ่อยและมาจาก Traffic ที่เพิ่มขึ้นตามปกติ ถึงเวลา Upgrade RAM หรือ CPU ของ VPS

แนะนำ: ใช้ UptimeRobot + Netdata คู่กัน

แนวทางที่ได้ผลดีที่สุดสำหรับ VPS Monitoring คือการใช้ทั้งสองเครื่องมือควบคู่กัน เพราะทั้งสองมีจุดแข็งที่ต่างกันและเสริมกัน

ตัวอย่าง Flow: UptimeRobot แจ้งว่าเว็บล่ม → คุณเปิด Netdata ดูว่า CPU 100% หรือ Disk เต็ม → แก้ไขปัญหาได้ตรงจุดภายในไม่กี่นาที แทนที่จะต้องเดาสาเหตุไปเรื่อย ๆ

สรุปเครื่องมือที่แนะนำ: UptimeRobot (External, ฟรี) + Netdata (Internal Dashboard, ฟรี, Open Source) + Script + Cron สำหรับ Disk Alert = ระบบ Monitoring ครบวงจรที่ไม่เสียเงินสักบาท

ตั้ง Alert แจ้งเตือนเมื่อเกิน Threshold

การมี Dashboard สวย ๆ ไม่มีประโยชน์ถ้าคุณไม่ได้นั่งเฝ้าหน้าจอตลอด 24 ชั่วโมง หัวใจของ Monitoring ที่ดีคือ Alert ที่ส่งมาหาคุณเองเมื่อค่าเกิน Threshold ที่ตั้งไว้ เพื่อให้คุณเข้าไปแก้ได้ก่อนปัญหาลุกลาม การตั้ง Alert ที่ดีมีหลักการสำคัญดังนี้

Netdata มีระบบ Health Alarm ในตัว สามารถแก้ไฟล์ในโฟลเดอร์ /etc/netdata/health.d/ เพื่อกำหนดเงื่อนไขและช่องทางแจ้งเตือนเองได้ ส่วน UptimeRobot ตั้ง Alert ผ่านหน้า Dashboard ได้ทันที สำหรับ Disk โดยเฉพาะ ใช้ Shell Script + Cron ในหัวข้อก่อนหน้าได้เลย ตัวอย่างการเตือนเมื่อ RAM เหลือน้อยด้วย Script ง่าย ๆ:

#!/bin/bash
# เตือนเมื่อ RAM ว่างเหลือน้อยกว่า 10%
FREE=$(free | awk '/Mem/{printf("%.0f", $7/$2*100)}')
if [ "$FREE" -lt 10 ]; then
  echo "WARNING: RAM available only ${FREE}% on $(hostname)" | \
  mail -s "RAM Alert: $(hostname)" [email protected]
fi

ตั้ง Cron ให้รันทุก 10 นาทีด้วย */10 * * * * /usr/local/bin/ram-alert.sh เท่านี้คุณก็มีระบบเตือน RAM แบบเบาเครื่องโดยไม่ต้องพึ่งซอฟต์แวร์เพิ่ม

Log Monitoring เบื้องต้น

นอกจากตัวเลขทรัพยากร Log ของระบบและแอปพลิเคชันคือแหล่งข้อมูลสำคัญที่บอกว่าเกิดอะไรขึ้นจริง ๆ การไล่ดู Log เป็นทักษะพื้นฐานที่ช่วยให้คุณวินิจฉัยปัญหาได้เร็วขึ้นมาก ไฟล์ Log ที่ควรรู้จักบน Linux VPS มีดังนี้

คำสั่งที่ใช้บ่อยที่สุดคือ tail -f ซึ่งจะแสดง Log แบบ Real-time ขณะเกิดเหตุ และ grep สำหรับค้นหาคำเฉพาะ เช่น

# ดู Log แบบ Real-time ขณะ debug
tail -f /var/log/nginx/error.log

# นับจำนวนความพยายาม Login ที่ล้มเหลว
grep "Failed password" /var/log/auth.log | wc -l

# ดู 50 บรรทัดล่าสุดของ Log ระบบ
journalctl -n 50 --no-pager

ถ้าต้องการระบบ Log ที่ค้นหาง่ายขึ้นในระยะยาว สามารถต่อยอดไปใช้ journalctl (มากับ systemd) หรือติดตั้ง Stack อย่าง Loki + Grafana เพื่อรวม Log จากหลายเซิร์ฟเวอร์ไว้ที่เดียว แต่สำหรับ VPS เดียว การ tail และ grep ก็เพียงพอสำหรับงานประจำวันแล้ว

คำถามที่พบบ่อยเรื่อง Monitor VPS

ควร Monitor VPS บ่อยแค่ไหน?

Internal Monitoring อย่าง Netdata เก็บข้อมูลแบบ Real-time ทุกวินาทีอยู่แล้ว ส่วน External Monitoring อย่าง UptimeRobot แผนฟรีตรวจทุก 5 นาที ซึ่งเพียงพอสำหรับเว็บไซต์ทั่วไป ถ้าเป็นบริการที่ต้องการความเสถียรสูงมาก อาจลดเหลือ 1 นาทีในแผนเสียเงิน สิ่งสำคัญกว่าความถี่คือการตั้ง Alert ให้แจ้งเตือนทันทีเมื่อเกิดปัญหา

Monitoring กิน Resource ของ VPS มากไหม?

เครื่องมืออย่าง Netdata และ Glances ออกแบบมาให้กิน Resource น้อยมาก โดยทั่วไปใช้ CPU และ RAM เพียงเล็กน้อย ไม่กระทบประสิทธิภาพเว็บไซต์อย่างมีนัยสำคัญ ถ้ากังวลเรื่อง RAM บน VPS ขนาดเล็ก สามารถปรับ Netdata ให้เก็บข้อมูลย้อนหลังสั้นลงได้ในไฟล์ config

VPS ของ AsiaGB มี Uptime เท่าไร และติดตั้ง Monitoring ได้ไหม?

VPS ของ AsiaGB ให้ Uptime 99% และมาพร้อม Full Root Access คุณจึงติดตั้ง Netdata, Glances, Uptime Kuma หรือ Stack อย่าง Grafana + Prometheus ได้อย่างอิสระ VPS Linux เริ่มต้นที่ 500 บาท/เดือน ดาต้าเซ็นเตอร์ไทยและสิงคโปร์

External กับ Internal Monitoring ต่างกันอย่างไร ต้องใช้ทั้งคู่ไหม?

External Monitoring (เช่น UptimeRobot) ตรวจจากภายนอกว่าเว็บเข้าถึงได้หรือไม่ ทำงานได้แม้ VPS ดับสนิท ส่วน Internal Monitoring (เช่น Netdata) บอกรายละเอียดทรัพยากรภายในเครื่อง แนะนำให้ใช้ทั้งคู่ควบคู่กัน เพราะ External บอกว่า "มีปัญหา" และ Internal บอกว่า "ปัญหาคืออะไร"

VPS AsiaGB พร้อมให้คุณ Monitor ได้ทันที

Full Root Access ติดตั้ง Netdata, Glances และเครื่องมือ Monitoring ได้เลย VPS Linux เริ่มต้น 500 บาท/เดือน ดาต้าเซ็นเตอร์ไทย และ สิงคโปร์

ดู VPS AsiaGB

ดูแพ็กเกจ VPS ไทย ราคาถูกทั้งหมด →