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 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