ติดตั้ง Netdata มอนิเตอร์ VPS แบบ Real-time

Netdata คือเครื่องมือมอนิเตอร์เซิร์ฟเวอร์แบบ real-time ที่ดีที่สุดในตลาดสำหรับผู้ดูแล VPS รายบุคคลและทีมขนาดเล็ก เก็บข้อมูล CPU, RAM, Disk, Network ทุก 1 วินาที แสดงบน dashboard ที่สวยงามและใช้งานง่าย โดยไม่มีค่าใช้จ่ายใดๆ

Netdata คืออะไร ทำไมต้องใช้

Netdata เป็นซอฟต์แวร์มอนิเตอร์ระบบ open-source ที่พัฒนาขึ้นมาตั้งแต่ปี 2013 ปัจจุบันมีผู้ใช้กว่า 1 ล้านระบบทั่วโลก จุดเด่นหลักคือ:

เหมาะกับใคร: ผู้ดูแล VPS รายบุคคล, startup, นักพัฒนาที่ต้องการ monitoring ง่ายๆ โดยไม่ต้องลงทุนเวลาตั้งค่า Prometheus + Grafana ที่ซับซ้อน

ความต้องการของระบบ

ส่วนประกอบขั้นต่ำแนะนำ
OSUbuntu 20.04+ / Debian 10+Ubuntu 22.04 LTS
RAM512 MB1 GB ขึ้นไป
CPU1 vCore2 vCore ขึ้นไป
Disk1 GB (data retention 1 วัน)5 GB (retention 7 วัน)
Port19999 (local หรือ reverse proxy)Nginx reverse proxy + HTTPS

VPS ที่ AsiaGB ทุกแพ็กเกจตั้งแต่ 1 GB RAM ขึ้นไปรองรับ Netdata ได้สบาย

ติดตั้ง Netdata บน Ubuntu/Debian

วิธีที่ 1: ใช้ kickstart script (แนะนำ — เร็วที่สุด)

รันคำสั่งด้านล่างบน VPS ของคุณ ใช้เวลาประมาณ 2-5 นาที:

wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry

Flag ที่ใช้:

วิธีที่ 2: ติดตั้งจาก package manager

# Ubuntu/Debian
curl -fsSL https://packagecloud.io/netdata/netdata/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/netdata.gpg
echo "deb https://packagecloud.io/netdata/netdata/ubuntu/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/netdata.list
sudo apt-get update
sudo apt-get install -y netdata

ตรวจสอบสถานะ

sudo systemctl status netdata
# ควรได้: Active: active (running)
# ดู log
sudo journalctl -u netdata -f

เปิดใช้งานอัตโนมัติเมื่อ reboot

sudo systemctl enable netdata

เข้าถึง Dashboard

Netdata เปิด port 19999 บน 0.0.0.0 ค่าเริ่มต้น สามารถเข้าถึงได้ทันทีที่:

http://YOUR_VPS_IP:19999
ข้อควรระวัง: ค่าเริ่มต้น Netdata เปิด public โดยไม่มี authentication เลย ถ้า VPS เชื่อมต่ออินเทอร์เน็ตโดยตรง ควรตั้งค่าความปลอดภัยก่อนใช้งานจริง ดูส่วน "ตั้งค่าความปลอดภัย" ด้านล่าง

ใช้ SSH Tunnel (วิธีปลอดภัยที่สุด)

# รันบนเครื่อง local ของคุณ
ssh -L 19999:localhost:19999 user@YOUR_VPS_IP -N

# แล้วเปิด browser ไปที่
http://localhost:19999

ตั้งค่าความปลอดภัยด้วย Nginx

การใช้ Nginx reverse proxy ทำให้ Netdata เข้าถึงได้ผ่าน HTTPS พร้อม basic authentication:

ขั้นตอนที่ 1: ล็อก Netdata ให้รับ request เฉพาะ localhost

แก้ไขไฟล์ /etc/netdata/netdata.conf:

[web]
    bind to = 127.0.0.1
sudo systemctl restart netdata

ขั้นตอนที่ 2: สร้าง Nginx vhost

sudo nano /etc/nginx/sites-available/netdata
server {
    listen 80;
    server_name monitor.yourdomain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name monitor.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/monitor.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/monitor.yourdomain.com/privkey.pem;

    auth_basic "Netdata Monitoring";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
        proxy_pass http://127.0.0.1:19999;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

ขั้นตอนที่ 3: สร้าง password file

sudo apt install -y apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd admin

ขั้นตอนที่ 4: เปิดใช้งาน

sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

ตั้งค่า Alert แจ้งเตือน

Netdata มี alert สำเร็จรูปกว่า 400 รายการ สามารถส่งแจ้งเตือนไปยัง Telegram, Slack, Email และอื่นๆ:

ตั้งค่า Telegram Alert

sudo nano /etc/netdata/health_alarm_notify.conf

แก้ไขบรรทัดเหล่านี้:

SEND_TELEGRAM="YES"
TELEGRAM_BOT_TOKEN="YOUR_BOT_TOKEN"
TELEGRAM_CHAT_ID="YOUR_CHAT_ID"
sudo systemctl restart netdata

ทดสอบ Alert

sudo -u netdata /usr/libexec/netdata/plugins.d/alarm-notify.sh test telegram

ปรับ Threshold Alert

สร้างไฟล์ alert แบบ custom ใน /etc/netdata/health.d/:

# ตัวอย่าง: alert เมื่อ CPU สูงเกิน 85% นาน 5 นาที
alarm: cpu_high
    on: system.cpu
lookup: average -5m unaligned of user,system,softirq,irq,guest
 units: %
 every: 1m
  warn: $this > 70
  crit: $this > 85
  info: CPU utilization too high

เมตริกสำคัญที่ต้องดูบน Dashboard

หมวดเมตริกค่าที่ควร alert
CPUuser, system, iowaitiowait > 20% = disk bottleneck
Memoryused, cached, bufferedused > 85% = RAM ไม่พอ
Disk I/Oreads, writes, utilizationutilization > 80% = ช้าลง
Networkreceived, sent, packetsbandwidth ใกล้ limit ISP
System Loadload1, load5, load15load15 > จำนวน CPU cores
Processesrunning, blockedblocked > 10 = ปัญหา I/O

การอ่าน CPU Chart

CPU chart แสดงสีหลายสี แต่ละสีมีความหมาย:

เทคนิค: ถ้า steal CPU สูงเกิน 10% สม่ำเสมอ หมายความว่า VPS ที่ใช้อยู่มีปัญหา over-provisioning ควรย้ายไปใช้ plan สูงขึ้น หรือเปลี่ยนผู้ให้บริการ

เปรียบเทียบ Netdata กับ Prometheus/Grafana และเครื่องมืออื่น

เครื่องมือความง่ายติดตั้งReal-timeResourceเหมาะกับ
Netdata⭐⭐⭐⭐⭐ ง่ายมาก1 วินาทีRAM ~150 MBVPS รายบุคคล, SMB
Prometheus + Grafana⭐⭐ ซับซ้อน15+ วินาทีRAM 500+ MBองค์กร, cluster
Zabbix⭐⭐⭐ ปานกลาง30+ วินาทีRAM 300+ MBenterprise
htop/top⭐⭐⭐⭐⭐ ง่ายมากreal-timeminimaldebug เฉพาะหน้า, ไม่มีประวัติ

คำถามที่พบบ่อย (FAQ)

Netdata ใช้ได้กับ VPS ราคาถูกไหม?

ได้ครับ ต้องการ RAM เพียง 100-200 MB และ CPU ต่ำมาก เหมาะกับ VPS ทุกขนาดตั้งแต่ 1 GB RAM ขึ้นไป

Netdata ฟรีจริงไหม?

Netdata Agent ฟรี 100% open-source ใช้ได้ไม่จำกัด มีแพ็กเกจ Netdata Cloud สำหรับองค์กรที่ต้องการฟีเจอร์เพิ่มเติม แต่ self-hosted ไม่มีข้อจำกัดใดๆ

จะ update Netdata ได้อย่างไร?

sudo /usr/libexec/netdata/netdata-updater.sh

หรือถ้าติดตั้งผ่าน apt: sudo apt update && sudo apt upgrade netdata

Netdata เก็บข้อมูลประวัตินานแค่ไหน?

ค่าเริ่มต้นเก็บข้อมูล in-memory ประมาณ 1 ชั่วโมง สามารถตั้งค่าให้เก็บลงดิสก์ได้นานหลายเดือน ด้วย dbengine mode ใน /etc/netdata/netdata.conf

ถ้าใช้ Docker ได้ไหม?

docker run -d --name=netdata \
  -p 19999:19999 \
  -v netdataconfig:/etc/netdata \
  -v netdatalib:/var/lib/netdata \
  -v netdatacache:/var/cache/netdata \
  -v /etc/passwd:/host/etc/passwd:ro \
  -v /etc/group:/host/etc/group:ro \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  --cap-add SYS_PTRACE \
  --security-opt apparmor=unconfined \
  netdata/netdata

สรุป

สรุปขั้นตอนทั้งหมด

  1. ติดตั้ง: sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry
  2. ล็อก port 19999 ให้รับเฉพาะ localhost
  3. ตั้งค่า Nginx reverse proxy + HTTPS
  4. สร้าง basic authentication
  5. ตั้งค่า Telegram/Email alert
  6. ดู dashboard ที่ https://monitor.yourdomain.com

Netdata เป็นการลงทุนที่คุ้มค่ามากสำหรับทุก VPS — ใช้เวลาเพียง 5 นาทีในการติดตั้ง แต่ช่วยให้รู้ปัญหาเซิร์ฟเวอร์ก่อนที่ลูกค้าจะรู้ หรือก่อนที่เว็บจะล่ม

หากต้องการ VPS ที่รองรับ Netdata พร้อม SSD และ Uptime 99% สามารถดูแพ็กเกจได้ที่ AsiaGB VPS — มี VPS ไทย, สิงคโปร์ ให้เลือก พร้อมซัพพอร์ตภาษาไทย