• Indonesian
  • English
  • Cara Install Netdata di Server Linux untuk Monitoring

    Kecepatan:

    Pendahuluan

    Beberapa tahun lalu saya diminta client untuk memonitoring server mereka — tapi bukan pakai Zabbix atau Nagios yang setup-nya ribet. Mereka minta sesuatu yang “bisa langsung lihat dashboard-nya tanpa konfigurasi macam-macam.” Saya sempat bingung, karena kebanyakan monitoring tool membutuhkan konfigurasi agent, server, dan dashboard secara terpisah. Tapi ternyata ada satu tool yang bisa diinstall dengan satu command dan langsung menampilkan dashboard real-time: Netdata.

    Saya ingat pertama kali install Netdata — cuma butuh waktu kurang dari 5 menit dari awal sampai dashboard bisa diakses. Tidak perlu setup database, tidak perlu konfigurasi agent, tidak perlu buat rule monitoring. Cukup satu command, Netdata langsung mengumpulkan data metrik dari semua service di server dan menampilkannya di dashboard yang sangat informatif. Yang bikin saya terkesan, Netdata juga langsung mendeteksi Apache, MySQL, PHP-FPM, Nginx, dan service lainnya secara otomatis tanpa konfigurasi tambahan.

    Di artikel ini saya akan tunjukkan cara install Netdata di server Linux menggunakan kickstart script, langkah demi langkah. Saya juga akan jelaskan apa yang dilakukan Netdata di server kamu dan bagaimana cara mengakses dashboard-nya.

    Apa Itu Netdata?

    Netdata adalah tool monitoring real-time untuk server dan aplikasi yang bersifat open-source. Berbeda dari tool monitoring lain yang cenderung kompleks, Netdata dirancang untuk setup yang cepat dan dashboard yang langsung informatif.

    Fitur Utama Netdata

    • Monitoring real-time — data diperbarui setiap detik, bukan setiap menit atau jam. Kamu bisa melihat perubahan CPU, RAM, disk I/O, dan network secara real-time.
    • Dashboard web — semua data ditampilkan di dashboard berbasis web yang bisa diakses dari browser. Tidak perlu install client tambahan.
    • Auto-detection — Netdata otomatis mendeteksi service yang berjalan di server (Apache, Nginx, MySQL, PHP-FPM, Docker, dsb.) dan langsung memonitoring-nya tanpa konfigurasi.
    • Zero-configuration — tidak perlu setup database, tidak perlu konfigurasi agent, tidak perlu buat alert rule. Semua sudah jalan dari awal install.
    • Lightweight — Netdata menggunakan sangat sedikit resource (CPU < 1%, RAM < 50MB). Tidak akan mempengaruhi performa server.
    • Bisa diuninstall bersih — jika tidak dibutuhkan lagi, Netdata bisa dihapus dengan bersih tanpa meninggalkan jejak.

    Apa Saja yang Di-Monitoring?

    Secara default, Netdata akan memonitoring:

    • CPU — penggunaan per core, temperature, frequency
    • RAM — used, cached, buffers, swap
    • Disk — I/O per device, latency, throughput
    • Network — bandwidth per interface, packets, errors
    • Proses — top processes by CPU/RAM, thread count
    • System services — Apache, Nginx, MySQL, PostgreSQL, PHP-FPM, Redis, Docker, dan banyak lagi
    • Application metrics — PHP, Python, Node.js, dan aplikasi lainnya

    Persiapan Sebelum Install

    ⚠️ PERINGATAN: Cek Resource Server

    Meskipun Netdata ringan, pastikan server kamu memenuhi minimum requirement:

    # Cek RAM yang tersedia
    free -h
    
    # Cek disk space yang tersedia
    df -h / | tail -1
    
    # Cek OS version
    cat /etc/os-release | head -3

    Netdata membutuhkan minimal:

    • RAM: 256MB free (lebih banyak lebih baik)
    • Disk: 1GB free untuk installasi dan data metrik
    • OS: Linux (Debian, Ubuntu, CentOS, RHEL, CloudLinux, AlmaLinux, Rocky Linux)

    Cek Akses Internet

    Install Netdata membutuhkan akses internet untuk download kickstart script dan package:

    # Cek koneksi internet
    ping -c 3 get.netdata.cloud

    Cara Install Netdata

    Command Install Netdata

    Berikut command lengkap untuk install Netdata di server Linux:

    wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh

    Command ini menggunakan wget untuk download kickstart script dari Netdata, lalu menjalankannya. Kickscript script akan mendeteksi OS kamu, install semua dependency yang dibutuhkan, dan install Netdata secara otomatis.

    Penjelasan Tiap Bagian Command

    1. wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh — Download kickstart script dari https://get.netdata.cloud/kickstart.sh dan simpan sebagai /tmp/netdata-kickstart.sh. wget adalah command-line downloader. Flag -O menentukan nama file output.

    2. sh /tmp/netdata-kickstart.sh — Jalankan kickstart script menggunakan sh. Script ini akan: mendeteksi OS kamu, install dependency (build tools, libraries), download dan install Netdata, konfigurasi Netdata secara otomatis, dan mulai service Netdata.

    Apa yang Dilakukan Kickstart Script?

    Kickstart script Netdata melakukan beberapa langkah otomatis:

    1. Detect OS — script mendeteksi jenis Linux yang kamu pakai (Debian, Ubuntu, CentOS, dll)
    2. Install dependencies — install package yang dibutuhkan (build-essential, zlib, json-c, yaml, dll)
    3. Download Netdata — download source code atau binary Netdata dari repository resmi
    4. Build & Install — compile (jika dari source) atau install binary ke /opt/netdata
    5. Konfigurasi — buat file konfigurasi default, setup systemd service, setup log rotation
    6. Start service — start Netdata service dan enable agar otomatis start saat server reboot

    Contoh Output Install

    % Total    % Received % Xferd  Average Speed   Time    Time     Time Current
                                      Dload  Upload   Total   Spent    Left  Speed
    100  135k  100  135k    0     0   123k      0  0:00:01  0:00:01 --:--:--   126k
    
     --- Using git to update code ---
     --- Running installer ---
    /usr/bin/env: ‘shr’: No such file or directory
    
     --- Installer failed ---
     --- Attempting a different installation method ---
    
     --- Checking for cgroups ---
     --- Checking for systemd ---
     --- Checking for docker ---
     --- Installing required packages ---
     --- Installing Netdata ---
     --- Successfully installed Netdata! ---
    
    Access the Netdata dashboard at: http://localhost:19999
    View the logs: tail -f /var/log/netdata/error.log
    Uninstall: /opt/netdata/bin/netdata-uninstaller.sh

    Perhatikan bahwa install berhasil dan Netdata berjalan di port 19999. Kamu bisa mengakses dashboard melalui http://localhost:19999 atau http://IP_SERVER:19999.

    Verifikasi Setelah Install

    Command #1: Cek Service Netdata

    # Cek status service Netdata
    systemctl status netdata
    
    # Cek apakah Netdata berjalan
    ps aux | grep netdata | grep -v grep

    Contoh Output

    ● netdata.service - Real time performance monitoring
         Loaded: loaded (/etc/systemd/system/netdata.service; enabled; vendor preset: disabled)
         Active: active (running) since Mon 2024-02-14 10:23:11 UTC; 2min ago
       Main PID: 12345 (netdata)
          Tasks: 145 (limit: 4915)
         Memory: 42.3M
            CPU: 1.242s
         CGroup: /system.slice/netdata.service
                 ├─12345 /opt/netdata/bin/netdata -D
                 ├─12346 /opt/netdata/bin/netdata --pid-file /run/netdata/netdata.pid
                 ...

    Perhatikan bahwa service Netdata active (running) dan sudah enabled (otomatis start saat reboot).

    Command #2: Cek Port Netdata

    # Cek apakah port 19999 terbuka
    ss -tlnp | grep 19999
    # atau
    netstat -tlnp | grep 19999

    Contoh Output

    LISTEN   0   4096   0.0.0.0:19999   0.0.0.0:*   users:(("netdata",pid=12345,fd=7))

    Port 19999 sudah terbuka dan Netdata mendengarkan di semua interface (0.0.0.0).

    Command #3: Test Akses Dashboard

    # Test dari server sendiri
    curl -s -o /dev/null -w "%{http_code}" http://localhost:19999
    
    # Jika mengembalikan 200, dashboard berhasil diakses
    # Output: 200

    Command #4: Cek Log Netdata

    # Cek error log
    tail -50 /var/log/netdata/error.log
    
    # Cek log jika ada masalah
    journalctl -u netdata --no-pager | tail -30

    Akses Dashboard dari Luar Server

    ⚠️ PERINGATAN KEAMANAN: Batasi Akses Dashboard

    Secara default, Netdata dashboard bisa diakses dari mana saja tanpa autentikasi. Ini berarti siapa saja yang tahu IP dan port 19999 bisa melihat semua metrik server kamu. Sangat penting untuk membatasi akses sebelum mengizinkan akses dari luar.

    Cara 1: Batasi Akses via Firewall (Rekomendasi)

    # UFW (Ubuntu/Debian)
    ufw allow from IP_KAMU to any port 19999
    
    # firewalld (CentOS/RHEL)
    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_KAMU" port port="19999" protocol="tcp" accept'
    firewall-cmd --reload
    
    # iptables
    iptables -A INPUT -p tcp --dport 19999 -s IP_KAMU -j ACCEPT
    iptables -A INPUT -p tcp --dport 19999 -j DROP

    Cara 2: Konfigurasi Netdata untuk Authentikasi

    Edit file konfigurasi Netdata untuk menambahkan authentikasi:

    # Edit file konfigurasi
    nano /opt/netdata/etc/netdata/netdata.conf
    
    # Tambahkan di bagian [web]
    [web]
        bind to = =dashboard
        allow connections from = localhost IP_KAMU
        allow dashboard from = localhost IP_KAMU

    Setelah edit, restart Netdata:

    systemctl restart netdata

    Cara 3: Reverse Proxy dengan Nginx (Paling Aman)

    Gunakan Nginx sebagai reverse proxy dengan SSL dan basic auth:

    # Buat file konfigurasi Nginx
    nano /etc/nginx/conf.d/netdata.conf

    Isi dengan konfigurasi:

    # server {
    #     listen 443 ssl;
    #     server_name netdata.domain.com;
    #     
    #     ssl_certificate /etc/letsencrypt/live/netdata.domain.com/fullchain.pem;
    #     ssl_certificate_key /etc/letsencrypt/live/netdata.domain.com/privkey.pem;
    #     
    #     location / {
    #         proxy_pass http://127.0.0.1:19999;
    #         proxy_set_header Host $host;
    #         proxy_set_header X-Real-IP $remote_addr;
    #         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #         auth_basic "Netdata Dashboard";
    #         auth_basic_user_file /etc/nginx/.htpasswd;
    #     }
    # }

    Buat file .htpasswd untuk basic auth:

    # Install htpasswd utility
    apt install apache2-utils -y  # Debian/Ubuntu
    yum install httpd-tools -y    # CentOS/RHEL
    
    # Buat file .htpasswd
    htpasswd -c /etc/nginx/.htpasswd admin

    Restart Nginx:

    nginx -t && systemctl restart nginx

    Cara Uninstall Netdata

    Jika Netdata tidak dibutuhkan lagi, kamu bisa uninstall dengan bersih:

    # Stop service
    systemctl stop netdata
    
    # Disable service
    systemctl disable netdata
    
    # Jalankan uninstaller
    /opt/netdata/bin/netdata-uninstaller.sh --yes
    
    # Bersihkan file yang tersisa (opsional)
    rm -rf /opt/netdata
    rm -rf /var/lib/netdata
    rm -rf /var/log/netdata
    rm -rf /tmp/netdata-*

    Pro Tips: Penggunaan Netdata yang Efektif

    1. Gunakan Netdata Cloud untuk monitoring multi-server — Netdata menyediakan platform cloud gratis untuk monitoring beberapa server sekaligus. Kamu bisa melihat dashboard semua server di satu tempat. Daftar di app.netdata.cloud.
    2. Setup alert ke Telegram/Email — Netdata bisa mengirim alert saat metrik tertentu mencapai threshold. Konfigurasi di /opt/netdata/etc/netdata/health_alarm_notify.conf.
    3. Matikan metrik yang tidak dibutuhkan — jika kamu tidak membutuhkan semua metrik, matikan yang tidak perlu untuk mengurangi penggunaan resource. Edit /opt/netdata/etc/netdata/netdata.conf.
    4. Gunakan Python plugin untuk custom metrics — Netdata support custom metrics via Python plugin. Kamu bisa memonitoring aplikasi custom yang tidak didukung secara default.
    5. Archive data ke external database — data metrik Netdata hanya disimpan 1 hari secara default. Kamu bisa mengkoneksikan ke InfluxDB, Prometheus, atau Cloud untuk penyimpanan jangka panjang.
    6. Monitor dari mobile — dashboard Netdata responsive dan bisa diakses dari smartphone. Kamu bisa memantau server dari mana saja.
    7. Gunakan streaming untuk server cluster — Netdata bisa dikonfigurasi untuk streaming data dari beberapa slave ke satu master. Berguna untuk monitoring cluster server.

    FAQ

    Apakah Netdata aman untuk production server?

    Ya, Netdata sangat aman untuk production. Netdata hanya membaca data dari /proc, /sys, dan log service — tidak mengubah apapun di sistem. Resource usage-nya juga sangat kecil (CPU < 1%, RAM < 50MB). Banyak perusahaan besar seperti Facebook, Cloudflare, dan DigitalOcean menggunakan Netdata untuk monitoring production server mereka.

    Port 19999 harus dibuka di firewall?

    Hanya jika kamu ingin mengakses dashboard dari luar server. Jika kamu hanya mengakses dari server itu sendiri (localhost:19999), tidak perlu membuka port. Tapi untuk monitoring dari komputer lain, kamu perlu membuka port 19999 dan membatasi akses hanya untuk IP yang diizinkan.

    Bagaimana cara update Netdata?

    Netdata akan otomatis update jika menggunakan kickstart script. Untuk update manual, jalankan ulang command install: wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh. Script akan mendeteksi Netdata yang sudah terinstall dan melakukan update.

    Apakah Netdata mempengaruhi performa server?

    Sangat minimal. Netdata menggunakan sampling rate yang rendah dan mengumpulkan data secara efisien. Penggunaan CPU rata-rata < 1%, RAM sekitar 40-50MB. Dalam kasus server dengan banyak core dan service, penggunaan mungkin sedikit lebih tinggi tapi tetap di bawah 2%. Kamu bisa mengecek penggunaan Netdata sendiri di dashboard-nya.

    Related Issues

    Kesimpulan

    Install Netdata di server Linux tidak perlu ribet. Dengan satu command wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh, kamu bisa mendapatkan dashboard monitoring real-time yang sangat powerful dalam waktu kurang dari 5 menit. Tidak perlu konfigurasi database, tidak perlu setup agent, tidak perlu buat alert rules — semua sudah jalan dari awal install.

    Yang perlu diingat: batasi akses dashboard hanya untuk IP yang diizinkan, karena Netdata tidak punya autentikasi bawaan. Gunakan firewall atau reverse proxy dengan basic auth untuk keamanan. Dan yang paling penting, manfaatkan Netdata untuk monitoring aktif — jangan pasang tapi tidak pernah dilihat. Dashboard Netdata hanya berguna kalau kamu benar-benar memantau metrik secara berkala. Lebih baik install monitoring dari awal daripada harus menjelaskan ke client kenapa server mereka down tapi tidak ada yang memantau — percaya deh, saya pernah ngalamin dan tidak mau ngalamin lagi.