Ceci est une ancienne révision du document !


Prometheus : installation

Une VM doit avoir été installée, et un disque additionnel qui recevra les datas de Prometheus (/var/lib/prometheus) devra être créé. Pour créer un disque addtionnel VMDK + LVM, voir cette page.

Pour avoir une version pas trop ancienne, il faut ajouter le dépôt stretch-backports. Éditez le fichier de sources :

sudo nano /etc/sources.list.d/debian-backports

Et nous ajoutons ces lignes :

## 
# Debian backports
# Version: Stretch
##

deb http://ftp.debian.org/debian stretch-backports main

Nous installons les paquets :

sudo aptitude install prometheus

Afin d'avoir les versions les plus à jour, nous allons installer Prometheus depuis les binaires disponibles sur le site prometheus.io

Rendez-vous à l'adresse : https://prometheus.io/download/

Nous récupérons les archives dont nous avons besoin :

  • Prometheus
  • Alert manager

Nous dézippons et copions les exécutables dans /usr/local/bin

Nous créons le compte système :

sudo useradd -M -r -s /bin/false prometheus

Nous changeons les droits sur les exécutables :

cd /usr/local/bin
sudo chown -v prometheus: alertmanager amtool prometheus promtool

Nous créons le répertoire qui va accueillir le fichier de configuration :

sudo mkdir /etc/prometheus

Nous copions les deux répertoires dans /etc/prometheus

sudo chown -Rv prometheus: console_libraries/ consoles
sudo mv -v console_libraries/ consoles /etc/prometheus

Nous donnons les bons droits sur le répertoire

sudo chown -Rv prometheus: /etc/prometheus

Nous créons le fichier de configuration

sudo nano /etc/prometheus/prometheus.yml

et y ajoutons

scrape_configs:
  - job_name: 'prometheus'

    scrape_interval: 5s
    scrape_timeout: 5s

    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node'
    static_configs:
      - targets: ['monserveur:9100','monserveurdeux:9100']

Nous allons installer node-exporter depuis le dépôt Debian officiel

sudo aptitude install prometheus-node-exporter

Pour s'assurer qu'il fonctionne bien, saisissez dan votre navigateur

http://monserveur:9100/metrics

Nous créons le fichier systemd de démarrage / arrêt du service :

sudo vim /etc/systemd/system/prometheus.service

Nous ajoutons ces lignes :

[Unit]
Description=Prometheus Time Series Collection and Processing Server
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

[Install]
WantedBy=multi-user.target

Nous rechargeons la configuration du démon systemd :

systemctl daemon-reload

Nous démarrons et activons le service Prometheus :

systemctl enable prometheus; systemctl start prometheus

Pour conrôler l'état du service :

systemctl status prometheus

À partir de là, si le service est bien lancé, vous devriez pouvoir vous connecter à la console Prometheus depuis votre navigateur à l'adresse :

http://monserveur:9090

Si le paquet n'est pas installé, nous l'installons

sudo aptitude install apt-transport-https

Nous ajoutons le dépôt APT

sudo nano /etc/apt/sources.list.d/grafana.list

Nous ajoutons ces lignes

##
# Grafana repository
# Version: Stretch
##

deb https://packages.grafana.com/oss/deb stable main

Nou récupérons la clé GPG du dépôt

wget --quiet -O- "https://packages.grafana.com/gpg.key" | sudo apt-key add -

Nous installons grafana

sudo aptitude update && sudo aptitude install grafana

Nous lançons le service

sudo systemctl enable grafana-server.service; sudo systemctl start grafana-server

Nous installons Nginx

sudo aptitude install nginx

Nous créons le vHost pour Grafana

sudo nano /etc/nginx/sites-available/monitor.grohub.pro
##
# Nginx vHost
# Grafana for Prometheus
##

server {
    listen 80;

        #root /var/www/html/;

        server_name monitor.grohub.pro;

        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                proxy_pass http://127.0.0.1:3000;
        }
}

Nous créons le vHost pour la console Prometheus

sudo nano /etc/nginx/sites-available/promconsole.grohub.pro
##
# Nginx vHost
# Prometheus console
##

server {
    listen 80;

        #root /var/www/html/;

        server_name promconsole.grohub.pro;

        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                proxy_pass http://127.0.0.1:9090;
        }
}

Nous créons les liens symboliques

cd /etc/nginx/sites-enabled
sudo ln -s /etc/nginx/sites-available/monitor.grohub.pro 
sudo ln -s /etc/nginx/sites-available/promconsole.grohub.pro

Nous rechargeons la configuration de Nginx

sudo service nginx reload
  • infrastructure/supervision/prometheus/installation.1602330487.txt.gz
  • Dernière modification : 10/10/2020 11:48
  • de Stéphane Paillet