Outils pour utilisateurs

Outils du site


install_prometheus_grafana

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éé des dossiers pour pouvoir stocker Prometheus et ses fichiers

sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

3- Enfin, on donne à ces dossiers 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 pour récupérer des données supplémentaires.

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.

wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
tar xvf node_exporter-1.1.2.linux-amd64.tar.gz

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-1.1.2.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/ . 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.

Il y a évidemment d'autres options possible dans ce fichier mais ceci sont les plus basiques.

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 (optionnel 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 système qui va permettre d'optimiser l'affichage des données collectées par Prometheus a son maximum. Il n'est pas obligatoire mais est extrêmement 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. Le reste des paramétrages se font directement sur Grafana.

Sources

Le tutoriel sur lequel cette installation est basée: https://www.scaleway.com/en/docs/configure-prometheus-monitoring-with-grafana/

install_prometheus_grafana.txt · Dernière modification: 2021/03/12 15:26 de Bismuth