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