====== Prometheus : installation ======
{{tag>supervision Prometheus installation}}
===== Prérequis =====
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 [[systeme/gnu-linux/lvm-ajout-disque|cette page]].
===== Installation depuis le site Prometheus =====
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']
===== Lancement du service =====
Nous créons le fichier systemd de démarrage / arrêt du service :
sudo vi /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 :
sudo systemctl daemon-reload
Nous démarrons et activons le service Prometheus :
sudo systemctl enable --now prometheus
Pour conrôler l'état du service :
sudo 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
===== Installation Grafana =====
Si le paquet n'est pas installé, nous l'installons
sudo aptitude install apt-transport-https gnupg2
Nous ajoutons le dépôt APT
sudo nano /etc/apt/sources.list.d/grafana.list
Nous ajoutons ces lignes
##
# Grafana repository
# Version: Stable
##
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 --now grafana-server.service
===== Installation de Nginx en frontal =====
Nous installons Nginx
sudo aptitude install nginx
Nous créons le vHost pour Grafana
sudo nano /etc/nginx/sites-available/monitor.domain.tld
##
# Nginx vHost
# Grafana for Prometheus
##
server {
listen 80;
server_name monitor.domain.tld;
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.domain.tld
##
# Nginx vHost
# Prometheus console
##
server {
listen 80;
server_name promconsole.domain.tld;
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.domain.tld
sudo ln -s /etc/nginx/sites-available/promconsole.domain.tld
Nous rechargeons la configuration de Nginx
sudo service nginx reload
===== Liens =====
* [[https://prometheus.io/|site de l'éditeur]]
* [[https://kifarunix.com/install-and-configure-prometheus-on-debian-9/|install and configure Prometheus on Debian 9]]
* [[https://www.dadall.info/article629/installer-grafana-prometheus-et-node-exporter|installer Grafana, Prometheus et Node Exporter]]