Section Hackerspace de l'association / Espace d'Expérimentation Technique => Gestion Serveur d'applications GNU/Linux et Microsoft Windows => Discussion démarrée par: Animateur le février 19, 2023, 12:25:32 pm
Titre: [LJP-Infos] Découverte de Prometheus
Posté par: Animateur le février 19, 2023, 12:25:32 pm
[LJP-Infos] Découverte de Prometheus
Depuis quelques temps, le reporting a pris une grande place dans les systèmes informatiques. Il est indispensable de connaître l'état de santé d'un système, son historique, son utilisation.
Il existe un très grand nombre d'outils de reporting. Mais pour faire du reporting, il faut des informations, pas d'infos pas de rapport.
Il existe des tas de moyens de remonter les informations, sans parler des systèmes eux même qui l'intègre. Ruby, Java, par exemple embarque leur propres outils de metrics. Prometheus est quand même l'un de ces outils les plus connus en matière de remontée de metrics.
Voici comment l'installer et récupérer la liste des metrics. Même si ces metrics ne sont pas exploitables directement, on peut déjà voir et récupérer toutes les données. Pour un affichage cohérent de ces données, je le montrerai au travers de Grafana.
Time code: 01:46 Avertissement 02:55 L'installation 04:31 Installation point par point 16:46 Créer un service pour Prometheus 19:24 Premier accès à Prometheus 20:20 Installation de node_exporter 25:59 Afficher les metrics par curl, en http sur le port 9100 ou 9090 29:23 La suite
cd ~ wget https://github.com/prometheus/prometheus/releases/download/v2.40.2/prometheus-2.40.2.linux-amd64.tar.gz tar xvf prometheus-2.40.2.linux-amd64.tar.gz
# On ajoute le paramètre dans le pare-feu si ce n'est pas fait firewall-cmd --add-port=9090/tcp --permanent firewall-cmd --reload
# On peut tester Prometheus avec (ctrl+c pour quitter) on peut aller voir ce que ça donne sur http:\\localhost_ou_ip:9090 sudo -u prometheus /usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/data --web.console.templates=/etc/prometheus/consoles --web.console.libraries=/etc/prometheus/consoles_libraries
# On crée et on démarre Prometheus comme service vi /etc/systemd/system/prometheus.service
# On crée un user "node_exporter" useradd -m -s /bin/false node_exporter
# On télécharge/extrait le fichier de binaires wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz tar xvf node_exporter-1.4.0.linux-amd64.tar.gz
# On copie le binaire vers dans le dossier correspondant avec les droits cp node_exporter-1.4.0.linux-amd64/node_exporter /usr/local/bin chown node_exporter:node_exporter /usr/local/bin/node_exporter
# On crée le fichier de service vi /etc/systemd/system/node_exporter.service
# On active et démarre systemctl daemon-reload systemctl enable node_exporter --now
# On peut vérifier avec "systemctl status node_exporter"
# On ajoute le port au pare-feu firewall-cmd --add-port=9100/tcp --permanent firewall-cmd --reload
# On l'ajoute à la conf de Prometheus vi /etc/prometheus/prometheus.yml ... - job_name: 'node_exporter' static_configs: - targets: ['localhost:9100']
# Si le système est distant on pourra rajouter en cible - targets: ['ip_du_serveur:9100']
# On redémarre Prometheus pour valider la nouvelle config systemctl restart prometheus
# On peut afficher les metrics ici (ou sur l'ip): curl http://localhost:9100/metrics
# Dans Prometheus http://localhost:9090 - Dans "Target" (Status) on peut alors voir les deux jobs cible, leur état... - ici http://localhost_ou_ip:9100/metrics (avec la bonne ip) on retrouve les métrics de node - ici http://localhost_ou_ip:9090/metrics (avec la bonne ip) on retrouve les métrics de Prometheus