Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Grafana - Installation d'un outil de visualisation de données ====== <poem> <label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2021/09/02 14:53// <label type="success">Mise à jour</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2022/11/27 18:33// </poem> ===== 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 : <sxh bash>apt install -y gnupg2 curl software-properties-common</sxh> ===== InfluxDB ===== <callout type="info" title="Environnement" icon="true">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.</callout> <callout type="danger" title="Droits" icon="true">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.</callout> ==== Installation ==== * On commence par ajouter le dépôt avant de mettre à jour notre base : <sxh bash>add-apt-repository "deb https://repos.influxdata.com/debian bullseye stable" apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 684A14CF2582E0C5 apt update</sxh> * On peut maintenant télécharger et installer ''InfluxDB'' : <sxh bash>apt install -y influxdb</sxh> * Le service ''influxdb'' nécessite l'écoute du port ''8086''. Il nous faut donc ouvrir ce port : <sxh bash>iptables -A INPUT -p tcp --dport 8086 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT</sxh> * On peut désormais activer et lancer le service : <sxh bash>systemctl enable influxdb systemctl start influxdb systemctl status influxdb</sxh> ==== Paramétrage ==== * On va maintenant créer la base de données (''influx_bdd'' pour l'exemple) : <sxh bash>influx -execute "CREATE DATABASE influx_bdd"</sxh> * On crée l'utilisateur et on lui donne les droits sur la base : <sxh bash>influx -execute "CREATE USER influx_user WITH PASSWORD 'P@ssw0rd'" influx -execute "GRANT ALL ON influx_bdd TO influx_user"</sxh> * On règle la rétention de données : <sxh bash>influx -execute "CREATE RETENTION POLICY "a_year" ON "influx_bdd" DURATION 52w REPLICATION 1 DEFAULT"</sxh> ===== Telegraf ===== * On installe le paquet à partir des dépôts déjà configurés : <sxh bash>apt install -y telegraf</sxh> * 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 : <sxh bash>systemctl enable telegraf systemctl start telegraf</sxh> ===== 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 : <sxh bash>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"</sxh> * On installe le paquet : <sxh bash>apt update && apt -y install grafana</sxh> * Le service nécessite l'accès au port ''3000'', on paramètre donc le pare-feu en ce sens : <sxh>-A INPUT -p tcp --dport 3000 -m state --state NEW,ESTABLISHED,RELATED -j SHYRKA</sxh> * On peut désormais activer et lancer le service : <sxh bash>systemctl enable grafana-server systemctl start grafana-server</sxh> ==== 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 |}} <callout type="success" title="Enjoy" icon="true">Et voilà ! Vos serveurs sont désormais monitorés via une plateforme graphique assez agréable à regarder et plutôt efficace dans les faits.</callout> ~~DISCUSSION~~ grafana.txt Dernière modification : 2022/11/29 10:44de nekan