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

[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

Monitoring mySQL MariaDB with Prometheus

MongoDB

Monitoring MongoDB with Grafana

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

https://linoxide.com/linux-how-to/install-prometheus-ubuntu/

https://journaldunadminlinux.fr/tutoriel-decouverte-de-prometheus-et-grafana/

https://golang.org/dl/

https://www.mytinydc.com/en/blog/prometheus-grafana-installation/

Haut de page