====== 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
----
[[all:bibles:linux:serveur: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.
----
[[all:bibles:linux:serveur:prometheus|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:
* Lancez l'exporter mysqld.
export DATA_SOURCE_NAME='exporter:toto@(hostname:3306)/'
=== MariaBD ===
[[https://computingforgeeks.com/monitoring-mysql-mariadb-with-prometheus-in-five-minutes/|Monitoring mySQL MariaDB with Prometheus]]
=== MongoDB ===
[[https://devconnected.com/mongodb-monitoring-with-grafana-prometheus/|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: [':9100']
=== Monitoring d'une instance apache2 ===
- job_name: ApacheServer
scrape_interval: 5s
static_configs:
- targets: [':9117']
=== Monitoring d'une base de données MySQL ===
- job_name: MySQL
scrape_interval: 5s
static_configs:
- targets: [':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.
{{ :all:bibles:linux:serveur:prometheus.jpg?600 |}}
----
[[all:bibles:linux:serveur:prometheus|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
----
[[all:bibles:linux:serveur:prometheus|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/]]
----
[[all:bibles:linux:serveur:prometheus|Haut de page]]