Prometheus est une boîte à outils open source initialement conçue chez SoundCloud pour la surveillance et l'alerte. La boîte à outils est désormais un projet open source autonome et maintenu indépendamment de toute entreprise.
La boîte à outils collecte des métriques à partir de cibles surveillées en supprimant les points de terminaison HTTP sur ces cibles. La plupart des composants Prometheus sont en Go. Certains écrits en Java, Python et Ruby.
Prometheus fonctionne bien pour enregistrer n'importe quelle série chronologique numérique. Il s'adapte à la fois à la surveillance centrée sur la machine et à la surveillance de l'architecture orientée services à haute dynamique. En plus de faciliter son exécution et son intégration dans votre environnement, Prometheus offre un modèle de données et un langage de requête riches.
Le tutoriel suivant montre les étapes pour installer Prometheus sur CentOS.
Installer et configurer Prometheus sur CentOS 7
Connectez-vous au terminal en tant que root et lancez les commandes ci-dessous.
Étape 1 - Mettre à jour le système
yum update -y
Étape 2 : Désactiver SELinux
Ouvrez la configuration SELinux et modifiez le fichier :
vim /etc/sysconfig/selinux
Remplacez "SELINUX=enforcing" par "SELINUX=disabled".
Enregistrez et quittez le fichier. Redémarrez ensuite le système.
reboot
Étape 3 : Télécharger le package Prometheus
Accédez à la page de téléchargement officielle de Prometheus et copiez l'URL du fichier "tar" Linux.
Exécutez la commande suivante pour télécharger le package. Collez l'URL copiée après wget dans la commande ci-dessous :
wget https://github.com/prometheus/prometheus/releases/download/v2.8.1/prometheus-2.8.1.linux-amd64.tar.gz
Étape 4 - Configurer Prometheus
Ajouter un utilisateur Prometheus.
useradd --no-create-home --shell /bin/false prometheus
Créez les répertoires nécessaires.
mkdir /etc/prometheus
mkdir /var/lib/prometheus
Modifiez le propriétaire des répertoires ci-dessus.
chown prometheus:prometheus /etc/prometheus
chown prometheus:prometheus /var/lib/prometheus
Allez maintenant à l'emplacement de téléchargement de Prometheus et extrayez-le.
tar -xvzf prometheus-2.8.1.linux-amd64.tar.gz
Renommez-le selon vos préférences.
mv prometheus-2.8.1.linux-amd64 prometheuspackage
Copiez les binaires "prometheus" et "promtool" du dossier "prometheuspackage" vers "/usr/local/bin".
cp prometheuspackage/prometheus /usr/local/bin/
cp prometheuspackage/promtool /usr/local/bin/
Changez la propriété en utilisateur Prometheus.
chown prometheus:prometheus /usr/local/bin/prometheus
chown prometheus:prometheus /usr/local/bin/promtool
Copiez les répertoires "consoles" et "console_libraries" du "prometheuspackage" vers "/etc/prometheus folder"
cp -r prometheuspackage/consoles /etc/prometheus
cp -r prometheuspackage/console_libraries /etc/prometheus
Changer la propriété en utilisateur Prometheus
chown -R prometheus:prometheus /etc/prometheus/consoles
chown -R prometheus:prometheus /etc/prometheus/console_libraries
Ajouter et modifier le fichier de configuration Prometheus.
Les configurations doivent être ajoutées au "/etc/prometheus/prometheus.yml"
Nous allons maintenant créer le fichier prometheus.yml.
vim /etc/prometheus/prometheus.yml
Ajoutez la configuration suivante au fichier.
global: scrape_interval: 10s scrape_configs: - job_name: 'prometheus_master' scrape_interval: 5s static_configs: - targets: ['localhost:9090']
enregistrer et quitter le fichier
Modifiez le propriétaire du fichier.
chown prometheus:prometheus /etc/prometheus/prometheus.yml
Configurez le fichier de service Prometheus.
vim /etc/systemd/system/prometheus.service
Copiez le contenu suivant dans le fichier.
[Unit] Description=Prometheus 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
Enregistrez et le fichier de sortie.
Rechargez le service systemd.
systemctl daemon-reload
Démarrez le service Prometheus.
systemctl start prometheus
Vérifiez l'état du service.
systemctl status prometheus
Ajouter des règles de pare-feu.
firewall-cmd --zone=public --add-port=9090/tcp --permanent
Recharger le service de pare-feu.
systemctl reload firewalld
Étape 5 - Accéder à l'interface Web Prometheus
Utilisez l'URL suivante pour accéder à l'interface utilisateur.
http://Server-IP:9090/graph
Ensuite, vous pouvez voir l'interface suivante.
Étape 6 - Surveiller le serveur Linux à l'aide de Prometheus
Tout d'abord, vous devez configurer l'exportateur de nœud Prometheus sur un serveur Linux.
Copiez l'URL de l'exportateur de nœud depuis la page de téléchargement officielle.
Collez l'URL copiée après wget dans la commande suivante :
wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
Extrayez le package téléchargé.
tar -xvzf node_exporter-0.17.0.linux-amd64.tar.gz
Créez un utilisateur pour l'exportateur de nœud.
useradd -rs /bin/false nodeusr
Déplacez le binaire vers "/usr/local/bin" à partir du package extrait téléchargé.
mv node_exporter-0.17.0.linux-amd64/node_exporter /usr/local/bin/
Créez un fichier de service pour l'exportateur de nœud.
vim /etc/systemd/system/node_exporter.service
Ajoutez le contenu suivant au fichier.
[Unit] Description=Node Exporter After=network.target [Service] User=nodeusr Group=nodeusr Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target
Enregistrez et quittez le fichier.
Rechargez le démon système.
systemctl daemon-reload
Démarrer le service d'exportation de nœuds.
systemctl start node_exporter
Ajoutez une règle de pare-feu pour autoriser l'exportateur de nœud.
firewall-cmd --zone=public --add-port=9100/tcp --permanent
Recharger le service de pare-feu.
systemctl restart firewalld
Activer l'exportateur de nœud au démarrage du système.
systemctl enable node_exporter
Affichez l'URL de l'exportateur du nœud de navigation des métriques.
http://IP-Address:9100/metrics
Ajoutez une cible d'exportateur de nœud configurée sur le serveur Prometheus.
Connectez-vous au serveur Prometheus et modifiez le fichier prometheus.yml
Modifier le fichier :
vim /etc/prometheus/prometheus.yml
Ajoutez les configurations suivantes sous la configuration scrape.
- job_name: 'node_exporter_centos' scrape_interval: 5s static_configs: - targets: ['10.94.10.209:9100']
Le fichier devrait ressembler à ceci.
Redémarrez le service Prometheus.
systemctl restart prometheus
Connectez-vous à l'interface Web du serveur Prometheus et vérifiez les cibles.
http://Prometheus-Server-IP:9090/targets
Vous pouvez cliquer sur le graphique et interroger n'importe quelle métrique de serveur et cliquer sur exécuter pour afficher la sortie. Il affichera la sortie de la console.
Navigateur de requête :
Sortie console :
Cliquez sur le graphique pour afficher.
Étape 7 - Surveiller le serveur MySQL à l'aide de Prometheus
Connectez-vous à MySQL et exécutez les requêtes suivantes.
CREATE USER 'mysqlexporter'@'localhost' IDENTIFIED BY 's56fsg#4W2126&dfk' WITH max_user_connections 2;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqlexporter'@'localhost';
FLUSH PRIVILEGES;
Téléchargez mysqld_exporter depuis la page de téléchargement officielle.
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz
Extrayez le fichier téléchargé.
tar -xvzf mysqld_exporter-0.11.0.linux-amd64.tar.gz
Ajouter un utilisateur pour mysqld_exporter.
useradd -rs /bin/false mysqld_exporter
Copiez le fichier mysqld_exporter dans /usr/bin.
mv mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter /usr/bin
Modifier le propriétaire du fichier.
chown mysqld_exporter:mysqld_exporter /usr/bin/mysqld_exporter
Créez les dossiers nécessaires.
mkdir -p /etc/mysql_exporter
Créez un fichier de mot de passe MySQL pour mysqld_exporter.
vim /etc/mysql_exporter/.my.cnf
Ajoutez les configurations suivantes au fichier.
[client] user=mysqlexporter password=sdfsg#4W2126&gh
Enregistrez et quittez le fichier.
Changer de propriétaire.
chown -R mysqld_exporter:mysqld_exporter /etc/mysql_exporter
Accordez l'autorisation nécessaire.
chmod 600 /etc/mysql_exporter/.my.cnf
Créez un fichier de service.
vim /etc/systemd/system/mysql_exporter.service
Ajoutez le contenu suivant au fichier.
[Unit] Description=MySQL Server fosslinux After=network.target [Service] User=mysqld_exporter Group=mysqld_exporter Type=simple ExecStart=/usr/bin/mysqld_exporter \ --config.my-cnf="/etc/mysql_exporter/.my.cnf" Restart=always [Install] WantedBy=multi-user.target
Rechargez le démon système.
systemctl daemon-reload
Activez mysql_exporter au démarrage du système.
systemctl enable mysql_exporter
Démarrer le service.
systemctl start mysql_exporter
Affichez les statistiques à l'aide de l'URL suivante.
http://Server_IP:9104/metrics
Allez maintenant sur le serveur Prometheus et modifiez le fichier prometheus.yml.
vim /etc/prometheus/prometheus.yml
Ajoutez le contenu suivant au fichier.
- job_name: 'mysql_exporter_fosslinux' scrape_interval: 5s static_configs: - targets: ['10.94.10.204:9104']
Redémarrez Prometheus.
systemctl restart prometheus
Vous pouvez voir les cibles ajoutées en cliquant sur les cibles sous le statut.
http://IP:9090/targets
Vous pouvez maintenant sélectionner la requête à l'aide du navigateur de requêtes et obtenir le résultat du serveur MySQL.
Il s'agit de l'installation et de la configuration du serveur Prometheus sur CentOS 7. J'espère que vous avez apprécié ce didacticiel. Faites-nous part de vos commentaires dans les commentaires ci-dessous.