
รู้ทันทีเมื่อ VPS มีปัญหา ก่อนที่ลูกค้าจะรายงาน นั่นคือเป้าหมายของ Server Monitoring ที่ดี บทความนี้จะแนะนำ 2 เครื่องมือที่เป็น Standard ในวงการ ได้แก่ Netdata สำหรับ Real-time Server Metrics และ Uptime Kuma สำหรับ Uptime Monitoring พร้อม Alert ผ่าน Telegram ทั้งคู่ฟรีและ Open Source
ทำไมทุก VPS Production ต้องมี Server Monitoring อย่างครบถ้วน
หลายคนมองข้าม Server Monitoring เพราะคิดว่าซับซ้อนหรือต้องลงทุนสูง แต่ความจริงคือการไม่มี Monitoring มีต้นทุนที่แพงกว่ามาก เมื่อ VPS มีปัญหาและไม่มีระบบแจ้งเตือน ทีมงานมักไม่รู้จนกว่าลูกค้าจะโทรมาร้องเรียน ซึ่งอาจผ่านไปหลายชั่วโมงแล้ว
ปัญหาที่ Monitoring ช่วยตรวจพบได้ก่อนเกิดความเสียหาย ได้แก่ CPU ที่ค่อยๆ พุ่งขึ้นเพราะ Process Leak, RAM ที่ถูก Consume ทีละน้อยจนไม่เหลือ, Disk ที่เต็มอย่างรวดเร็วเพราะ Log File ที่ไม่ได้ตัด และ Network Traffic ที่ผิดปกติซึ่งอาจบ่งบอกถึงการโจมตี
สำหรับเว็บไซต์หรือแอปพลิเคชันที่ให้บริการลูกค้าตลอดเวลา การมีระบบ Monitoring ที่ดีคือการแสดงความรับผิดชอบในระดับมืออาชีพ และช่วยรักษาความไว้วางใจจากลูกค้าได้ในระยะยาว ในยุคที่ผู้ใช้งานคาดหวังความพร้อมใช้งานของระบบตลอด 24 ชั่วโมง การตรวจสอบและแจ้งเตือนเชิงรุกจึงกลายเป็นมาตรฐานขั้นต่ำที่ระบบทุกระบบต้องมี
Netdata vs Uptime Kuma: ใช้อะไรก่อน?
ทั้งสองเครื่องมือทำหน้าที่ต่างกัน ควรใช้คู่กัน:
Netdata
- Real-time CPU, RAM, Disk, Network
- Dashboard สวยงาม อ่านง่าย
- Detect ปัญหา Performance
- Alert เมื่อ Resource สูงผิดปกติ
- Monitor Process, Database, Nginx
Uptime Kuma
- Monitor URL, TCP, HTTP(S)
- Alert ทันทีเมื่อเว็บ Down
- Status Page สาธารณะ
- รองรับ Telegram, Email, Slack
- Ping, DNS, Certificate expiry
ติดตั้ง Netdata บน Ubuntu/Debian
Netdata ติดตั้งด้วยคำสั่งเดียว:
หลังติดตั้งเสร็จ เข้า Dashboard ได้ที่ http://your-server-ip:19999
ป้องกัน Port 19999 ด้วย Nginx Reverse Proxy
ไม่ควร Expose Port 19999 โดยตรง ควรใช้ Nginx เป็น Reverse Proxy พร้อม Basic Auth:
ตั้งค่า Alert ใน Netdata
Netdata มี Alert Rule สำเร็จรูปกว่า 200 ข้อ แต่สามารถปรับได้ใน /etc/netdata/health.d/ ตัวอย่าง Alert CPU สูง:
ติดตั้ง Uptime Kuma ด้วย Docker
วิธีที่ง่ายที่สุดคือใช้ Docker:
เข้า Dashboard ที่ http://your-server-ip:3001 แล้วสร้าง Admin Account
ติดตั้งแบบไม่มี Docker (npm)
เพิ่ม Monitor ใน Uptime Kuma
คลิก Add New Monitor แล้วตั้งค่า:
- Monitor Type: HTTP(s) สำหรับเว็บ, TCP สำหรับ Port, Ping สำหรับ Server
- URL/IP: URL ที่ต้องการ Monitor
- Heartbeat Interval: 60 วินาที (แนะนำ)
- Retries: 3 ครั้ง ก่อนแจ้ง Down
ตารางเปรียบเทียบ Monitoring Stack ยอดนิยม
ก่อนเลือกใช้เครื่องมือ Monitoring ควรเปรียบเทียบตัวเลือกที่มีในตลาดอย่างละเอียด เพื่อให้เหมาะกับขนาดและงบประมาณของโปรเจกต์
| เครื่องมือ | ประเภท | ความยาก | RAM ที่ใช้ | เหมาะกับ |
|---|---|---|---|---|
| Netdata | Real-time metrics | ง่าย | 50–100 MB | VPS ทั่วไป |
| Uptime Kuma | Uptime monitoring | ง่าย | 80–120 MB | ทุกขนาด |
| Prometheus + Grafana | Metrics + Dashboard | ยาก | 300–500 MB | องค์กรใหญ่ |
| Zabbix | Enterprise monitoring | ยากมาก | 500 MB+ | Enterprise |
| Datadog | Cloud-based SaaS | ปานกลาง | Agent ~50 MB | ทีมที่มีงบ |
ตั้งค่า Netdata Cloud (Optional)
Netdata มีบริการ Cloud ฟรีที่รวม Dashboard จาก Server หลายเครื่องไว้ที่เดียว พร้อม Alert และ Anomaly Detection อัตโนมัติ ซึ่งมีประโยชน์มากเมื่อดูแล VPS หลายตัว
เชื่อมต่อ Netdata กับ Cloud
หลังติดตั้ง Netdata แล้ว รันคำสั่งต่อไปนี้เพื่อเชื่อมต่อกับ Cloud Account:
netdata-claim.sh -token=YOUR_CLAIM_TOKEN \
-rooms=YOUR_ROOM_ID \
-url=https://app.netdata.cloud
Token และ Room ID หาได้จาก Dashboard บน app.netdata.cloud หลัง Sign Up ฟรี เมื่อเชื่อมต่อสำเร็จจะเห็น Node ใน Cloud Dashboard ภายใน 1-2 นาที
ประโยชน์ของ Netdata Cloud
- ดู Metrics จาก VPS หลายตัวบน Dashboard เดียว
- รับ Alert ผ่าน Email โดยตรงจาก Cloud (ไม่ต้องตั้ง SMTP เอง)
- Anomaly Detection — ตรวจจับพฤติกรรมผิดปกติด้วย ML อัตโนมัติ
- Metric Correlation — หาความสัมพันธ์ระหว่าง Metric ต่างๆ เมื่อเกิดปัญหา
- Free Plan รองรับ Server ไม่จำกัดจำนวน (เก็บ Historical Data 14 วัน)
ตั้งค่า Telegram Notification
สร้าง Telegram Bot และรับ Token:
- เปิด Telegram แล้วหา @BotFather
- พิมพ์ /newbot แล้วตั้งชื่อ Bot
- คัดลอก API Token ที่ได้รับ
- หา Chat ID ของคุณที่
@userinfobot - ใน Uptime Kuma ไปที่ Settings → Notifications → Add → Telegram
- ใส่ Bot Token และ Chat ID
ตั้งค่า Status Page สาธารณะด้วย Uptime Kuma
Uptime Kuma มีฟีเจอร์สร้าง Status Page สาธารณะที่ลูกค้าสามารถดูสถานะระบบได้เองโดยไม่ต้องติดต่อ Support ซึ่งช่วยลดคำถามซ้ำๆ และสร้างความโปร่งใส
วิธีสร้าง Status Page
- ใน Uptime Kuma คลิก Status Page ในเมนูซ้าย
- คลิก New Status Page ตั้งชื่อและ Slug เช่น
status - เลือก Monitor ที่ต้องการแสดงบน Status Page
- ตั้งค่า Custom Domain เช่น
status.yourdomain.comโดยชี้ DNS CNAME ไปยัง VPS - เปิดใช้งานหน้า Status Page และแชร์ URL ให้ลูกค้า
ตั้งค่า CNAME สำหรับ Status Page
เพิ่ม CNAME Record ใน DNS ของโดเมน:
status CNAME your-vps-ip.example.com 3600
จากนั้นตั้งค่า Nginx ให้ Proxy ไปยัง Uptime Kuma บน Port 3001:
server {
listen 80;
server_name status.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Best Practice: Monitoring Checklist สำหรับ VPS Production
ก่อน Deploy แอปพลิเคชันบน VPS จริง ควรมีระบบ Monitoring ครบตาม Checklist ดังนี้เพื่อรับรองความพร้อมของระบบ
- Infrastructure Monitoring: ติดตั้ง Netdata หรือเครื่องมือเทียบเท่า เพื่อดู CPU/RAM/Disk/Network แบบ Real-time
- Uptime Monitoring: ตั้งค่า Uptime Kuma ให้ Ping URL หลักทุก 60 วินาที พร้อม Alert ทันทีเมื่อ Down
- Disk Alert: ตั้ง Alert เมื่อ Disk ใช้เกิน 80% เพราะ Disk เต็มทำให้ Service ล้มทั้งหมด
- SSL Expiry Alert: ตั้ง Uptime Kuma ให้แจ้งเตือนเมื่อ SSL Certificate ใกล้หมดอายุ (ก่อน 30 วัน)
- Backup Verification: ตรวจสอบว่า Backup สำเร็จทุกวัน ด้วย Script ส่ง Notification เมื่อ Backup เสร็จหรือผิดพลาด
- Log Monitoring: ตั้ง Alert เมื่อมี Error Rate สูงผิดปกติใน Application Log หรือ Nginx Error Log
- Database Monitoring: ตรวจสอบ MySQL/PostgreSQL Slow Query และ Connection Count เป็นประจำ
- Status Page: สร้าง Public Status Page เพื่อความโปร่งใสกับลูกค้า
การมี Monitoring ครบถ้วนช่วยให้ทีมทราบปัญหาก่อนลูกค้า และลดเวลาแก้ไข (Mean Time to Recover) ได้อย่างมีนัยสำคัญ สำหรับ VPS ที่ให้บริการแบบ 24 ชั่วโมงต่อวัน การตอบสนองเร็วคือปัจจัยสำคัญที่แยก Professional กับ Amateur
ตั้งค่า Alert CPU/RAM สูงผ่าน Bash Script
ถ้าไม่ต้องการใช้ Netdata ก็ทำ Simple Alert ด้วย Script + Cron ได้:
การตั้งค่า Log Monitoring และ Disk Alert ขั้นพื้นฐาน
นอกจาก CPU และ RAM แล้ว Disk และ Log เป็นอีกสองส่วนที่ต้องตรวจสอบเป็นประจำ เพราะ Disk เต็มคือสาเหตุอันดับต้นๆ ที่ทำให้ Service ล้มฉับพลันโดยไม่มีสัญญาณเตือนล่วงหน้า
ตั้ง Cron Job ตรวจ Disk อัตโนมัติ
สร้างสคริปต์ตรวจ Disk และแจ้งเตือนทาง Telegram เมื่อใช้เกิน 80%:
#!/bin/bash
# /usr/local/bin/disk-alert.sh
THRESHOLD=80
USAGE=$(df / | awk 'NR==2{print $5}' | tr -d '%')
HOSTNAME=$(hostname)
if [ "$USAGE" -gt "$THRESHOLD" ]; then
MSG="DISK ALERT: ${USAGE}% used on ${HOSTNAME}"
curl -s "https://api.telegram.org/bot${TOKEN}/sendMessage" \
-d chat_id="${CHAT_ID}" \
-d text="${MSG}"
fi
เพิ่ม Cron Job รันทุก 30 นาที:
*/30 * * * * /usr/local/bin/disk-alert.sh
Log Monitoring ด้วย Netdata
Netdata สามารถอ่าน Log ไฟล์และนับ Error Rate ได้ผ่าน Plugin ที่ชื่อ go.d ตัวอย่างการตั้งค่าดู Error ใน Nginx Access Log:
# /etc/netdata/go.d/web_log.conf
jobs:
- name: nginx
path: /var/log/nginx/access.log
log_type: nginx
หลังตั้งค่าแล้ว Netdata จะแสดง Request Rate, Error Rate (4xx/5xx) และ Response Time ของ Nginx บน Dashboard อัตโนมัติ ทำให้ทราบทันทีเมื่อมี Error Rate พุ่งขึ้นผิดปกติ ซึ่งมักเป็นสัญญาณแรกที่บ่งบอกว่า Application มีปัญหา
ทำไม VPS AsiaGB จึงเหมาะสำหรับรัน Monitoring Stack
AsiaGB VPS มาพร้อมกับ Full Root Access ทุกแพ็กเกจ ทำให้สามารถติดตั้งและตั้งค่า Netdata, Uptime Kuma, Docker และ Cron Jobs ได้อย่างอิสระโดยไม่มีข้อจำกัดจาก Shared Hosting คุณสมบัติที่ตอบโจทย์งาน Monitoring โดยเฉพาะ ได้แก่:
- Full Root Access: ติดตั้ง Package ใดก็ได้ ตั้งค่า Firewall เอง ไม่มีข้อจำกัดจาก Control Panel
- SSD Storage: Disk I/O สูงช่วยให้ Netdata อ่าน Metric และเขียน Log ได้เร็วโดยไม่กระทบ Performance หลัก
- Docker Support: รัน Uptime Kuma ผ่าน Docker Container ได้ทันที ไม่ต้องติดตั้ง Dependency เพิ่ม
- ที่ตั้ง 2 แห่ง: ไทย (CSL) และสิงคโปร์ (OVHcloud) เลือกตาม Latency ที่เหมาะกับผู้ใช้
- Uptime 99%: SLA ที่มั่นคง เหมาะกับ Monitoring Server ที่ต้องออนไลน์ตลอดเวลา
- ราคาเริ่มต้น 500 บาท/เดือน: ประหยัดพอที่จะรัน Monitoring VPS แยกต่างหากจาก Production VPS
หากต้องการ Monitoring Stack ที่แข็งแกร่งจริงๆ แนะนำให้ใช้ VPS 2 ตัว ตัวแรกสำหรับ Application หลัก และตัวที่สองสำหรับรัน Uptime Kuma เพื่อ Monitor ตัวแรก ซึ่งทำให้ Alert ยังทำงานได้แม้ VPS Production จะล่ม
AsiaGB VPS เริ่มต้น 500 บาท/เดือน รัน Netdata และ Uptime Kuma ได้พร้อมกัน Full Root Access, SSD, ที่ตั้ง: ไทย (CSL) + สิงคโปร์ (OVHcloud) Uptime 99%
VPS พร้อมตั้ง Server Monitoring
VPS เริ่มต้น 500 บาท/เดือน Full Root Access, Docker, SSD ที่ตั้ง ไทย + สิงคโปร์ Uptime 99%
ดูแพ็กเกจ VPS