Ceci est une ancienne révision du document !
Table des matières
Installation de Prometheus et Grafana
Étape 0: Préparatifs
1- Il est important en terme de sécurité de créer un nouvel utilisateur pour les installations
sudo useradd --no-create-home --shell /usr/sbin/nologin prometheus sudo useradd --no-create-home --shell /bin/false node_exporter
2- On créé un dossier pour pouvoir stocker Prometheus et s'est fichiers
sudo mkdir /etc/prometheus sudo mkdir /var/lib/prometheus
3- Enfin, on donne à ces dossier prometheus en owner
sudo chown prometheus:prometheus /etc/prometheus sudo chown prometheus:prometheus /var/lib/prometheus
Étape 1: Installation de Node Exporter
Node Exporter est un outil qui permet de récupérer des informations sur le CPU et autres composants du PC. Il n'est pas essentiel mais il peut être intéressant de l'installer.
Etape 1: Dans un premier temps, on récupère la dernière version de Node Exporter. Pour cela, on peut les récupérer via wget et dézipper via tar ou bien récupérer directement la dernière version sur le site: https://prometheus.io/download/#node_exporter
Etape 2: On copie les fichiers récupérés dans /usr/local/bin et on met node_export en propriétaire
sudo cp node_exporter-0.16.0.linux-amd64/node_exporter /usr/local/bin sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
Etape 3 (optionnel): Supprimer les fichiers de bases qui ont été copiés dans l'étape précédente
Etape 4 (optionnel mais conseillé): On créé un fichier dans systemd
sudo nano /etc/systemd/system/node_exporter.service
Et on met ces informations dedans:
[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=node_exporter Group=node_exporter Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target
Etape 5: Il ne reste plus qu'a activer le service:
sudo systemctl daemon-reload sudo systemctl start node_exporter
On vérifie le status:
sudo systemctl status node_exporter
Et enfin, si l'étape 3 a été faite, on active le lancement au démarrage:
sudo systemctl status node_exporter
Etape 2: Installation de Prometheus
Prometheus est un outil qui sert à récolter des données basique des applications qui tournent sur le serveur.
Etape 1: Dans un premier temps, on récupère la dernière version de Node Exporter. Pour cela, on peut les récupérer via wget et dézipper via tar ou bien récupérer directement la dernière version sur le site: Dans un premier temps, on récupère la dernière version de Node Exporter. Pour cela, on peut les récupérer via wget et dézipper via tar ou bien récupérer directement la dernière version sur le site: https://prometheus.io/download/#node_exporter . Ne pas oublier de se déplacer dans le dossier extrait ensuite
Etape 2: On copie les fichiers récupérés dans /usr/local/bin et on met prometheus en propriétaire
sudo cp ./prometheus /usr/local/bin/ sudo cp ./promtool /usr/local/bin/ sudo chown prometheus:prometheus /usr/local/bin/prometheus sudo chown prometheus:prometheus /usr/local/bin/promtool
Etape 3: On copie les dossiers console et console_libraries dans les dossiers prometheus créés plus tôt. On leur met ensuite le bon owner
sudo cp -r ./consoles /etc/prometheus sudo cp -r ./console_libraries /etc/prometheus sudo chown -R prometheus:prometheus /etc/prometheus/consoles sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
Etape 4 (optionnel): Supprimer les fichiers de prometheus de base
Ensuite, on va vouloir configurer Prometheus
Pour pouvoir faire cette configuration, on va utiliser un fichier YAML. On y trouve beaucoup de configurations différentes donc voici un exemple:
global: scrape_interval: 15s evaluation_interval: 15s rule_files: # - "first.rules" # - "second.rules" scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: ['localhost:9090' - job_name: 'node_exporter' scrape_interval: 5s static_configs: - targets: ['localhost:9100']
Expliquons ces différents paramètres:
Global: ce sont les paramètres en général de Prometheus, on peut y voir ici deux options:
- scrape_interval: le temps qu'on veut entre les collectes de données. Ici, on attend 15 secondes.
- evaluation_interval: le temps qu'on veut entre les activations de règles. Ici, on attend 15 secondes
Rules Files: ce sont les fichiers qui seront utilisés pour établir des rules. Les rules servent par exemple à mettre en place des alertes bien que cela soit disponible plus tard depuis l'application.
Scrape configs: Ici, on choisit les applications qui seront monitorés. On a encore une fois plusieurs paramètres:
- Job name: simplement le nom de l'application qui est monitorée (ici c'est prometheus lui même)
- scrape_intervals: comme dans global, le temps écoulé avant de récolter des données. Le temps indiqué ici overwritera le temps dans global.
- static_configs et targets: Ici, on indique où sont les applications qu'on veut monitorer.
Enfin, on oublie pas de mettre à jour le propriétaire de ce fichier:
sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml
Lancer Prometheus
Etape 1: Utiliser cette commande pour pouvoir tester que Prometheus se lance bien:
sudo -u prometheus /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/ --web.console.templates=/etc/prometheus/consoles --web.console.libraries=/etc/prometheus/console_libraries
Etape 2: Aller sur http://ipduserveur:9090 et vérifier que cela fonctionne bien
Etape 3 (optionnelle mais conseillée): Comme pour node_exporter, on ajoute un moyen de lancer automatiquement le serveur au démarrage à l'aide de systemd.
sudo nano /etc/systemd/system/prometheus.service
Et on met dans ce fichier:
[Unit] Description=Prometheus Monitoring Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus \ --config.file /etc/prometheus/prometheus.yml \ --storage.tsdb.path /var/lib/prometheus/ \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
Etape 4: Enfin, on peut démarrer le service
sudo systemctl daemon-reload sudo systemctl enable prometheus sudo systemctl start prometheus
Etape 3: Installer Grafana
Grafana est un systeme qui va permettre d'optimiser l'affichage des données collectées par Prometheus a son maximum. Elle n'est pas obligatoire mais est extremement conseillée.
Etape 1: Récupérer la dernière version de Grafana et installez quelques packages nécessaires:
sudo apt-get install -y adduser libfontconfig1 wget https://dl.grafana.com/oss/release/grafana_7.4.3_amd64.deb sudo dpkg -i grafana_7.4.3_amd64.deb
Etape 2 (optionnelle): Comme pour node exporter et Prometheus, activons Grafana dès le démarrage:
sudo systemctl daemon-reload && sudo systemctl enable grafana-server && sudo systemctl start grafana-server
Et c'est tout! Grafana est ensuite directement disponible sur http://ipduserveur:3000 avec en utilisateur de base admin/admin
Sources
Le tutoriel sur lequel cette installation est basée: https://www.scaleway.com/en/docs/configure-prometheus-monitoring-with-grafana/