L’informazione è la merce più preziosa ai giorni nostri.
L’informazione permette scelte decisionali ottimali. Permette di salvare vite, crea nuovi posti di lavorio, nuove specializzazioni, ed un infinità di altre fondamentali cose che non riguardano l’informatica.
I dati, hanno una caratteristica, crescono a dismisura e vanno archiviati.
In questo tutorial, prendiamo esempio, di aver progettato un macchinario, un casa domotica o quello che preferite.
I valori dei sensori saranno vitali per la gestione e magari la sicurezza. Pensa ad un sensore di incendio, un avviso di blocco della produzione, o a qualsiasi altra cosa necessiti di monitoraggio.
Obbiettivo
L’idea è semplice, prendere i dati da molti dispositivi indipendenti, archiviarli in un database Influxdb, creare dei grafici e magari degli allert usando Chronograf.
I modi sono molteplici, ma ho scelto l’uso di InfluxDB, perché :
- è un database basato sulle serie temporali
- facile da usare e ben documentato, con librerie per molti linguaggi
- pensato per l’ iot
- non ha dipendenze
- gestisce grossi volumi di dati rapidi per l’analisi in realtime
- è un database NoSql
- Chronograf permette di creare grafici e gestire i database in modo semplice
- è integrato con telegraf, l’agente di raccolta dati
Installazione
Partiamo dall’ installazione del nostro database InfluxDb
Partiamo dal sito influxdata , non è necessario registrarci, una volta selezionato il influxdb, consiglio la versione stabile, ci verrano proposte le possibilità per OS X, Docker, Ubuntu Debian, Readhat & Centos, Mac OS X, Windows 64 bit, Arm e binari linux generici. Il tutto presentato in modo molto chiaro e semplice.
Nel mio caso uso Raspian Buster Lite per RaspberryPi, quindi esegui il comando proposto dal sito, attualmente è
Download
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add - source /etc/os-release echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
Installazione
Precedendo col semplice APT, installiamo influxdb ed avviamolo come servizo
sudo apt-get update && sudo apt-get install influxdb sudo service influxdb start
Configurazione
InfluxDb come molti software ha il suo file di configurazione editabile tramite
nano /etc/influxdb/influxdb.conf
inoltre possiamo leggere la configurazione attiva tramite
influxd config
Le istruzioni per gli altri sistemi le troviamo nella documentazione ufficiale.
Perfetto! Abbiamo il motore del database attivo e possiamo attualmente gestirlo tramite la pagina riga di comando.
Se non funziona, verifica di aver aperto la porta nel firewall del dispositivo in cui risiede InfluxDb.
Gestione Web
Per chi amasse una gestione web, InfluxData offre la sua interfaccia web, per manipolare i database e
creare delle dashboard web responsive molto interessanti e incredibilmente facili da gestire, tramite pochi click.
La soluzione si chiama Chronograf, attualmente la V.17
Tornando alla pagine di download scarichiamo l’ultima versione stabile installandola successivamente
Installazione
Come per il influxdb troveremo pronto il pacchetto installabile conf
apt install chronograf
L’installazione ci avvierà il relativo servizio, che sarà accessibile tramite il link
http://[indirizzo ip]:8888
Dopo la schermata di benvenuto, basterà impostare dei semplici dati, scegliendo un nome utente per il login protetto, il nome da dare alla connessione del database e il relativo link. E’ necessario perché potrei avere Chronograf nel Mac e mille connessioni a database sparsi per il mondo.
Il database telegraf si può lasciare cosi, come per le Retention policy.
La scelta successiva è inerente alle Dashboard, in base alle esigenze,
selezioniamo InfluxDb per proseguire.
Ultimo step, Kapacitor, lo installeremo dopo, o mettete i dati se siete partiti subito con
sudo apt install telegraf influxdb chronograf kapacitor
Chronograf
Chronograf ha un menu a sinitra con i seguenti scopi
- Home: raccoglie alert e feed
- Host List: una lista aggiornata degli host che hanno inviato dati
- Explore: a mano che gli host invieranno dati, verrà popolata e potremmo con pochi click impostare la query e relativa modalità di visualizzazione, nel menù visualization. Tips. Se non vedi il valore, imposta Fill:none. Inizia a capire l’uso sfogliando _internal.monitor
- Dashboard: l’elenco di tutte le dashboard, la prima Influxdb richiede telegraf, vediamolo dopo.
- Allerting: gestione degli allert ed azioni tramite kapacitor
- Log viewer: elenco log
- InfluxDb Admin: possiamo creare e cancellare i database, utenti
- Configuration: gestione dei collegamenti ai database vari
Se abbiamo già operativi gli agent telegraf, nella sezione dashboard, influxdb
cloniano il template, cliccando su Variables, ingranaggio, FROM system WITH KEY host, save. Avremmo a disposizione tutti i dati inviati da telegraf installato nei nostri server sparsi per il mondo. Ricordati di attivare il refresh.
Inviare dati
InfluxDb è supportato da vari client in vari linguaggi, dal più semplice curl a C++, Elixir, Erlang, Go, Haskell, Java, JavaScript/Node.js, Lisp, MatLab,.Net, Perl, PHP, Python, R, Ruby, Rust, Scala, Sensu, SNMP agent.
Che ne dici, sono sufficenti?
Che ne dici di partire con curl?
Dopo aver creato il database “sensori” in Chronograf o linea di comando prova ad inviare un dato
CURL
curl -i -XPOST 'http://localhost:8086/write?db=sensori' --data-binary 'misurazioni,host=raspberrygiardino,zona=vialetto temperatura=21'
Per gli altri linguaggi qui troverai ulteriori dettagli.
Questa era la base che ti consiglio di appofondire leggendo i file di configurazione vari e la documentazione ufficiale.
La guida proseguirà con la seconda parte.
Materiale
La guida è stata testata su
- RaspberryPi 3B
- Influxdb 1.7.9
- Telegraf 1.13.0
- Kapacitor 1.5.3
- Ubuntu Server 18