====== Grafana - Installation d'un outil de visualisation de données ======
--- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2021/09/02 14:53//
--- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2022/11/27 18:33//
===== Présentation =====
''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 :
* [[https://grafana.com/grafana/|Grafana]]
* [[https://www.influxdata.com/|InfluxDB]]
* [[https://www.influxdata.com/time-series-platform/telegraf/|Telegraf]]
===== Prérequis =====
''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
===== InfluxDB =====
Cette procédure a été réalisée et testé sur une VM en Debian 11, hébergée par un serveur Proxmox 7.0.Cette procédure nécessite les droits ''root''. Par conséquent, faîtes attention à ce que vous faîtes et rappelons-le, les sauvegardes et snapshots de VM sont toujours utiles.
==== Installation ====
* On commence par ajouter le dépôt avant de mettre à jour notre base :
add-apt-repository "deb https://repos.influxdata.com/debian bullseye stable"
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 684A14CF2582E0C5
apt update
* On peut maintenant télécharger et installer ''InfluxDB'' :
apt install -y influxdb
* Le service ''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
* On peut désormais activer et lancer le service :
systemctl enable influxdb
systemctl start influxdb
systemctl status influxdb
==== Paramétrage ====
* On va maintenant créer la base de données (''influx_bdd'' pour l'exemple) :
influx -execute "CREATE DATABASE influx_bdd"
* On crée l'utilisateur et on lui donne les droits sur la base :
influx -execute "CREATE USER influx_user WITH PASSWORD 'P@ssw0rd'"
influx -execute "GRANT ALL ON influx_bdd TO influx_user"
* On règle la rétention de données :
influx -execute "CREATE RETENTION POLICY "a_year" ON "influx_bdd" DURATION 52w REPLICATION 1 DEFAULT"
===== Telegraf =====
* On installe le paquet à partir des dépôts déjà configurés :
apt install -y telegraf
* On configure l'agent en éditant le fichier ''/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 :
* Section ''[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é.
* Section ''[[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.
* Sections ''[[inputs.*]]''
* On active toutes les sections ''inputs'' qui nous intéresse.
* Une fois les paramétrages terminés, on active le service :
systemctl enable telegraf
systemctl start telegraf
===== Grafana =====
==== Installation ====
* Une fois les agents installés sur tous les serveurs à monitorer, on peut passer à ''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"
* On installe le paquet :
apt update && apt -y install grafana
* Le service nécessite l'accès au port ''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
* On peut désormais activer et lancer le service :
systemctl enable grafana-server
systemctl start grafana-server
==== Paramétrages ====
* On accède donc à l'interface de ''grafana'' sur le port ''3000'' du serveur.
* Il nous faut commencer par définir le mot de passe administrateur. Par défaut, le compte utilisateur est ''admin'' et son mot de passe ''admin'' :
{{ :linux:grafana:graf_001.png |}}
* On renseigne le nouveau mot de passe et on clique sur ''Submit'' :
{{ :linux:grafana:graf_002.png |}}
* On doit ajouter la source de données ''influxdb''. On va donc cliquer sur l'icône des paramètres puis ''Data sources'' :
{{ :linux:grafana:graf_003.png |}}
* On clique sur ''Add data source'' :
{{ :linux:grafana:graf_004.png |}}
* Il y a de nombreuses sources possibles. On recherche donc ''infludb'' et on clique sur la source :
{{ :linux:grafana:graf_005.png |}}
* On renseigne :
* ''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.
* Une fois terminé, on clique sur ''Save & test'' :
{{ :linux:grafana:graf_006.png |}}
* Si tout est correct, le système nous l'indique :
{{ :linux:grafana:graf_007.png |}}
* On peut désormais créer le tableau de données ou ''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 [[https://grafana.com/grafana/dashboards/|Grafana - Dashboards]] en propose de nombreux. Du coup, on va cliquer sur l'onglet ''Dashboards'' puis ''+ Import'' :
{{ :linux:grafana:graf_008.png |}}
* On entre le numéro du ''dashboard'' à importer et on clique sur ''Load'' :
{{ :linux:grafana:graf_009.png |}}
* On indique la source de données et on clique sur ''Import'' :
{{ :linux:grafana:graf_010.png |}}
* On accède alors à notre ''dashbord''. Il ne nous reste plus qu'à l'enregistrer :
{{ :linux:grafana:graf_011.png |}}
* On clique donc sur ''Save'' :
{{ :linux:grafana:graf_012.png |}}
Et voilà ! Vos serveurs sont désormais monitorés via une plateforme graphique assez agréable à regarder et plutôt efficace dans les faits.
~~DISCUSSION~~