Node-RED + InfluxDB + Grafana: Logging & Visualisasi Data Sensor

Dashboard bawaan Node-RED sangat baik untuk monitoring real-time, tapi punya keterbatasan saat Anda butuh menyimpan data historis jangka panjang atau membuat visualisasi analitik yang lebih mendalam. Di sinilah kombinasi InfluxDB (database time-series) dan Grafana (platform visualisasi) melengkapi Node-RED.

Tangan menunjuk grafik batang berwarna-warni di layar tablet
Grafana menawarkan visualisasi data yang jauh lebih kaya untuk analisis mendalam.

Kenapa Butuh InfluxDB dan Grafana?

node-red-dashboard cocok untuk tampilan real-time sederhana, tapi punya keterbatasan saat kebutuhan berkembang:

  • Retensi data terbatas — dashboard Node-RED umumnya hanya menyimpan data dalam memori/sesi, bukan histori jangka panjang.
  • Query historis kompleks sulit dilakukan — membandingkan data minggu ini vs bulan lalu, atau agregasi per jam/hari, jauh lebih mudah dengan database time-series.
  • Visualisasi terbatas — Grafana menawarkan jenis panel yang jauh lebih kaya (heatmap, histogram, alerting visual) dibanding widget dashboard Node-RED.

InfluxDB berperan sebagai tempat penyimpanan data time-series yang efisien, sementara Grafana menjadi lapisan visualisasi yang powerful di atasnya.

Close-up rak server data center biru menyala
InfluxDB menyimpan data time-series secara efisien untuk kebutuhan historis jangka panjang.

Instalasi InfluxDB

InfluxDB bisa diinstall di server yang sama dengan Node-RED (misalnya Raspberry Pi/server Linux) atau di server terpisah. Cara tercepat adalah via Docker:

docker run -d -p 8086:8086 --name influxdb -v influxdb_data:/var/lib/influxdb2 influxdb:2

Setelah container berjalan, akses http://[alamat-server]:8086 untuk melakukan setup awal: buat organization, bucket (setara “database” di InfluxDB 2.x), dan API token yang akan digunakan Node-RED untuk menulis data.

Menghubungkan Node-RED ke InfluxDB

Install node komunitas node-red-contrib-influxdb via Manage Palette. Setelah terinstall, drag node influxdb out ke canvas dan hubungkan dari flow pembacaan sensor Anda (misalnya output Modbus-Read yang sudah di-scaling).

Konfigurasi node influxdb out:

  • Server — alamat dan port InfluxDB, beserta organization, bucket, dan token API.
  • Measurement — nama “tabel” data, misalnya “tekanan_line1”.
  • Format payload — pastikan msg.payload berisi objek dengan field yang sesuai, misalnya { tekanan: 5.2, suhu: 78 }.
[Modbus-Read] → [Function: format data] → [influxdb out]

Node Function digunakan untuk memformat data mentah menjadi struktur yang sesuai sebelum dikirim ke InfluxDB:

msg.payload = {
  tekanan: msg.payload[0] / 6553.5,
  timestamp: new Date()
};
return msg;

Instalasi dan Konfigurasi Grafana

Sama seperti InfluxDB, Grafana paling mudah diinstall via Docker:

docker run -d -p 3000:3000 --name grafana grafana/grafana

Akses http://[alamat-server]:3000 (login default admin/admin, segera ganti password). Langkah konfigurasi:

  1. Tambahkan InfluxDB sebagai data source (Connections → Data sources → Add data source → InfluxDB), masukkan URL, organization, bucket, dan token yang sama seperti di Node-RED.
  2. Buat dashboard baru dan tambahkan panel dengan query yang mengambil data dari measurement yang sudah dikirim Node-RED.
  3. Pilih jenis visualisasi (time series, gauge, stat, heatmap) sesuai kebutuhan analisis.

Kapan Menggunakan Node-RED Dashboard vs Grafana?

  • Node-RED Dashboard — untuk monitoring real-time sederhana, kontrol interaktif (tombol, slider), dan kebutuhan operator harian di lapangan.
  • Grafana — untuk analisis historis mendalam, laporan manajemen, perbandingan tren jangka panjang, dan alerting berbasis threshold yang lebih advanced.

Banyak implementasi industri menggunakan keduanya sekaligus: dashboard Node-RED untuk operator di lantai produksi, dan Grafana untuk tim engineering/manajemen yang butuh insight lebih dalam.

Dengan data historis tersimpan rapi di InfluxDB dan tervisualisasi di Grafana, langkah berikutnya adalah memastikan Anda mendapat notifikasi otomatis saat terjadi kondisi abnormal — dibahas di artikel selanjutnya tentang alarm WhatsApp/Telegram.

Mengatur Retention Policy agar Ukuran Database Tidak Membengkak

Data sensor yang dikirim terus-menerus setiap beberapa detik akan menumpuk sangat cepat, sehingga ukuran database InfluxDB bisa membengkak dalam hitungan minggu jika tidak dikelola dengan baik. Oleh karena itu, retention policy perlu diatur sejak awal, bukan setelah storage penuh.

Retention policy menentukan berapa lama data mentah disimpan sebelum otomatis dihapus. Sebagai contoh, data mentah per detik bisa disimpan selama 30 hari saja, sementara data agregat (rata-rata per jam) disimpan lebih lama, misalnya 1-2 tahun, untuk kebutuhan analisis tren jangka panjang. Pendekatan ini disebut downsampling, dan bisa diatur menggunakan continuous query di InfluxDB agar data lama otomatis diringkas sebelum dihapus.

Membuat Alert Otomatis di Grafana untuk Kondisi Abnormal

Selain menampilkan trend chart, Grafana juga mendukung fitur alerting yang bisa mengirim notifikasi otomatis ketika nilai sensor melewati ambang batas tertentu, misalnya suhu mesin terlalu tinggi atau tekanan turun drastis.

  • Buat alert rule — tentukan kondisi threshold pada panel grafik, misalnya “jika nilai lebih besar dari 80 selama 5 menit berturut-turut”.
  • Tentukan contact point — Grafana bisa mengirim notifikasi ke email, Slack, Telegram, atau webhook kustom yang diteruskan kembali ke Node-RED.
  • Atur evaluation interval — seberapa sering Grafana mengecek kondisi alert, disesuaikan dengan kebutuhan responsivitas sistem.

Dengan demikian, kombinasi Node-RED, InfluxDB, dan Grafana tidak hanya berfungsi sebagai sistem logging pasif, melainkan juga sebagai sistem monitoring aktif yang bisa memberi peringatan dini sebelum masalah menjadi lebih serius di lapangan.

Backup Data InfluxDB Secara Berkala

Karena database ini menyimpan histori data produksi yang berharga untuk analisis dan audit, backup berkala menjadi langkah penting yang sering terlewat. Sebagai contoh, InfluxDB menyediakan perintah bawaan untuk membuat backup penuh maupun backup incremental tanpa perlu menghentikan service yang sedang berjalan:

influxd backup -portable /path/to/backup-folder

Jadwalkan perintah ini secara otomatis menggunakan cron job harian atau mingguan, lalu simpan hasil backup di lokasi terpisah dari server utama — misalnya di storage jaringan (NAS) atau cloud storage. Dengan begitu, jika terjadi kerusakan hardware atau kesalahan konfigurasi yang tidak disengaja, data historis sensor tetap bisa dipulihkan tanpa kehilangan riwayat produksi yang sudah terekam selama ini.

📌 Call to Action

  • Siap mulai membangun dashboard monitoring industri Anda sendiri? Dapatkan modul konverter Modbus RTU sebagai titik awal proyek Anda → tokopedia.com/bisaioti
  • Ingin dipandu dari instalasi hingga dashboard benar-benar berjalan? Ikuti kelas “Node-RED untuk Monitoring Industri” → bisaioti.com/lab