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