Wat is Grafana?

Grafana is een open-source platform voor datavisualisatie, monitoring en observability dat gegevens uit tientallen soorten databronnen ophaalt en in dashboards, grafieken en alerts toont, zonder die procesdata zelf op te slaan. Het platform werd in januari 2014 uitgebracht door de Zweedse ontwikkelaar Torkel Ödegaard en wordt sindsdien ontwikkeld door Grafana Labs. Binnen Industriële Automatisering en OT-omgevingen is Grafana uitgegroeid tot een veelgebruikte visualisatielaag voor procestrends, energieverbruik, machineprestaties, netwerkstatus en Cybersecurity-events. Daarmee is het een herkenbaar bouwblok in moderne IT OT Convergentie-architecturen: dezelfde tool die het IT-team gebruikt voor server- en applicatie-Monitoring, toont ook data uit het industriële netwerk. Door die Schaalbaarheid past Grafana zowel op een kleine edge-server als in een centraal platform voor tientallen locaties.


🧠 Hoe werkt Grafana?

Grafana is een webapplicatie met een backend in Go en een frontend in TypeScript/React. Het programma is geen database: het stuurt bij elke dashboardweergave een query naar een databron en tekent het resultaat. De Architectuur bestaat uit vier lagen:

  1. Databronnen - een Time Series Database zoals InfluxDB of TimescaleDB, Prometheus, een SQL-database of een Historian.
  2. Data source plugins - connectors die de querytaal van elke bron spreken (InfluxQL/Flux/SQL, PromQL, LogQL).
  3. Dashboards en panels - lijngrafieken, gauges, heatmaps, tabellen, state timelines en kaarten.
  4. Grafana Alerting - regels die queries periodiek evalueren en meldingen sturen via contact points.

Grafana bewaart alleen zijn eigen configuratie (gebruikers, dashboards, alertregels) in een interne database. Standaard is dat een ingebedde SQLite-database; voor productie en hoge beschikbaarheid adviseert Grafana Labs MySQL 8.0+ of PostgreSQL 12+. De minimale vereisten zijn bescheiden: Grafana Labs noemt 512 MB geheugen en één CPU-core als ondergrens, waardoor het ook op een bescheiden edge-server of industriële pc draait. Rekenkracht zit vooral in de databronnen die de queries uitvoeren.

Welke edities bestaan er?

Editie Licentie / model Typisch gebruik in OT
Grafana OSS AGPLv3 (tot 2021 Apache 2.0) On-Premise in een gesegmenteerd netwerk, zelf beheerd
Grafana Enterprise Commerciële licentie Extra datasources, rapportage, fijnmazige rechten
Grafana Cloud SaaS, met gratis tier Multi-site overzicht, niet voor directe koppeling met het controlnetwerk

De licentiewissel naar AGPLv3 in 2021 is relevant voor leveranciers die een aangepaste Grafana in een product meeleveren of als dienst aanbieden; voor eindgebruikers die het intern draaien verandert er in de praktijk weinig.


🏭 Waarvoor wordt Grafana gebruikt in industriële automatisering?

Grafana wordt in de OT vooral ingezet als aanvullende analyselaag naast SCADA en HMI. Typische toepassingen:

Een kenmerkend voorbeeld: een voedingsmiddelenproducent toont op één scherm de OEE van drie lijnen, de koelceltemperaturen en het actuele elektriciteitsverbruik, met data uit drie verschillende bronnen. Dat is precies wat een traditionele SCADA-HMI lastig maakt en waar Grafana in uitblinkt.


🔧 Hoe komt OT-data in Grafana?

Grafana praat vrijwel nooit rechtstreeks met een PLC. Industriële protocollen zoals Modbus TCP, ProfiNET, Ethernet IP en OPC UA worden eerst door een collector of gateway uitgelezen en in een database gezet. Gangbare ketens:

Keten Collector Opslag Opmerking
OPC UA → Grafana Telegraf (inputs.opcua) InfluxDB Populair, open source, eenvoudig op een Edge Device
Modbus TCP → Grafana Telegraf (inputs.modbus) of Node-RED InfluxDB / TimescaleDB Geschikt voor energiemeters en eenvoudige PLC’s
MQTT → Grafana Telegraf (inputs.mqtt_consumer) InfluxDB Vaak met MQTT Sparkplug B of een Unified Namespace
MQTT live MQTT data source plugin geen Realtime stream zonder historie
PLC → Grafana SCADA / Historian Historian of SQL Hergebruikt bestaande tags en tijdstempels

De Telegraf-agent van InfluxData heeft input plugins voor onder meer OPC UA (client en listener), Modbus, MQTT en SNMP. De MQTT data source van Grafana Labs streamt berichten direct naar een dashboard, maar slaat zelf niets op: voor historische trends blijft een database nodig.

Binnen de Automatiseringspiramide en het Purdue Model staat Grafana daarom meestal op niveau 3 (site operations) of in de DMZ, boven de sensoren, PLC’s en het DCS, en naast MES-functies. Data stroomt omhoog; Grafana stuurt niets terug naar het proces.


🔄 Wat is het verschil tussen Grafana en SCADA?

Eigenschap Grafana SCADA
Primair doel Visualisatie, analyse en observability Procesbediening en -besturing
Schrijven naar het proces Nee (alleen lezen) Ja, met bediening en setpoints
Alarmbeheer Drempel- en query-alerts Alarmsysteem met acknowledge, shelving en prioriteit
Historische analyse Sterk, over meerdere bronnen Afhankelijk van de historian
Databronnen Zeer breed, plugin-gebaseerd Vaak vendor-specifiek
Verversing Standaard minimaal 5 seconden, sneller via streaming Subseconde
Typische plek Niveau 3 / DMZ / cloud Niveau 2

Grafana vervangt dus geen SCADA en geen Alarm Management-systeem volgens ISA-18.2. Alerts in Grafana zijn bedoeld voor trends, condition monitoring en IT-achtige bewaking, niet voor operatoralarmen die een directe handeling vereisen. Voor procesbeelden blijven de principes van ISA-101 leidend; voor analyse- en managementdashboards biedt Grafana veel meer vrijheid. Wie een industriële platformkeuze maakt, vergelijkt Grafana vaak met Ignition, dat wel schrijvend HMI/SCADA-functionaliteit biedt.


🔐 Hoe beveiligt u Grafana in een OT-omgeving?

Vanuit Security-oogpunt is Grafana een aantrekkelijk doelwit: het heeft vaak leestoegang tot gevoelige procesdata en draait regelmatig met te ruime standaardinstellingen. Twee kwetsbaarheden laten zien waarom Hardening nodig is:

  • CVE-2021-43798 - een path traversal in de plugin-route (/public/plugins/<id>/) waarmee een niet-geauthenticeerde aanvaller willekeurige bestanden kon lezen, zoals grafana.ini en de configuratiedatabase. Kwetsbaar: 8.0.0-beta1 tot en met 8.3.0, opgelost in 8.0.7, 8.1.8, 8.2.7 en 8.3.1. CISA zette deze CVE op 9 oktober 2025 op de lijst van Known Exploited Vulnerabilities.
  • CVE-2025-4123 (“Grafana Ghost”) - een XSS via een open redirect (CVSS 7.6), die werkt zonder editorrechten als anonieme toegang aan staat. De patch verscheen in mei 2025, maar een scan in juni 2025 vond dat ruim een derde (circa 36%) van de internet-bereikbare Grafana-instanties nog een kwetsbare versie draaide.

Belangrijke maatregelen:

Risico Gevolg Maatregel
Standaard admin/admin bij eerste start Overname van de instantie Wachtwoord direct wijzigen, LDAP- of SSO-koppeling met MFA
Anonieme toegang of publieke dashboards Lekken van procesdata Uitschakelen; alleen RBAC met rollen Viewer/Editor/Admin
Verouderde versie of plugins Exploits zoals hierboven Patchmanagement, plugin-allowlist, oude Angular-plugins vervangen
Grafana in het controlnetwerk Laterale beweging naar PLC’s en andere Assets Plaatsing in DMZ, Netwerksegmentatie en zones volgens IEC 62443, Zero Trust-toegang
Onversleuteld HTTP op poort 3000 Afluisteren van sessies TLS via reverse proxy, cookie_secure aanzetten

Het plugin-ecosysteem verdient extra aandacht. Sinds Grafana 12 worden AngularJS-plugins niet meer geladen; oude community-panels die daarvan afhankelijk zijn, breken bij een upgrade. Neem plugins daarom op in het lifecyclebeheer en de governance van de OT-architectuur. Voor organisaties die onder NIS2 en de Cyberbeveiligingswet vallen, hoort een monitoringplatform als Grafana gewoon in de asset-inventaris en het kwetsbaarhedenbeheer, net als ieder ander systeem met toegang tot OT-data.


📋 Hoe richt u Grafana in voor OT-monitoring?

Een praktische aanpak voor bijvoorbeeld een productielocatie of een waterschap met verspreide gemalen:

  1. Bepaal het doel - welke vragen moet het dashboard beantwoorden (OEE, energie, conditie)? Begin met vijf tot tien kern-KPI’s in plaats van honderden tags.
  2. Kies de databron - hergebruik een bestaande historian of zet een tijdreeksdatabase op. Leg vooraf de bewaartermijn vast, bijvoorbeeld ruwe data 30-90 dagen en geaggregeerde data meerdere jaren.
  3. Plaats de collector dicht bij de bron - een Telegraf- of Node-RED-instantie op een edge-server, die alleen leest en via een vaste route naar de DMZ schrijft.
  4. Installeer Grafana in de DMZ - als container (Docker of Kubernetes) of als service, met PostgreSQL of MySQL als configuratiedatabase zodra meer dan één instantie nodig is.
  5. Richt toegang in - koppel aan de centrale identiteitsbron, gebruik folders per afdeling en geef operators alleen Viewer-rechten.
  6. Ontwerp met beleid - houd de verversing op 10-30 seconden voor managementdashboards, beperk het aantal series per panel en let op hoge cardinaliteit van labels.
  7. Beheer als code - leg dashboards en alertregels vast in versiebeheer (provisioning), zodat wijzigingen herleidbaar zijn en een herinstallatie snel gaat.

Edge, on-premise of cloud?

Voor Kritieke Infrastructuur en sterk gesegmenteerde productieomgevingen is een on-premise installatie de norm. Bij Edge Computing draait een lichte Grafana-instantie lokaal op een lijn of gemaal, zodat dashboards blijven werken als de WAN-verbinding wegvalt. Een Cloud-variant is vooral nuttig voor multi-site benchmarking in het kader van Industrie 4.0; stuur dan geaggregeerde data via een uitgaande verbinding vanuit de DMZ, zodat er geen inkomend verkeer naar de OT nodig is.

Door deze opzet blijft Grafana een veilige, alleen-lezende laag die IT- en OT-teams dezelfde data laat zien, zonder dat iemand via een dashboard het proces kan beïnvloeden.


❓ Veelgestelde vragen

Is Grafana gratis?

Grafana OSS is gratis en open source onder de AGPLv3-licentie, en kan onbeperkt op eigen servers draaien. Daarnaast verkoopt Grafana Labs Grafana Enterprise met extra functies en ondersteuning, en Grafana Cloud als SaaS-dienst met een gratis instapniveau.

Slaat Grafana zelf data op?

Grafana slaat geen meetwaarden op, alleen configuratie zoals dashboards, gebruikers en alertregels. De procesdata blijft in de databron, bijvoorbeeld InfluxDB, TimescaleDB, Prometheus of een historian. Wie trends wil bewaren, heeft dus altijd een aparte database nodig naast Grafana.

Kan Grafana direct een PLC uitlezen?

Grafana leest een PLC normaal gesproken niet direct uit, omdat het geen veldbus- of industriële Ethernetprotocollen spreekt. Een collector zoals Telegraf of Node-RED, een OPC UA-gateway of een historian haalt de data op en zet die in een database. Grafana toont daarna de data uit die database.

Kan Grafana SCADA vervangen?

Grafana kan SCADA niet vervangen, omdat het geen bediening, setpoints of een volwaardig operatoralarmsysteem biedt. Grafana is een alleen-lezende analyse- en visualisatielaag die naast SCADA draait. Het is vooral sterk in het combineren van data uit meerdere bronnen en het tonen van lange trends.

Wat is de LGTM-stack?

De LGTM-stack is de observability-combinatie van Grafana Labs: Loki voor logs, Grafana voor visualisatie, Tempo voor traces en Mimir voor metrics. In OT-omgevingen wordt vaak alleen een deel gebruikt, bijvoorbeeld Grafana met Loki voor het centraal doorzoeken van syslog-berichten van switches en firewalls.

Op welke poort draait Grafana?

Grafana luistert standaard op TCP-poort 3000 via onversleuteld HTTP, met admin/admin als standaardlogin bij de eerste start. In een OT-omgeving hoort Grafana achter een reverse proxy met TLS te staan, en moet het standaardwachtwoord direct worden gewijzigd.


📌 Samengevat

Grafana is een open-source, alleen-lezende visualisatie- en observabilitylaag die OT- en IT-data uit historians, tijdreeksdatabases en logbronnen in één set dashboards en alerts samenbrengt. In industriële omgevingen staat Grafana naast SCADA, niet in plaats daarvan: data komt binnen via collectors als Telegraf of Node-RED, Grafana staat bij voorkeur in de DMZ, en harde maatregelen rond authenticatie, TLS, patching en pluginbeheer zijn nodig, zoals CVE-2021-43798 en CVE-2025-4123 laten zien.