Outils pour utilisateurs

Outils du site


all:bibles:linux:serveur:prometheus

Prometheus


Installation sur Ubuntu 18.04

Installation

sudo -s
export RELEASE="2.16.0"
wget https://github.com/prometheus/prometheus/releases/download/v${RELEASE}/prometheus-${RELEASE}.linux-amd64.tar.gz
tar xvf prometheus-${RELEASE}.linux-amd64.tar.gz
cd prometheus-${RELEASE}.linux-amd64
groupadd --system prometheus
useradd -s /sbin/nologin -r -g prometheus prometheus
mkdir -p /etc/prometheus/{rules,rules.d,files_sd}  /var/lib/prometheus
cp prometheus.yml /etc/prometheus/
chown -R prometheus:prometheus /etc/prometheus  /var/lib/prometheus
chmod -R 775 /etc/prometheus /var/lib/prometheus
cp prometheus promtool /usr/local/bin/
cp -r consoles/ console_libraries/ /etc/prometheus/

Création service

Création du fichier de configuration du service /etc/systemd/system/prometheus.service

prometheus.service
[Unit]
Description=Prometheus systemd service unit
Wants=network-online.target
After=network-online.target
 
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
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 \
--web.listen-address=0.0.0.0:9090
 
SyslogIdentifier=prometheus
Restart=always
 
[Install]
WantedBy=multi-user.target
Changer le 0.0.0.0:9090 avec l'adresse IP d'une interface pour limiter l'accès à un réseau particulier. 127.0.0.1:9090 pour limiter l'accès en local.

Fichier de configuration

Plus d'informations sur la configuration du fichier /etc/prometheus/prometheus.yml sur le site https://prometheus.io/docs/prometheus/latest/configuration/configuration/

Démarrage et activation

systemctl start prometheus
systemctl enable prometheus

Haut de page

Vérifications

Etat du service

systemctl status prometheus

Port à l'écoute

netstat -tlnap | grep 9090
ss -tlnap | grep 9090
telnet 127.0.0.1 9090
Si nécessaire vérifier qu'un firewall ne bloque pas le port.

Haut de page

Exporters

La liste des exporters est disponible sur le site https://prometheus.io/docs/instrumenting/exporters/

Prérequis

Installer git

sudo apt-get install git

Installer go

Télécharger la dernière version disponible sur le site https://go.dev/dl/

wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz
tar zxvf go1.14.linux-amd64.tar.gz
sudo mv go /opt
chown -R root:root /opt/go
mkdir ~/go
La variable $GOPATH ne doit pas être positionnée dans le répertoire d'installation. Il faut pointer ailleurs. Par défaut c'est dans le répertoire $HOME/go

Installer exporter

Monitoring de l'OS (Linux)

https://github.com/prometheus/node_exporter

/opt/go/bin/go get github.com/prometheus/node_exporter
~/go/bin/node_exporter &

Monitoring d'une instance apache2

/opt/go/bin/go get github.com/neezgee/apache_exporter
~/go/bin/apache_exporter &

Monitoring d'une base de données MySQL

  • Récupérez sur le GITHUB de prometheus la dernière version de l'exporter mysqld: https://github.com/prometheus/mysqld_exporter/releases.
  • Décompressez l'archive précédemment téléchargée sur votre serveur hébergeant votre base de donnée MySQL.
  • Connectez-vous sur votre base de donnée et lancez les deux requêtes suivantes.
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'passwordexporter' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
FLUSH PRIVILEGES;
  • Alimentez la variable d'environnement avec les identifiants du user exporter précédemment créés.
export DATA_SOURCE_NAME='exporter:<motdepasseduuserexporter'@(hostname:3306)/'
  • Lancez l'exporter mysqld.
export DATA_SOURCE_NAME='exporter:toto@(hostname:3306)/'

MariaBD

MongoDB

Fichier de configuration prometheus

Ajouter les lignes suivantes au fichier de configuration /etc/prometheus/prometheus.yml

Monitoring de l'OS (Linux)

    - job_name: LinuxServer
      scrape_interval: 5s
      static_configs:
    - targets: ['<ip de votre machine>:9100']

Monitoring d'une instance apache2

    - job_name: ApacheServer
      scrape_interval: 5s
      static_configs:
    - targets: ['<ip de votre machine>:9117']

Monitoring d'une base de données MySQL

    - job_name: MySQL
      scrape_interval: 5s
      static_configs:
    - targets: ['<ip de votre machine>:9104']

Interface Web Prometheus

Lancer l'interface graphique avec l'url http://adresseIP:9090

Choisir le menu « Status / Target » et vérifier que les nodes apparaissent bien dans l'interface web.


Haut de page

Dépannage

Le service ne démarre pas

  • Vérifier les droits des répertoires /etc/prometheus et /var/lib/prometheus
  • Consulter les log dans le fichier /var/log/syslog

Haut de page

Sources

all/bibles/linux/serveur/prometheus.txt · Dernière modification : de 127.0.0.1