Création — Nicolas THOREZ 2021/09/02 14:53
Mise à jour — Nicolas THOREZ 2022/11/27 18:33
Grafana est un outil permettant l'unification, l'uniformisation et la visualisation de données collectés. Il permet de gérer des alertes ce qui en fait un outil très intéressant dans le cadre des opérations de maintient en conditions opérationnelles d'une infrastructure. Pour son bon fonctionnement, Grafana va être aider de InfluxDB et de Telegraf dans les rôles suivants :
Grafana : Tableau de bord pour la visualisation des données.InfluxDB : Base de données de type Time Series, utile en terme de performances.Telegraf : Agent de collecte de données sur les postes clients.Références :
InfluxDB, Telegraf et Grafana nécessitent certains paquets, il faut donc s'assurer de les installer avant :
apt install -y gnupg2 curl software-properties-common
root. Par conséquent, faîtes attention à ce que vous faîtes et rappelons-le, les sauvegardes et snapshots de VM sont toujours utiles.
add-apt-repository "deb https://repos.influxdata.com/debian bullseye stable" apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 684A14CF2582E0C5 apt update
InfluxDB :
apt install -y influxdb
influxdb nécessite l'écoute du port 8086. Il nous faut donc ouvrir ce port :
iptables -A INPUT -p tcp --dport 8086 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
systemctl enable influxdb systemctl start influxdb systemctl status influxdb
influx_bdd pour l'exemple) :
influx -execute "CREATE DATABASE influx_bdd"
influx -execute "CREATE USER influx_user WITH PASSWORD 'P@ssw0rd'" influx -execute "GRANT ALL ON influx_bdd TO influx_user"
influx -execute "CREATE RETENTION POLICY "a_year" ON "influx_bdd" DURATION 52w REPLICATION 1 DEFAULT"
apt install -y telegraf
/etc/telegraf/telegraf.conf. Ce fichier contient énormément de données, toutes ne vous seront pas obligatoirement utiles. Vous aurez cependant besoin de spécifier :[agent] (facultatif) :logtarget = "file" : Active les logs locaux.logfile = "/var/log/telegraf/telegraf.log" : Fichier de destination pour l'écriture des logs.logfile_rotation_interval = "24h" : Age du fichier log avant rotation.logfile_rotation_max_size = "1GB" : Taille maximale du fichier log avant rotation.logfile_rotation_max_archives = 5 : Nombre de fichier de log à conservé.outputs.influxdb (obligatoire)urls = ["http://xxx.xxx.xxx.xxx:8086"] : Adresse du serveur influxdb.database = "influx_bdd" : Nom de la base.username = "influx_user" : Utilisateur pour la connexion.password = "P@ssw0rd" : Mot de passe pour la connexion.inputs.*inputs qui nous intéresse.
systemctl enable telegraf systemctl start telegraf
Grafana. On commence donc par l'ajout du dépôt :
curl -fsSL https://packages.grafana.com/gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/grafana.gpg add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
apt update && apt -y install grafana
3000, on paramètre donc le pare-feu en ce sens :
-A INPUT -p tcp --dport 3000 -m state --state NEW,ESTABLISHED,RELATED -j SHYRKA
systemctl enable grafana-server systemctl start grafana-server
grafana sur le port 3000 du serveur.admin et son mot de passe admin :Submit :influxdb. On va donc cliquer sur l'icône des paramètres puis Data sources :Add data source :infludb et on clique sur la source :URL : l'adresse et le port du serveur influxdb.Database : le nom de la base.User : l'utilisateur pour la connexion.Password : le mot de passe de l'utilisateur.Save & test :dashboard. Il est possible de le créer de toute pièce (option + New dashboard) mais le plus simple est d'en importer un. Le site Grafana - Dashboards en propose de nombreux. Du coup, on va cliquer sur l'onglet Dashboards puis + Import :dashboard à importer et on clique sur Load :Import :dashbord. Il ne nous reste plus qu'à l'enregistrer :Save :