Grafana+Zabbix: Visualizzazione del funzionamento della linea di produzione

In questo articolo voglio condividere l'esperienza nell'uso dei sistemi open source Zabbix e Grafana per visualizzare il funzionamento delle linee di produzione. Le informazioni possono essere utili a chi cerca un modo rapido per la visualizzazione o l'analisi dei dati raccolti nei progetti di automazione industriale o IoT. L'articolo non è una guida dettagliata, ma piuttosto un concetto di sistema di monitoraggio basato su un software open source per l'industria.

Strumenti

Zabbix – lo utilizziamo da tempo per monitorare l'infrastruttura IT dell'impianto. Il sistema si è rivelato così comodo e versatile che abbiamo iniziato a registrare al suo interno i dati delle linee di produzione, sensori e controllori. Questo ci ha consentito di raccogliere tutte le metriche in un unico posto, creare grafici semplici sui consumi delle risorse e sulle prestazioni delle attrezzature, ma mancava molto l'analisi e grafici accattivanti.

Grafana – è uno strumento potentissimo per l'analisi e la visualizzazione dei dati. Un gran numero di plugin consente di estrarre dati da varie fonti (zabbix, clickhouse, influxDB), elaborarli al volo (calcolare valori medi, somme, differenze, ecc.) e disegnare diversi tipi di grafici (da linee semplici, indicatori di velocità, tabelle a schemi complessi).

Draw.io – un servizio che permette di disegnare da un semplice diagramma a blocchi a un piano degli ambienti in un editor online. 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, io cercherò di descrivere i punti principali della configurazione.

Su Zabbix server si crea un «nodo di rete» (host), al quale apparterranno «elementi di dati» (item) con le metriche dai nostri sensori. È consigliabile pianificare in anticipo i nomi dei nodi e degli elementi di dati, rendendoli il più strutturati possibile, poiché li utilizzeremo in Grafana attraverso espressioni regolari. Questo approccio è comodo perché con una sola query si possono ottenere dati da un gruppo di elementi.

Per configurare Grafana sarà necessario installare plugin aggiuntivi:

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

L'integrazione stessa con Zabbix si configura in Grafana, nel menu ConfigurationData sourcesZabbix. Qui è necessario inserire l'indirizzo API del server Zabbix, per me è http://zabbix.local/zabbix/api_jsonrpc.php, e le credenziali di accesso. Se tutto è configurato correttamente, al salvataggio delle impostazioni verrà mostrato un messaggio con il numero di versione API: zabbix API version: 5.0.1

Creiamo un Dashboard

Qui inizia quella magica esperienza di Grafana e dei suoi plugin.

Plugin natel-discrete-panel
Abbiamo dati sullo stato dei motori sulle linee (in funzione = 1, non funziona = 0). Con il grafico discreto possiamo disegnare una scala che mostri: stato del motore, quanto tempo ha funzionato in minuti/orari o % e con quale frequenza è 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 delle attrezzature. Si vede subito quanto tempo rimane inattivo e in quali modalità funziona più frequentemente. I dati possono essere molti, con la possibilità di aggregarli per intervalli, trasformando i valori (se il valore è "1", mostrare come "ON")

Plugin pierosavi-imageit-panel

Imageit è utile quando hai già uno schema o una pianta dell'ambiente disegnata, su cui vuoi sovrapporre i dati dei sensori. Nelle impostazioni di visualizzazione, è necessario inserire l'URL dell'immagine e aggiungere gli elementi sensor necessari. Gli elementi compaiono sull'immagine e possono essere posizionati 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 approfondire la creazione di visualizzazioni FlowCharting, poiché è uno strumento incredibilmente funzionale. Permette di creare una mappa mnemonica dinamica, i cui elementi reagiscono ai valori delle metriche (cambiando colore, posizione, nome, ecc.).

Acquisizione dati

La creazione di qualsiasi elemento di visualizzazione in Grafana inizia con la richiesta di dati dalla fonte, che nel nostro caso è Zabbix. Attraverso le richieste, occorre ottenere tutte le metriche che vogliamo utilizzare nello schema. Le chiavi delle metriche sono i nomi degli elementi di dati in Zabbix, e si può specificare sia una singola metrica che un insieme filtrando tramite espressioni regolari. Nel mio esempio, il campo Item contiene l'espressione: «\/(^linea 1)|(disponibilità)|(zucchino)\/» — ciò significa: selezionare tutte le metriche il cui nome inizia esattamente con «linea 1», contiene la parola «disponibilità» o contiene la parola «zucchino»

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 sorgente potrebbero non essere sempre nella forma in cui abbiamo bisogno di visualizzarli. Ad esempio, abbiamo dati al minuto sul peso del prodotto in contenitore (kg) e abbiamo bisogno di 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, così il peso attuale diventa kg/min. Poi moltiplico per 0,06 per convertire il risultato in tonnellate/ora. Poiché la metrica del peso viene utilizzata in diverse richieste, 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 rinominazione della metrica nella richiesta

Ecco un altro esempio di trasformazione dei dati: dovevo contare il numero di mescolamenti (inizio del ciclo = avvio del motore). La metrica viene calcolata in base allo stato del motore "linea 1 — pompa di drenaggio consiglio 1 (stato)". Trasformazione: cambiamo i dati della metrica sorgente con la funzione delta (differenza dei valori), in questo modo la metrica avrà il valore «+1» per l'avvio del motore, «-1» per la fermata e «0» quando il motore non cambia stato. Dopodiché, elimino tutti i valori inferiori a 1 e li sommo. Il risultato è il numero di avviamenti del motore.

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

Ora parliamo della visualizzazione vera e propria

Nelle impostazioni di visualizzazione c'è un pulsante «Edit Draw», che apre un editor in cui è possibile disegnare lo schema. Ogni oggetto nello schema ha i propri parametri. Ad esempio, se si specificano le impostazioni del carattere nell'editor, 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, apparirà nella grafana e sarà possibile creare regole per modificare gli elementi.

Nei parametri () indichiamo:

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

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 lo schema dell'intera linea, in cui:

  1. cambia il colore degli aggregati in base al loro stato
  2. c'è un allarme per l'assenza di prodotto nei serbatoi
  3. si mostra l'impostazione delle frequenze dei motori
  4. velocità di riempimento/svuotamento del primo serbatoio
  5. si conta il numero di cicli di funzionamento della linea (impasti)

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

Risultato

La parte più complessa per me è stata ottenere i dati dai controllori. Grazie alla versatilità di Zabbix nella raccolta dei dati e alla flessibilità di Grafana grazie ai plugin, sono stati necessari solo un paio di giorni per creare uno schermo di monitoraggio complesso della linea di produzione. La visualizzazione ha consentito la visualizzazione di grafici e statistiche di stato, oltre a un facile accesso via web per tutti gli interessati — tutto ciò ha permesso di individuare rapidamente i colli di bottiglia e l'uso inefficiente degli aggregati.

Conclusione

Mi è piaciuto molto il collegamento Zabbix+Grafana e consiglio di prestare attenzione a questo strumento, se hai bisogno di elaborare rapidamente dati da controller o sensori senza programmazione o l'implementazione di complessi prodotti commerciali. Certamente, non sostituirà i sistemi SCADA professionali, ma sarà sufficiente come strumento di monitoraggio centralizzato dell'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