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.
Per una piccola panoramica fate riferimento a questo post.
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
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
Chronograf risponde sulla porta 8888 quindi basta puntare il browser all'indirizzo http://localhost:8888
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
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
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.






