Pelajari cara memantau instance n8n: melacak eksekusi workflow dan node logs, mengekspos metrics Prometheus, visualisasi dengan Grafana, aliran log ke ELK, hingga menerapkan alert dan notifikasi untuk failure.

Di episode 12 kalian mengamankan kredensial dan mengunci akses UI serta API. Sekarang muncul pertanyaan yang tidak kalah penting: bagaimana kita tahu semua itu berjalan sehat? Instance yang tidak terpantau adalah kotak hitam — kalian baru sadar workflow gagal setelah user komplain lewat email.
Episode 13 membahas Audit, Monitoring & Observability. Roadmap-nya: melacak eksekusi workflow dan node logs, mengintegrasikan external monitoring seperti Prometheus, Grafana, dan ELK, serta menerapkan alert dan notifikasi untuk setiap failure.
Sebelum menarik telemetry ke luar, n8n sudah menyimpan data eksekusi di dalamnya. Setiap run tercatat di Execution History dengan metadata lengkap: status sukses atau error, timestamp mulai dan selesai, durasi, mode eksekusi (manual, trigger, test), serta output per node untuk debugging.
Kebijakan penyimpanan data eksekusi bisa dikontrol penuh lewat environment variables — penting karena menyimpan semua data dalam jangka panjang memakan ruang database:
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=168
EXECUTIONS_DATA_SAVE_ON_SUCCESS=all
EXECUTIONS_DATA_SAVE_ON_ERROR=all
EXECUTIONS_DATA_SAVE_ON_PROGRESS=false
EXECUTIONS_DATA_SAVE_ON_MANUAL_EXECUTION=trueEXECUTIONS_DATA_MAX_AGE diukur dalam jam — nilai 168 berarti data eksekusi disimpan selama seminggu. Kombinasi ini memberi cukup data untuk menyelidiki insiden tanpa menumpuk database selama bertahun-tahun.
Untuk kejadian di bawah permukaan eksekusi — startup, autentikasi, error internal — n8n menulis log aplikasi. Level dan tujuannya bisa diatur:
N8N_LOG_LEVEL=info
N8N_LOG_OUTPUT=console,file
N8N_LOG_FORMAT=json
N8N_LOG_FILE_LOCATION=/logs/n8n.logDengan N8N_LOG_FORMAT=json, setiap baris log menjadi satu objek JSON yang berisi timestamp, level, message, dan metadata. Format ini memudahkan parsing oleh tool otomatis — basis dari integrasi ELK yang akan kita bahas. Saat debugging, kalian bisa menurunkan N8N_LOG_LEVEL ke debug untuk melihat detail, lalu menaikkannya kembali ke info di produksi.
Untuk melihat kesehatan instance dari jauh, n8n mengekspos endpoint Prometheus /metrics. Endpoint ini mati secara default dan dinyalakan dengan N8N_METRICS=true.
N8N_METRICS=true
N8N_METRICS_INCLUDE_QUEUE_METRICS=true
N8N_METRICS_INCLUDE_WEBHOOK_METRICS=true
N8N_METRICS_INCLUDE_WORKFLOW_INFO=trueMetrik yang tersedia antara lain jumlah eksekusi, jumlah workflow aktif, per-node metrics, histogram durasi request webhook (n8n_webhook_request_duration_seconds), serta queue metrics bila memakai queue mode. Baik main maupun worker bisa mengekspos endpoint yang sama.
Lalu konfigurasi Prometheus untuk menarik data secara berkala:
scrape_configs:
- job_name: n8n
static_configs:
- targets: ["n8n-main:5678"]
metrics_path: /metrics
scrape_interval: 30sWarning
Jangan pernah memaparkan /metrics ke internet publik. Endpoint ini bisa mengungkap detail operasional instance kalian — batasi aksesnya ke jaringan internal yang dipakai monitoring.
Data metrik di Prometheus baru terasa manfaatnya saat divisualisasikan. Grafana terhubung ke Prometheus sebagai data source dan menampilkan panel-panel seperti:
Alur observability yang lengkap: n8n mengekspos /metrics → Prometheus menyimpan time series → Grafana menggambar dashboard → alert rule di Grafana memicu notifikasi saat metrik melewati ambang batas.
Metrik memberi angka; log memberi konteks. Untuk menelusuri "mengapa" sebuah eksekusi gagal, log yang tersentralisasi di ELK stack (Elasticsearch, Logstash, Kibana) jauh lebih nyaman daripada login ke tiap server. Pola paling ringan: Filebeat membaca file log n8n, mengirimnya ke Elasticsearch, dan kalian menyelidikinya di Kibana.
filebeat.inputs:
- type: filestream
id: n8n-logs
paths:
- /logs/n8n.log
output.elasticsearch:
hosts: ["https://elasticsearch:9200"]
username: "filebeat_writer"
password: "${FILEBEAT_PASSWORD}"Karena format log sudah JSON, Kibana bisa langsung mengindeks field seperti level, workflowId, dan message tanpa parsing tambahan. Bila kalian butuh transformasi di tengah, sisipkan Logstash sebagai perantara — prinsipnya sama, satu tahap ekstra untuk enrichment.
Observability tidak lengkap tanpa notifikasi proaktif. Dua pendekatan utama:
n8n execution error
-> Error Workflow (Slack #alerts, email on-call)
-> Prometheus alert: error_rate > 5% dalam 15 menit
-> Grafana notify channel -> PagerDuty / TelegramKombinasi keduanya menutup dua skenario: kegagalan satu workflow yang perlu ditindak cepat, dan degradasi sistemik yang harus terdeteksi sebelum berdampak luas.
Untuk pemantauan otomatis oleh orchestrator atau load balancer, n8n menyediakan endpoint status: /healthz untuk kelayakan dasar dan /healthz/readiness untuk kesiapan melayani traffic.
curl -s http://localhost:5678/healthz
curl -s http://localhost:5678/healthz/readinessDi queue mode, health check worker mati secara default dan perlu diaktifkan dengan QUEUE_HEALTH_CHECK_ACTIVE=true. Load balancer atau Kubernetes probe bisa memakai endpoint ini untuk mengeluarkan node yang tidak sehat dari rotasi.
Episode 13 memberi kalian tiga lapis penglihatan: execution data di dalam n8n untuk debugging per workflow, metrik Prometheus yang divisualisasikan Grafana untuk kesehatan instance, dan log terpusat ke ELK untuk investigasi mendalam. Ditambah alert dari error workflow dan tool monitoring, setiap kegagalan kini menjadi kejadian yang terlihat, terukur, dan ditindaklanjuti.
Inti yang harus dibawa pulang:
EXECUTIONS_DATA_PRUNE dan EXECUTIONS_DATA_MAX_AGE.N8N_METRICS=true menyalakan endpoint /metrics yang siap dipakai Prometheus dan Grafana.N8N_LOG_FORMAT=json) menjadi dasar integrasi ELK tanpa parsing manual./healthz dan /healthz/readiness menjaga orchestrator selalu memakai node yang sehat.Di episode 14 berikutnya kita masuk ke sisi organisasi: Governance & Multi-user Collaboration — mengelola user access dan role-based permissions, berbagi workflow, credential, dan folder, serta menjaga change control dan audit trails. Sampai jumpa!