Installiamo uno stack TICK per il monitoraggio IoT

Probabilmente molti di voi conosceranno il database per serie temporali InfluxDB particolarmente adatto ad applicazioni in ambito IoT. Ma non si tratta del solo prodotto sviluppato dalla InfluxData. A fargli compagnia ci sono: Telegraf, Chronograf e Kapacitor.

Il primo è un cosiddetto data collector, ovvero un modulo che consente di acquisire dati  da una infinità di sorgenti, per ciascuna delle quali esiste uno specifico plugin da installare e configurare.

Chronograf si occupa della visualizzazione dei dati, consentendo la creazione di dashboard molto complesse ed è assimilabile ad altri tool del genere come il famosissimo Grafana.

L’ultimo della famiglia, Kapacitor, permette di aggiungere uno strato di logica ai dati, cioè di processarli sulla base di funzioni scritte dagli utenti ed eventualmente inviare degli alert. Può rivelarsi molto utile per scovare delle anomalie nella mole di dati acquisiti ed è in grado di operare anche in realtime.

Pur potendo installare i singoli moduli separatamente e autonomamente, in questo post vedremo come creare lo stack TICK (Telegraf, InfluxDB, Chronograf e Kapacitor) servendoci della potenza e versatilità di Docker, in modo che tutti i servizi siano configurati e in esecuzione in pochissimi secondi.

Per prima cosa creiamo una cartella, ad esempio tick, e copiamo i due file  docker-compose.yml e telegraf.conf che è possibile scaricare da https://github.com/influxdata/TICK-docker scegliendo una delle versioni disponibili. In alternativa è possibile clonare l’intero repository.

N.B. Nel momento in cui sto scrivendo questo post non è disponibile l’aggiornamento alla versione 1.3 per cui ho recuperato i file da un fork.  Comunque è già stata aperta una PR, quindi il codice dovrebbe essere integrato a breve.

Se si opta per la soluzione manuale occorre posizionare il file telegraf.conf all’interno della sottocartella “etc”.

Ora non resta che eseguire il comando

docker-compose up -d

La prima volta verranno scaricate tutte le immagini richieste, in seguito avviati esclusivamente i servizi specificati nel file di configurazione.

Possiamo verificare che tutti i servizi siano attivi digitando

docker-compose ps

tick1

ma anche fare un check più approfondito partendo da InfluxDB. E’ disponibile una CLI che possiamo richiamare da

docker-compose run influxdb-cli

In particolare assicuriamoci che sia presente il database telegraf

influxdb-cli

Chronograf risponde sulla porta 8888 quindi basta puntare il browser all’indirizzo http://localhost:8888

chronograf

Anche per Kapacitor è disponibile una CLI avviabile con
docker-compose run kapacitor-cli
Quindi proviamo a visualizzare la lista dei task attivi (ovviamente vuota in questo caso) con
kapacitor list tasks

kapacitor

e infine, ritornando alla CLI di influxdb, accertiamoci che il modulo sia in grado di accedere a tutti i database con

docker-compose run influxdb-cli
show subscriptions

kapacitor-subscriptions

Se tutti i check hanno dato esito positivo siamo sicuri che lo stack è perfettamente funzionante e pronto a fare il suo lavoro.

La prossima volta vedremo come acquisire dei dati da una sorgente con l’aiuto di Telegraf e dei suoi plugin.

 

Ritieni che il post sia interessante? Se ti va puoi confermare le mie competenze o aggiungere una segnalazione sul mio profilo LinkedIn.

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Utilizzando il sito, accetti l'invio dei cookies da parte nostra. Maggiori informazioni

Questo sito utilizza i cookies per fornire la migliore esperienza di navigazione possibile. Continuando ad utilizzarlo senza modificare le impostazioni o cliccando su "Accetta" acconsenti al loro utilizzo.

Chiudi