Time Series Database (TSDB) : base de données optimisée pour les grands volumes de données ordonnés chronologiquement, les mesures et événements horodatées.
| Produit | Langage | Site |
|---|---|---|
| InfluxDB | Go | influxdata.com |
| Prometheus | Go | prometheus.io |
| OpenTSDB | opentsdb.net | |
| Apache Druid | Java | druid.apache.org |
| Apache Kudu | C++ | kudu.apache.org |
| Whisper (Graphite) | Python | graphiteapp.org |
| eXtremeDB | mcobject.com | |
| IBM Informix TimeSeries | C / C++ | ibm.com |
| Kx kdb+ | Q | code.kx.com |
| Riak-TS | Erlang | riak.com |
| RRDtool | C | https://oss.oetiker.ch/rrdtool/ |
InfluxDB est un moteur de base de données, organisé en séries de temps (Time Series). Il s’agit d’un ensemble de valeurs collectés à intervalles réguliers sur une période de temps donnée. Elle supporte des charges élevées de lecture et d’écriture.
Ce type de base de données mesure les changements au fil du temps. Elle propose des fonctionnalités de gestion du cycle de vies des données, d’agrégation (summarization), et permet de parcourir de larges rangées d’enregistrements.
La clé primaire de chaque enregistrement est la date et l’heure de création de l’enregistrement.
La solution d’InfluxData comprend plusieurs briques logiciels :
Telegraf, capable de lire et recevoir des données suivant des formats et protocoles différents ;InfluxDb, qui stocke les données ;Chronograf ;Kapacitor.Cette solution est utilisée en DevOps pour la surveillance des systèmes (nombre de requêtes par seconde, utilisation du processeur, de la mémoire, etc …), les mesures d’applications (nombre d’envoi de mail par seconde, …), les données de capteurs IoT et les analyses en temps réel.
Dans le cas ou un serveur PC surveille notre installation Raspberry.
docker pull influxdb:2.0.4
Dans le cas où le Raspberry est utilisé comme agent de surveillance de nos serveurs et machines.
Ajouter la clé gpg https://repos.influxdata.com/influxdb.keydans le porte-clé du système.
wget -qO /usr/local/share/keyrings/influxdb.gpg https://repos.influxdata.com/influxdb.key
Convertir la clé au format gpg NE FONCTIONNE PAS
echo '23a1c8836f0afc5ed24e0486339d7cc8f6790b83886c4c96995b88a061c5bb5d influxdb.key' | sha256sum -c && cat influxdb.key | gpg --dearmor | sudo tee /usr/local/share/keyrings/influxdb.gpg > /dev/null
sha256sum -c 23a1c8836f0afc5ed24e0486339d7cc8f6790b83886c4c96995b88a061c5bb5d influxdb.key
influxdb.key GPG Fingerprint: 05CE15085FC09D18E99EFB22684A14CF2582E0C5
echo ‘deb [signed-by=/etc/apt/keyrings/influxdb.gpg] https://repos.influxdata.com/debian stable main’ | sudo tee /etc/apt/sources.list.d/influxdata.list
sudo apt-get update && sudo apt-get install telegraf
#ajout du dépôt pour apt
echo "deb [signed-by=/usr/local/share/keyrings/influxdb.gpg] https://repos.influxdata.com/debian stable main" | sudo tee /etc/apt/sources.list.d/influxdata.list
#mise à jour de la liste des paquets contenus dans les dépôts
apt update
Installer le paquet logiciel influxdb.
Activer le service influxdb
systemctl enable --now influxdb
influx
# Créer une base de données
> CREATE DATABASE iutsd
# Vérifier la présence de la base de données
> SHOW DATABASES
# Se placer dans la base de donnée
> USE iutsd
# Insérer une donnée dans la base
> INSERT nom,numero=127 solde=60.0
Visualiser les données
> SELECT solde FROM nom
Structure d’une donnée
mesure[,<tag-key>=<valeur>...] <grandeur1>=<valeur>[,<grandeur2>=<valeur2>...] [unix-nano-timestamp]
Un mesure est associée à une ou plusieures étiquette.
Installer le paquet logiciel telegraf.
systemctl enable --now telegraf
Activer la collecte depuis le protocole MQTT
:time stamped données horodaté, reliée à un temps précis.