
📋 สารบัญ
การมอนิเตอร์ VPS แบบ real-time เป็นสิ่งจำเป็นสำหรับทุกคนที่รันเว็บไซต์หรือแอปพลิเคชันบนเซิร์ฟเวอร์ Netdata คือเครื่องมือ open-source ฟรีที่ช่วยให้คุณดู CPU, RAM, Disk I/O, Network Traffic และอีกกว่า 2,000 metric แบบ real-time ผ่านหน้า web dashboard สวยงาม ติดตั้งง่าย ใช้งานได้ทันที
1. Netdata คืออะไร ทำไมต้องใช้?
Netdata เป็น monitoring agent แบบ lightweight ที่เก็บ metric ทุก 1 วินาที ต่างจาก tool อื่นที่เก็บทุก 10-60 วินาที ทำให้เห็น spike ของ CPU หรือ RAM ได้แม่นยำกว่า
✅ ข้อดีหลักของ Netdata: ติดตั้งง่าย 1 คำสั่ง, dashboard ใช้งานได้ทันที, รองรับ plugin กว่า 300 ตัว (Nginx, MySQL, Docker, Redis ฯลฯ), ฟรี 100% สำหรับ self-hosted
Netdata เหมาะกับ use case เหล่านี้:
- ดู Resource usage แบบ real-time ระหว่าง deploy หรือ load test
- ตั้ง alert แจ้งเตือนเมื่อ CPU หรือ RAM สูงผิดปกติ
- วินิจฉัยปัญหา performance ของ web server, database
- วางแผน scale up หรือ upgrade VPS
2. ความต้องการของระบบ
Netdata รองรับ Linux distro หลักทุกตัว ความต้องการขั้นต่ำ:
| Component | ขั้นต่ำ | แนะนำ |
|---|---|---|
| RAM | 512 MB | 1 GB+ |
| CPU | 1 vCore | 2 vCore+ |
| Disk | 200 MB (SSD) | 1 GB+ สำหรับ retention |
| OS | Ubuntu 20.04+ | Ubuntu 22.04 / Debian 12 |
| Network | Port 19999 (local) | HTTPS via reverse proxy |
ℹ️ หมายเหตุ: VPS AsiaGB ทุกแพ็กเกจใช้ SSD และ Ubuntu/Debian รองรับ Netdata ครบทุก feature
3. ติดตั้ง Netdata บน Ubuntu/Debian
วิธีที่ง่ายที่สุดคือใช้ official installer script ของ Netdata:
# อัพเดต package list ก่อน
sudo apt update && sudo apt upgrade -y
# ติดตั้ง Netdata ด้วย one-line installer
wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh
sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry
ตัวเลือก flag ที่สำคัญ:
--stable-channel— ติดตั้ง stable release แทน nightly--disable-telemetry— ปิดการส่ง anonymous usage stats--dont-start-it— ติดตั้งแต่ไม่เปิด service อัตโนมัติ
ติดตั้งผ่าน APT (Ubuntu/Debian)
# เพิ่ม Netdata APT repository
curl -s https://packagecloud.io/install/repositories/netdata/netdata/script.deb.sh | sudo bash
# ติดตั้ง
sudo apt install netdata -y
# เปิด service
sudo systemctl enable netdata
sudo systemctl start netdata
ตรวจสอบสถานะ
sudo systemctl status netdata
# ควรเห็น: Active: active (running)
4. เข้าถึง Dashboard
หลังติดตั้ง Netdata จะรันบน port 19999 เข้าถึงได้ด้วย URL:
http://YOUR_VPS_IP:19999
⚠️ ความปลอดภัย: อย่าเปิด port 19999 บน public internet โดยตรง ใช้ SSH tunnel หรือ Nginx reverse proxy ดังที่อธิบายในหัวข้อถัดไป
เข้าถึงผ่าน SSH Tunnel (วิธีปลอดภัยที่สุด)
# รันบน local machine ของคุณ
ssh -L 19999:localhost:19999 user@YOUR_VPS_IP -N
# แล้วเปิด browser ไปที่
http://localhost:19999
5. ทำให้ Dashboard ปลอดภัย ด้วย Nginx Reverse Proxy
ถ้าต้องการเข้าถึง Netdata ผ่าน domain พร้อม HTTPS ให้ตั้งค่า Nginx reverse proxy:
sudo apt install nginx -y
# สร้าง config file
sudo nano /etc/nginx/sites-available/netdata
ใส่เนื้อหานี้:
upstream netdata {
server 127.0.0.1:19999;
}
server {
listen 443 ssl;
server_name monitor.example.com;
ssl_certificate /etc/letsencrypt/live/monitor.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/monitor.example.com/privkey.pem;
auth_basic "Netdata Monitoring";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://netdata;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# สร้าง password
sudo htpasswd -c /etc/nginx/.htpasswd admin
# เปิด config
sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
6. ตั้งค่า Alert แจ้งเตือน
Netdata มี alert system ในตัว สามารถส่งแจ้งเตือนผ่าน email, Slack, Telegram, PagerDuty และอื่นๆ
ตั้งค่า Email Alert
sudo nano /etc/netdata/health_alarm_notify.conf
# Email settings
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="[email protected]"
# ตั้งค่า SMTP (ถ้าใช้ Gmail)
SMTP_SENDER="[email protected]"
ตั้งค่า Telegram Alert
SEND_TELEGRAM="YES"
TELEGRAM_BOT_TOKEN="YOUR_BOT_TOKEN"
DEFAULT_RECIPIENT_TELEGRAM="YOUR_CHAT_ID"
💡 Tip: Netdata มี alert rule สำเร็จรูปหลายร้อยตัว เช่น CPU >90%, RAM >85%, Disk >80%, การตรวจสอบ network error rate ฯลฯ ไม่ต้องเขียนเอง
ทดสอบ Alert
/usr/libexec/netdata/plugins.d/alarm-notify.sh test
7. เปิดใช้ Plugin เพิ่มเติม
Netdata รองรับ plugin หลายร้อยตัว ส่วนใหญ่ auto-detect ไม่ต้องตั้งค่า:
| Plugin | Monitor อะไร | Auto-detect |
|---|---|---|
| Nginx | Requests, Active connections, Response codes | ✅ ใช่ |
| MySQL/MariaDB | Queries, Connections, InnoDB | ✅ ใช่ |
| Docker | Container CPU/RAM ทุก container | ✅ ใช่ |
| Redis | Cache hits, Memory, Connected clients | ✅ ใช่ |
| PHP-FPM | Pool status, Slow requests | ต้องตั้งค่า |
| Postfix | Mail queue, Delivery rate | ✅ ใช่ |
เปิด MySQL Plugin
# สร้าง user สำหรับ Netdata
mysql -u root -p -e "CREATE USER 'netdata'@'localhost' IDENTIFIED BY ''; GRANT USAGE ON *.* TO 'netdata'@'localhost'; FLUSH PRIVILEGES;"
sudo systemctl restart netdata
8. เชื่อมต่อ Netdata Cloud (ฟรี)
Netdata Cloud ช่วยให้ดู dashboard จากทุกที่โดยไม่ต้องเปิด port ใดๆ เพิ่มเติม:
- สมัครบัญชีฟรีที่ app.netdata.cloud
- สร้าง Space และ War Room
- คลิก "Connect Nodes" แล้วคัดลอก claim token
- รันคำสั่งบน VPS:
sudo netdata-claim.sh -token=YOUR_TOKEN -rooms=YOUR_ROOM_ID -url=https://app.netdata.cloud
🔒 ความปลอดภัย: Netdata Cloud ใช้ Agent-Cloud Link ที่เข้ารหัสด้วย TLS ข้อมูล metric ไม่ผ่าน cloud (ส่งตรงจาก browser ไปยัง agent ผ่าน websocket) ปลอดภัย
9. ปรับประสิทธิภาพ Netdata
ถ้า VPS มี RAM น้อย สามารถลด footprint ของ Netdata ได้:
sudo nano /etc/netdata/netdata.conf
[global]
# ลด history retention
history = 3600 # 1 ชั่วโมง (ค่า default)
# ลด update frequency (ประหยัด CPU)
update every = 2 # ทุก 2 วินาที แทน 1 วินาที
[plugins]
# ปิด plugin ที่ไม่ใช้
python.d = no
node.d = no
หลังแก้ไข restart service:
sudo systemctl restart netdata
ตรวจสอบ Resource Usage ของ Netdata เอง
# ดู CPU และ RAM ที่ Netdata ใช้
ps aux | grep netdata
# หรือดูใน dashboard ที่ section "Netdata Monitoring"
10. เปรียบเทียบ Netdata vs ทางเลือกอื่น
| Tool | Real-time | ติดตั้ง | Plugin | Alert | ราคา |
|---|---|---|---|---|---|
| Netdata | 1 วินาที | ง่ายมาก | 300+ | ในตัว | ฟรี |
| Prometheus+Grafana | 15+ วินาที | ซับซ้อน | มาก | ต้องตั้ง | ฟรี |
| Zabbix | 30 วินาที | ซับซ้อน | มาก | ในตัว | ฟรี |
| Datadog | 15 วินาที | ง่าย | มาก | ในตัว | จ่าย |
| New Relic | 1 นาที | ง่าย | มาก | ในตัว | จ่าย |
Netdata ชนะในด้านความง่ายของการติดตั้ง และ real-time resolution สูงสุด เหมาะกับ developer ที่ต้องการ monitoring ฟรีโดยไม่อยากยุ่งกับ configuration ซับซ้อน
11. คำถามที่พบบ่อย
❓ Netdata ใช้ RAM เท่าไหร่?
ประมาณ 30-100 MB ขึ้นอยู่กับ plugin ที่เปิด เหมาะกับ VPS ตั้งแต่ 1 GB RAM ขึ้นไป
❓ Netdata ต่างจาก Grafana อย่างไร?
Netdata ใช้งานได้ทันทีหลังติดตั้ง ส่วน Grafana ต้องตั้ง datasource (Prometheus/InfluxDB) เพิ่มก่อน แต่ Grafana ยืดหยุ่นกว่าในการสร้าง custom dashboard
❓ เก็บข้อมูล metric นานแค่ไหน?
ค่า default เก็บ 1 วินาที/metric นาน 1 ชั่วโมง จากนั้น downsample เป็น per-minute 6 ชั่วโมง และ per-hour 6 วัน ปรับได้ใน netdata.conf
❓ ปลอดภัยไหมถ้าเปิด port 19999?
ไม่แนะนำ ควรใช้ SSH tunnel หรือ Nginx reverse proxy + Basic Auth หรือเชื่อมต่อผ่าน Netdata Cloud แทน
❓ ติดตั้งบน VPS AsiaGB ได้เลยไหม?
ได้เลย VPS AsiaGB รัน Ubuntu/Debian รองรับ Netdata ครบทุก feature ทั้ง CPU, RAM, Disk SSD, Network และ plugin ต่างๆ
❓ Netdata Cloud ฟรีไหม?
มีแผนฟรี (Free tier) node ไม่จำกัด แผน Business เพิ่ม retention และ alert ที่นานขึ้น
📝 สรุป
Netdata เป็นเครื่องมือ monitoring ที่ดีที่สุดสำหรับ VPS ในแง่ของความง่ายและ real-time resolution ขั้นตอนหลักที่ต้องทำ:
- ✅ ติดตั้งด้วย one-line installer script
- ✅ เข้าถึง dashboard ผ่าน SSH tunnel หรือ Nginx reverse proxy
- ✅ ตั้งค่า alert ส่ง Telegram/Email เมื่อ resource สูง
- ✅ เปิด plugin Nginx/MySQL/Docker ได้อัตโนมัติ
- ✅ เชื่อมต่อ Netdata Cloud สำหรับเข้าถึงจากทุกที่
ต้องการ VPS ที่รองรับ Netdata พร้อม SSD storage และ Uptime 99%? ดู VPS AsiaGB ราคาเริ่ม 500 บาท/เดือน