Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
grafana [2022/11/27 10:52] nekangrafana [2022/11/29 10:44] (Version actuelle) – [Installation de Grafana] nekan
Ligne 1: Ligne 1:
-====== Installation de Grafana ======+====== 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="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 ===== ===== Présentation =====
  
Ligne 21: Ligne 23:
 <sxh bash>apt install -y gnupg2 curl software-properties-common</sxh> <sxh bash>apt install -y gnupg2 curl software-properties-common</sxh>
  
-===== Installation =====+===== 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="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> <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 :   * On commence par ajouter le dépôt avant de mettre à jour notre base :
Ligne 31: Ligne 35:
 apt update</sxh> apt update</sxh>
   * On peut maintenant télécharger et installer ''InfluxDB'' :   * On peut maintenant télécharger et installer ''InfluxDB'' :
-<sxh bash>apt install -y influxdb2</sxh> +<sxh bash>apt install -y influxdb</sxh> 
-  * L'installation de la base terminéeon peut lancer le service : +  * Le service ''influxdb'' nécessite l'écoute du port ''8086''. Il nous faut donc ouvrir ce port : 
-<sxh bash>service influxdb start</sxh> +<sxh bash>iptables -A INPUT -p tcp --dport 8086 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT</sxh> 
-  * On peut désormais se connecter à l'interface de ''InfluxDB'' sur le port 8086 de l'adresse de notre serveur. On clique alors sur ''Get Started'' pour commencer sa configuration +  * On peut désormais activer et lancer le service : 
-<image shape="thumbnail">{{ :linux:grafana:grafana_001.png |}}</image+<sxh bash>systemctl enable influxdb 
-  * On crée l'utilisateur initial en renseignant son nom, son mot de passe, son organisation (cela équivaut à son groupe) et son //bucket// (c'est-à-dire sa base). Cela fait, on clique sur ''Continue'' : +systemctl start influxdb 
-<image shape="thumbnail">{{ :linux:grafana:grafana_002.png |}}</image+systemctl status influxdb</sxh> 
-  * Sur l'écran suivant, nous avaons le choix entre trois options pour terminer la primo-configuration de la base : + 
-    * ''Quick Start'' : Cette option va paramétrer automatiquement la base pour acquérir les données locales envoyées par ''Telegraf''+==== Paramétrage ==== 
-    * ''Advanced'' : Comme son nom l'indique, cela permet aux utilisateurs expérimentés de paramétrer la base selon leurs souhaits. + 
-    * ''Configure Later'' : Permet de configurer ultérieurement la base. +  * On va maintenant créer la base de données (''influx_bdd'' pour l'exemple) 
-  * Pour ma part, j'ai cliqué sur ''Configure Later'' +<sxh bash>influx -execute "CREATE DATABASE influx_bdd"</sxh
-<image shape="thumbnail">{{ :linux:grafana:grafana_003.png |}}</image+  * On crée l'utilisateur et on lui donne les droits sur la base : 
-  * On peut maintenant se lancer dans l'installation de ''Telegraf'' :+<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_bddDURATION 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> <sxh bash>apt install -y telegraf</sxh>
-  * On retourne sur l'interface de ''InfluxDB'' et on va dans ''Data''''Telegraf'' et on clique sur ''Create Configuration''+  * 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 : 
-<image shape="thumbnail">{{ :linux:grafana:grafana_004.png |}}</image+    * Section ''[agent]'' (facultatif) : 
-  * On choisit ''System'' et on clique sur ''Continue''+      * ''logtarget = "file"'' : Active les logs locaux. 
-<image shape="thumbnail">{{ :linux:grafana:grafana_005.png |}}</image> +      * ''logfile = "/var/log/telegraf/telegraf.log"'' : Fichier de destination pour l'écriture des logs. 
-  * On entre le nom de cette configuration et sa description puis on clique sur ''Create and Verify''+      * ''logfile_rotation_interval = "24h"''Age du fichier log avant rotation. 
-<image shape="thumbnail">{{ :linux:grafana:grafana_006.png |}}</image> +      * ''logfile_rotation_max_size = "1GB"'' : Taille maximale du fichier log avant rotation. 
-  * Là, on va pouvoir tester notre configuration. L'interface nous donne un jeton à exporter et une commande de collecte. On va donc les exécuter et cliquer sur ''Listen for Data''+      * ''logfile_rotation_max_archives = 5'' : Nombre de fichier de log à conservé. 
-<image shape="thumbnail">{{ :linux:grafana:grafana_007.png |}}</image> +    * Section ''[[outputs.influxdb]] (obligatoire)'' 
-  * Si la configuration est bonne, le message ''Connection Found!'' apparaît. On peut alors cliquer sur ''Finish''+      * ''urls = ["http://xxx.xxx.xxx.xxx:8086"]'' : Adresse du serveur ''influxdb''
-<image shape="thumbnail">{{ :linux:grafana:grafana_008.png |}}</image> +      * ''database = "influx_bdd"'' : Nom de la base. 
-  * La configuration apparaît alors sur l'interface. On alors cliquer sur son nom +      * ''username = "influx_user"'' : Utilisateur pour la connexion. 
-<image shape="thumbnail">{{ :linux:grafana:grafana_009.png |}}</image> +      * ''password = "P@ssw0rd"'' : Mot de passe pour la connexion. 
-  * Cela fait apparaître la configuration à entrer dans le fichier ''/etc/telegraf/telegraf.conf'' pour que le service soit automatisé. Il nous reste plus qu'à modifier ce fichier en ce sens. On pourra aussi ajouter les option suivantes +    * Sections ''[[inputs.*]]'' 
-    * ''logtarget = "file"''Cette option va activer l'envoi des logs dans un fichier+      * On active toutes les sections ''inputs'' qui nous intéresse. 
-    * ''logfile = "/var/log/telegraf/telegraf.log"''Cette option indique dans quel fichier envoyer les logs+  * Une fois les paramétrages terminés, on active le service : 
-    * ''logfile_rotation_interval = "1d"''Cette option va activer la rotation des logs tous les jours+<sxh bash>systemctl enable telegraf 
-    * ''logfile_rotation_max_size = "1GB"''Cette option va permettre d'activer la rotation plus tôt si le fichier de logs dépasse les 1Go+systemctl start telegraf</sxh> 
-    * ''logfile_rotation_max_archives = 5''Cette option supprimera les anciens logsne gardant que les 5 derniers+ 
-  * Le fichier de log n'existant pas, il faut le créer et lui donner les bons droits : +===== Grafana ===== 
-<sxh bash>touch /var/log/telegraf/telegraf.log + 
-chown telegraf:telegraf /var/log/telegraf/telegraf.log</sxh> +==== Installation ==== 
-  * On peut alors démarrer le service + 
-<sxh bash>service telegraf start</sxh> +  * 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 : 
-  * Les données locales sont désormais collectées. On peut appliquer l'installation de ''telegraf'' et la configuration de ces agents sur ''InfluxDB'' sur tous nos serveurs à surveiller+<sxh bash>curl -fsSL https://packages.grafana.com/gpg.key sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/grafana.gpg 
-  * Une fois les agents installés, on peut passer à ''Grafana''.+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 correctle 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 nombreuxDu 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 |}}
  
-{{:underconstruction-copy-300x150.jpg?400|}}+<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~~ ~~DISCUSSION~~
  • grafana.1669542745.txt.gz
  • Dernière modification : 2022/11/27 10:52
  • de nekan