Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione

In questo articolo voglio condividere l'esperienza di utilizzo dei sistemi open source Zabbix e Grafana per visualizzare il funzionamento delle linee di produzione. Questa informazione può essere utile a chi cerca un modo rapido per visualizzare o analizzare i dati raccolti in progetti di automazione industriale o IoT. L'articolo non è una guida dettagliata, ma piuttosto una concezione del sistema di monitoraggio basato su software open source per un'industria manifatturiera.

Strumenti

Zabbix – lo utilizziamo da tempo per il monitoraggio dell'infrastruttura IT dell'impianto. Il sistema si è rivelato così comodo e versatile che abbiamo iniziato a inserire i dati delle linee di produzione, dei sensori e dei controllori. Questo ci ha permesso di raccogliere tutti i dati delle metriche in un unico posto, di creare grafici semplici sul consumo delle risorse e sulle prestazioni dell'attrezzatura, ma ci mancava molto l'analisi e grafici più belli.

Grafana è uno strumento potente per l'analisi e la visualizzazione dei dati. Un gran numero di plugin permette di raccogliere dati da diverse fonti (zabbix, clickhouse, influxDB), elaborarli in tempo reale (calcolare la media, la somma, la differenza, ecc.) e disegnare vari grafici (da semplici linee, indicatori, tabelle a schemi complessi).

Draw.io è un servizio che consente di disegnare in un editor online da uno schema a blocchi semplice fino a un piano di locali. Ci sono molti modelli pronti e oggetti disegnati. I dati possono essere esportati in tutti i principali formati grafici o in xml.

Mettiamo tutto insieme

Ci sono molti articoli su come installare e configurare Grafana e Zabbix, ma parlerò dei principali aspetti della configurazione.

In Zabbix server si crea un "nodo di rete" (host), a cui appartengono "elementi di dati" (item) con metriche dai nostri sensori. I nomi dei nodi e degli elementi di dati è consigliabile pensarli in anticipo e renderli il più strutturati possibile, poiché li utilizzeremo in Grafana tramite espressioni regolari. Questo approccio è comodo perché consente di ottenere dati da un gruppo di elementi con una sola query.

Per configurare Grafana è necessario installare plugin aggiuntivi:

  • Zabbix di Alexander Zobnin (alexanderzobnin-zabbix-app) – integrazione con Zabbix
  • natel-discrete-panel – plugin per visualizzazione discreta su grafico orizzontale
  • pierosavi-imageit-panel – plugin per visualizzare dati sopra la propria immagine
  • agenty-flowcharting-panel – plugin per visualizzazione dinamica di schemi da draw.io

L'integrazione con Zabbix si configura in Grafana, nel menu di configurazione Data sources Zabbix. Qui occorre specificare l'indirizzo API del server Zabbix, che per me è http://zabbix.local/zabbix/api_jsonrpc.php, e le credenziali di accesso. Se tutto è stato fatto correttamente, durante il salvataggio delle impostazioni apparirà un messaggio con il numero di versione dell’API: versione API Zabbix: 5.0.1

Creiamo un Dashboard

Qui inizia la vera magia di Grafana e dei suoi plugin.

Plugin natel-discrete-panel
Abbiamo dati sugli stati dei motori nelle linee (attivo = 1, inattivo = 0). Utilizzando il grafico discreto possiamo disegnare una scala che mostrerà: lo stato del motore, quanto tempo ha lavorato in minuti/ore o % e quanto spesso è stato avviato.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Visualizzazione degli stati dei motori

A mio avviso, questo è uno dei migliori grafici per visualizzare le prestazioni dell'hardware. È chiaro subito quanto tempo è inattivo e in quali modalità opera più spesso. I dati possono essere numerosi, con la possibilità di aggregazione per intervalli e trasformazione dei valori (se il valore è «1», visualizzarlo come «ON»).

Plugin pierosavi-imageit-panel

Imageit è comodo da usare quando hai già uno schema disegnato o una pianta dell'ambiente su cui vuoi sovrapporre i dati dei sensori. Nelle impostazioni di visualizzazione, devi specificare l'URL dell'immagine e aggiungere gli elementi sensor necessari. L'elemento appare sull'immagine e può essere posizionato nel luogo desiderato con il mouse.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Schema del forno con metriche di temperatura e pressione

Plugin agenty-flowcharting-panel

Vorrei parlare più dettagliatamente della creazione di visualizzazioni FlowCharting, poiché è uno strumento incredibilmente funzionale. Permette di realizzare uno schema mnemonico dinamico, i cui elementi reagiranno ai valori delle metriche (cambiando colore, posizione, nome, ecc.).

Acquisizione dei dati

La creazione di qualsiasi elemento di visualizzazione in Grafana inizia con la richiesta di dati da una fonte, che nel nostro caso è Zabbix. Utilizzando le richieste, è necessario ottenere tutte le metriche di cui vogliamo avvalerci nello schema. I dettagli delle metriche sono i nomi degli elementi dati in Zabbix, e si può specificare una singola metrica o più metriche filtrando tramite espressioni regolari. Nel mio esempio, il campo Item contiene l'espressione: «/(^linea 1)|(presenza)|(zucchina)/» — questo significa: selezionare tutte le metriche i cui nomi iniziano esattamente con «linea 1» o contengono la parola «presenza» o contengono la parola «zucchina».

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Esempio di configurazione della richiesta di dati sui motori della prima linea e sulla disponibilità delle materie prime.

Trasformazione dei dati

I dati di origine potrebbero non essere sempre nella forma in cui dobbiamo visualizzarli. Ad esempio, abbiamo dati sul peso del prodotto in un contenitore (kg) ogni minuto, e dobbiamo visualizzare la velocità di riempimento in t/h. Lo faccio nel seguente modo: prendo i dati sul peso e li trasformo con la funzione delta di Grafana, che calcola la differenza tra i valori della metrica, quindi il peso attuale si trasforma in kg/min. Poi moltiplico per 0,06 per convertire il risultato in tonnellate/ora. Poiché la metrica del peso è utilizzata in diverse query, le assegno un nuovo alias (setAlias) e lo utilizzerò nella regola di visualizzazione.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Esempio di utilizzo del parametro delta e del moltiplicatore e di rinominare la metrica nella query

Ecco un altro esempio di trasformazione dei dati: dovevo contare il numero di accensioni (inizio del ciclo = avvio del motore). La metrica è calcolata in base allo stato del motore "linea 1 — pompa di drenaggio dal serbatoio 1 (stato)". Trasformazione: i dati della metrica originale vengono modificati dalla funzione delta (differenza di valori), quindi nella metrica ci sarà un valore «+1» per l'avvio del motore, «-1» per lo stop e «0» quando il motore non cambia il suo stato. Poi rimuovo tutti i valori inferiori a 1 e li sommo. Alla fine ottengo il numero di accensioni del motore.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Esempio di trasformazione dei dati dallo stato attuale al numero di accensioni

Ora parliamo della visualizzazione

Nelle impostazioni di visualizzazione c'è un pulsante «Edit Draw», che apre l'editor dove puoi disegnare uno schema. Ogni oggetto nello schema ha i propri parametri. Ad esempio, se specifichi le impostazioni del font nell'editor, queste verranno applicate alla visualizzazione dei dati in Grafana.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Ecco come appare l'editor in Draw.io

Dopo aver salvato lo schema, esso apparirà in Grafana e sarà possibile creare regole per modificare gli elementi.

Nei parametri () indichiamo:

  • Options — specifica il nome della regola (Rule name), il titolo o l'alias della metrica a cui si applicherà (Apply to metrics). Il tipo di aggregazione dei dati (Aggregation) influisce sul risultato finale della metrica, ad esempio Last — significa che verrà selezionato l'ultimo valore, avg — la media del periodo scelto nell'angolo in alto a destra.
  • Thresholds — parametro dei valori di soglia, descrive la logica di applicazione del colore, ovvero il colore selezionato verrà applicato agli elementi nel diagramma in base ai dati della metrica. Nel mio esempio, con il valore delle metriche "0" — lo stato "Ok" sarà verde, con il valore ">1" lo stato sarà Critico e il colore sarà rosso.
  • Color/Tooltip Mappings e Label/Text Mappings — selezione dell'elemento del diagramma e dello scenario del suo comportamento. Nel primo scenario, l'oggetto sarà colorato, nel secondo — avrà del testo con i dati della metrica. Per selezionare l'oggetto nel diagramma, è necessario premere il segno della catena e cliccare con il mouse sul diagramma.

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
In questo esempio, coloro la pompa e la sua freccia di rosso se è in funzione e di verde se non lo è.

Grazie al plugin flowcharting, sono riuscito a disegnare il diagramma dell'intera linea, nella quale:

  1. cambia il colore degli aggregati in base al loro stato.
  2. c'è un allarme di assenza di prodotto nei serbatoi
  3. viene visualizzata la configurazione delle frequenze dei motori
  4. velocità di riempimento/svuotamento del primo serbatoio
  5. viene calcolato il numero di cicli di lavoro della linea (impasti)

Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione
Visualizzazione del funzionamento della linea di produzione

Risultato

La cosa più difficile per me è stata ottenere i dati dai controller. Grazie alla versatilità di Zabbix per l'acquisizione dei dati e alla flessibilità di Grafana grazie ai plugin, ci sono voluti solo pochi giorni per creare un'interfaccia di monitoraggio complessa della linea di produzione. La visualizzazione ha offerto la possibilità di visualizzare grafici e statistiche dello stato, oltre a un facile accesso via web per tutti gli interessati - tutto ciò ha permesso di identificare rapidamente i colli di bottiglia e l'uso inefficiente degli aggregati.

Conclusione

Mi è piaciuta molto l'integrazione Zabbix+Grafana e raccomando di considerarla se avete bisogno di elaborare rapidamente i dati dai controller o dai sensori senza programmare o implementare complessi prodotti commerciali. Certamente non sostituirà i sistemi SCADA professionali, ma sarà sufficiente come strumento di monitoraggio centralizzato per l'intera produzione.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster