Memantau kondisi server secara visual adalah keterampilan penting bagi setiap administrator. Tanpa monitoring, Anda tidak akan tahu apakah server Anda sehat atau sedang bermasalah sampai pengguna mengeluh. Artikel ini membahas dua tool monitoring yang sangat powerfull: Netdata dan Grafana.
Pengertian Monitoring Server
Monitoring server adalah proses memantau kinerja dan kesehatan server secara real-time. Monitoring membantu mendeteksi masalah sebelum pengguna merasakannya, merencanakan kapasitas, dan memastikan layanan tetap tersedia.
Mengapa Monitoring Penting?
- Deteksi Dini: Menemukan masalah sebelum menjadi kritis
- Perencanaan: Mengetahui kapan perlu menambah resource
- Accountability: Mengetahui uptime dan performa historis
- Notifikasi: Menerima peringatan otomatis saat masalah terjadi
- Troubleshooting: Memahami apa yang salah saat ada masalah
Pengertian Netdata
Netdata adalah tool monitoring real-time yang ringan dan sangat detail. Netdata memberikan dashboard interaktif dengan data per detik — CPU, RAM, disk, jaringan, proses, dan lainnya.
Keunggulan Netdata
- Ringan: Konsumsi memory <1%, hampir tidak mempengaruhi performa
- Real-time: Data diperbarui setiap 1 detik
- Otomatis: Tidak perlu konfigurasi manual — langsung berjalan setelah instal
- Dashboard Web: Akses via browser dengan UI yang modern dan interaktif
- Zero Configuration: Instal dan langsung digunakan
Pengertian Grafana
Grafana adalah platform monitoring dan observabilitas yang canggih. Grafana menampilkan data dari berbagai sumber dalam bentuk grafik yang indah dan dapat dikustomisasi.
Keunggulan Grafana
- Visualisasi Indah: Dashboard yang sangat cantik dan interaktif
- Multi-Source: Menggabungkan data dari banyak sumber (Netdata, Prometheus, PostgreSQL, dll.)
- Alerting: Notifikasi otomatis via email, Telegram, Slack, dll.
- Plugins: Ribuan plugin untuk berbagai kebutuhan
- Templating: Dashboard dinamis yang bisa disesuaikan
Perbandingan Netdata vs Grafana
| Aspek | Netdata | Grafana |
|---|---|---|
| Instalasi | Sangat mudah | Sedang |
| Konfigurasi | Otomatis | Manual |
| Resource | Sangat ringan | Sedang |
| Detail Data | Per detik | Bisa diatur interval |
| Visualisasi | Baik | Sangat bagus |
| Alerting | Dasar | Sangat canggih |
| Multi-server | Terbatas | Sangat baik |
| Penggunaan | Individual | Team/Enterprise |
Rekomendasi: Gunakan Netdata untuk monitoring cepat dan ringan. Gunakan Grafana untuk monitoring tim dengan banyak server dan alert canggih. Gunakan keduanya untuk solusi lengkap.
Alat yang Dibutuhkan
- Server Debian 13
- Akses SSH sebagai root atau sudo
- Browser untuk mengakses dashboard
- Domain opsional (untuk akses jarak jauh)
Instalasi Netdata
1. Instal Netdata
apt install netdata -y2. Aktifkan dan Start
systemctl enable netdata
systemctl start netdata
systemctl status netdata3. Konfigurasi Akses Web
Netdata mendengarkan port 19999 secara default. Untuk mengakses:
# Dari browser
http://server-ip:199994. Konfigurasi Akses Hanya dari Local
Edit /etc/netdata/netdata.conf:
[web]
bind to = 127.0.0.15. Akses via SSH Tunnel (Lebih Aman)
ssh -L 19999:localhost:19999 root@server-ip
# Akses http://localhost:19999 dari browser lokal6. Tambahkan Nginx Reverse Proxy (Opsional)
nano /etc/nginx/sites-available/netdataIsi:
server {
listen 443 ssl;
server_name netdata.masyarakat.id;
ssl_certificate /etc/letsencrypt/live/netdata.masyarakat.id/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/netdata.masyarakat.id/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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
}
# Basic Auth
auth_basic "Netdata Monitoring";
auth_basic_user_file /etc/nginx/.htpasswd;
}Fitur Monitoring Netdata
1. Dashboard Utama
Akses http://localhost:19999 untuk melihat:
- CPU Usage: Penggunaan CPU per core, termasuk steal, iowait
- Memory: RAM yang digunakan, cached, buffered
- Disk I/O: Read/write speed per disk
- Network: Bandwidth masuk/keluar per interface
- Process: Daftar proses dengan resource tertinggi
- Apache/Nginx: Status server web
- MySQL/MariaDB: Query per detik, koneksi
2. Alarm
Netdata memiliki alarm bawaan:
# Lihat alarm yang aktif
netdata alert
# Cek status alarm
cat /var/lib/netdata/alarm-notify/alarm.log3. Notifikasi Email
Edit /etc/netdata/health_alarm_notify.conf:
[SMTP]
enabled = yes
host = smtp.gmail.com
port = 587
user = [email protected]
password = your-password
from = [email protected]
to = [email protected]Instalasi Grafana
1. Instal Dependensi
apt install -y apt-transport-https software-properties-common wget
wget -q -O /usr/share/keyrings/grafana-keyring.gpg https://apt.grafana.com/gpg.key
echo "deb [signed-by=/usr/share/keyrings/grafana-keyring.gpg] https://apt.grafana.com stable main" | tee -a /etc/apt/sources.list.d/grafana.list2. Instal Grafana
apt update
apt install grafana -y3. Aktifkan dan Start
systemctl enable grafana-server
systemctl start grafana-server
systemctl status grafana-server4. Akses Grafana
Buka browser ke http://server-ip:3000
- Username: admin
- Password: admin (akan diminta ganti saat pertama login)
5. Konfigurasi Nginx Reverse Proxy
nano /etc/nginx/sites-available/grafanaIsi:
server {
listen 80;
server_name grafana.masyarakat.id;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
}
# Basic Auth
auth_basic "Grafana Dashboard";
auth_basic_user_file /etc/nginx/.htpasswd;
}6. Buat htpasswd
apt install apache2-utils -y
htpasswd -c /etc/nginx/.htpasswd adminIntegrasi Netdata dengan Grafana
1. Tambahkan Netdata sebagai Data Source
- Login ke Grafana (
http://grafana.masyarakat.id) - Klik Configuration → Data Sources
- Klik Add data source
- Cari Netdata
- Isi URL:
http://localhost:19999 - Klik Save & Test
2. Buat Dashboard
- Klik + → Dashboard
- Klik Add new panel
- Pilih data source Netdata
- Pilih metrik (CPU, Memory, dll.)
- Atur visualisasi (graph, gauge, table)
- Simpan dashboard
3. Tambahkan Multiple Server
- Di Grafana, klik Configuration → Data Sources
- Tambahkan server Netdata lain
- Buat dashboard yang menampilkan semua server
Alerting dengan Grafana
1. Buat Alert
- Buka dashboard di Grafana
- Klik panel → Edit
- Klik Alert → Create Alert
- Atur kondisi:
WHEN avg() OF query(A, 5m, now) IS ABOVE 80
- Atur notifikasi:
- Notification channels: Email, Telegram, Slack
- Simpan alert
2. Konfigurasi Notifikasi Telegram
- Buat bot Telegram dan dapatkan token (lihat artikel bot Telegram)
- Di Grafana, klik Alerting → Notification channels
- Klik New channel
- Pilih Telegram
- Isi:
- Bot Token:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz - Chat IDs:
123456789
- Simpan
3. Contoh Alert Kritis
Alert: CPU > 90%
Query: avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) < 0.1
For: 5 minutes
Notification: Telegram
Message: "⚠️ CPU server {instance} mencapai {value}%"Monitoring dengan Prometheus dan Node Exporter (Opsional)
Untuk monitoring yang lebih enterprise, gunakan Prometheus + Node Exporter:
# Instal Node Exporter (menyediakan metrics untuk prometheus)
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
mv node_exporter-*/node_exporter /usr/local/bin/Buat systemd service:
nano /etc/systemd/system/node-exporter.service[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node-exporter
ExecStart=/usr/local/bin/node_exporter
Restart=always
[Install]
WantedBy=multi-user.targetManajemen Penyimpanan Data
Netdata
# Cek ukuran database Netdata
du -sh /var/lib/netdata/dbengine/
# Konfigurasi retensi
nano /etc/netdata/netdata.conf
[dbengine]
history = 3600 # Simpan data 1 jam (dalam detik)Grafana
# Cek ukuran database Grafana
du -sh /var/lib/grafana/
# Backup database Grafana
cp /var/lib/grafana/grafana.db /backup/grafana-db-$(date +%Y%m%d).bakTroubleshooting
1. Netdata Tidak Bisa Akses
Solusi:
systemctl status netdata
ss -tlnp | grep 19999
# Pastikan port terbuka
ufw allow 19999/tcp2. Grafana Login Error
Penyebab: Password default belum diubah. Solusi:
# Reset password via CLI
grafana-cli admin reset-admin-password newpassword3. Data Tidak Update di Grafana
Penyebab: Data source belum dikonfigurasi atau node exporter tidak berjalan. Solusi:
# Cek node exporter
systemctl status node-exporter
# Cek data source di Grafana → Configuration → Data Sources4. Netdata Konsumsi Memory Tinggi
Penyebab: Terlalu banyak chart diaktifkan. Solusi:
# Nonaktifkan chart yang tidak diperlukan
nano /etc/netdata/python.d.conf
# Edit untuk menonaktifkan chart tertentu5. Grafana Tidak Muncul di Browser
Penyebab: Nginx belum dikonfigurasi atau service Grafana tidak jalan. Solusi:
systemctl restart grafana-server
systemctl status grafana-server
nginx -t && systemctl reload nginxKesimpulan
Monitoring server dengan Netdata dan Grafana memberikan visibilitas penuh terhadap kesehatan dan performa server. Netdata memberikan pemantauan real-time yang ringan dan detail, sementara Grafana memberikan visualisasi yang indah dan alert canggih untuk tim.
Kombinasi keduanya memberikan solusi monitoring yang lengkap — dari deteksi masalah hingga notifikasi otomatis. Dengan dashboard yang baik, Anda dapat mengetahui kondisi server kapan saja tanpa harus login ke terminal.
Kunci utama:
- Mulai dengan Netdata untuk monitoring cepat dan ringan
- Tingkatkan ke Grafana ketika sudah membutuhkan alert dan visualisasi
- Backup konfigurasi dashboard Grafana secara rutin
- Atur alert yang reasonable untuk menghindari alert fatigue
- Gunakan HTTPS dan authentication untuk dashboard monitoring
Catatan penting: Selalu proteksi dashboard monitoring dengan authentication (basic auth atau login). Jangan biarkan dashboard monitoring terbuka publik karena informasi server bisa dimanfaatkan oleh penyerang. Gunakan firewall untuk membatasi akses ke port monitoring hanya dari IP yang berwenang.
Ingat: Monitoring bukan sekadar melihat grafik — ini adalah sistem peringatan dini yang menyelamatkan server Anda dari masalah yang tidak terdeteksi. Jangan menunda pemasangan monitoring hingga Anda mengalami downtime. Lebih baik mencegah daripada mengobati.
Dipublikasikan untuk membantu para administrator server memantau kesehatan server secara visual dan proaktif.