Prométhée est un outil open source de surveillance, d'interrogation et d'alerte. Construit à l'origine par Soundcloud en 2012, cet outil riche en fonctionnalités a été adopté par plusieurs entreprises pour surveiller leur infrastructure informatique et s'assurer que tous les systèmes fonctionnent correctement. Prometheus vous permet d'interroger et d'extraire des métriques de séries chronologiques telles que l'utilisation du processeur et de la mémoire via le protocole HTTP et visualisez-les sur des graphiques en temps réel. Vous pouvez également configurer Prometheus pour envoyer des alertes en cas d'indisponibilité d'un nœud ou d'un service et l'intégrer à d'autres outils de surveillance tiers tels que Grafana pour une meilleure visualisation des données. Dans ce guide, nous examinerons l'installation de Prometheus sur le système CentOS 8/RHEL 8.
Étape 1) Création d'un utilisateur et d'un groupe Prometheus
Pour commencer, nous allons créer un utilisateur système pour Prometheus. Exécutez la commande ci-dessous pour y parvenir.
[[email protected] ~]# useradd -m -s /bin/false prometheus[[email protected] ~]# id prometheusuid=1002(prometheus) gid=1002(prometheus) groups=1002(prometheus)[[ e-mail protégé] ~]#
Comme vous l'avez peut-être remarqué, l'utilisateur du système n'a aucune autorisation de connexion comme spécifié dans l'option /bin/false
Étape 2) Création de répertoires de configuration pour Prometheus
Une fois l'utilisateur pour Prometheus créé, nous allons ensuite créer des répertoires de configuration dans les répertoires /etc et /var qui stockeront les fichiers et les données de configuration de Prometheus. Exécutez donc les commandes ci-dessous :
[[email protected] ~]# mkdir /etc/prometheus[[email protected] ~]# mkdir /var/lib/prometheus
Définissez la propriété sur /var/lib/prometheus
[[email protected] ~]# chown prometheus /var/lib/prometheus/
Étape 3) Téléchargement du fichier tar Prometheus
Avec les répertoires en place, nous pouvons maintenant télécharger le Prometheus. Pour obtenir la dernière version, rendez-vous sur la page de téléchargement pour obtenir la dernière version pour votre environnement. Au moment de la rédaction de cet article, la dernière version était la v 2.14.0. Sinon, exécutez simplement la commande ci-dessous
[[email protected] ~]# dnf install wget -y[[email protected] ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.14.0/prometheus-2.14.0 .linux-amd64.tar.gz -P /tmp
Une fois le téléchargement terminé, extrayez le fichier tarball comme indiqué
[[email protected] tmp]# tar -zxpvf prometheus-2.14.0.linux-amd64.tar.gz
Cela vous laissera avec un répertoire appelé prometheus-2.14.0.linux-amd64
Utilisez la commande tree pour afficher la structure des répertoires,
Le répertoire extrait contient 2 fichiers binaires prometheus &promtool et que nous devons copier dans le chemin /usr/local/bin.
Alors, accédez au répertoire extrait et copiez-les à l'aide de la commande :
[[email protected] ~]# cd /tmp/prometheus-2.14.0.linux-amd64[[email protected] prometheus-2.14.0.linux-amd64]# cp prometheus /usr/local/binFaites de même avec l'autre fichier binaire
[[email protected] prometheus-2.14.0.linux-amd64]# cp promtool /usr/local/binÉtape 4) Création d'un fichier de configuration pour Prometheus
Pour commencer avec la configuration, créez un fichier /etc/prometheus/prometheus.yml et collez la configuration dans le fichier
[[email protected] ~]# vi /etc/prometheus/prometheus.yml# Global configglobal : scrape_interval : 15s # Définir l'intervalle de grattage à toutes les 15 secondes. La valeur par défaut est toutes les 1 minute. evaluation_interval:15s # Évalue les règles toutes les 15 secondes. La valeur par défaut est toutes les 1 minute. scrape_timeout :15s # scrape_timeout est défini sur la valeur globale par défaut (10 s).# Une configuration de scrape contenant exactement un point de terminaison à scraper :# Ici, c'est Prometheus lui-même.scrape_configs : # Le nom de la tâche est ajouté en tant qu'étiquette `job=` à toutes les séries temporelles extraites de cette configuration. - job_name :'prometheus' # metrics_path par défaut sur '/metrics' # scheme par défaut sur 'http'. static_configs : - cibles :['localhost:9090'] Cela ne surveillera que votre système local (serveur Prometheus).
Ensuite, ajustez le pare-feu comme suit pour autoriser les connexions externes au serveur via le port 9090
[[email protected] ~]# firewall-cmd --add-port=9090/tcp --permanentsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]#Étape 5) Création d'un fichier de service Systemd pour le serveur Prometheus
Pour que nous puissions gérer Prometheus en tant que service à l'aide de systemd, nous devons créer un fichier système pour celui-ci. Alors, créez le fichier comme indiqué et collez le contenu,
[[email protected] ~]# vi /etc/systemd/system/prometheus.service[Unit]Description=Prometheus Time Series Collection and Processing ServerWants=network-online.targetAfter=network-online.target[Service]User =prometheusGroup=prometheusType=simpleExecStart=/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.targetPour que les modifications prennent effet, rechargez le systemctl,
[[email protected] ~]# systemctl daemon-reloadMaintenant, démarrez et activez Prometheus pour qu'il s'exécute au démarrage
[[email protected] ~]# systemctl start prometheus[[email protected] ~]# systemctl enable prometheusJuste pour être certain que Prometheus est en cours d'exécution, exécutez la commande :
[[email protected] ~]# systemctl status prometheus
À partir de la sortie affichée, nous pouvons clairement voir que Prometheus fonctionne comme prévu, sans erreur. Vous pouvez également utiliser l'utilitaire netstat pour vérifier si le service écoute sur le port 9090.
[[email protected] ~]# netstat -tunlp
C'est génial! Prometheus fonctionne sur le port 9090 comme prévu. Maintenant, dirigez-vous vers votre navigateur pour parcourir l'adresse IP de votre serveur, comme indiqué
http://ip-serveur:9090
Cliquez sur le 'Statut ' puis cliquez sur 'Cibles '
Votre système sera affiché comme indiqué
Étape 6) Installer et configurer node_exporter
Exportateur de nœud est un utilitaire qui collecte et expédie une vaste gamme de mesures du système Linux telles que le processeur, l'utilisation de la mémoire, les systèmes de fichiers et les statistiques du réseau. Dans cette section, nous allons installer node_exporter sur le serveur Prometheus et sur un hôte Linux CentOS 8 distant et surveiller les métriques système sur les deux hôtes.
Sur le nœud Prometheus, nous allons créer un utilisateur système pour node_exporter.
[[email protected] ~]# useradd -m -s /bin/false node_exporterEnsuite, dirigez-vous vers la page de téléchargements de Prometheus et téléchargez l'archive tar node_exporter ou utilisez ci-dessous wget pour commander pour le télécharger à partir de la ligne de commande,
[[email protected] ~]# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gzAprès avoir téléchargé le fichier node_exporter, procédez et extrayez-le comme indiqué
[[email protected] ~]# tar -zxpvf node_exporter-0.18.1.linux-amd64.tar.gzVous pouvez vérifier le contenu du dossier extrait à l'aide de la commande tree comme indiqué
[[email protected] ~]# arbre node_exporter-0.18.1.linux-amd64
Ensuite, copiez le fichier binaire appelé node_exporter vers le chemin /usr/local/bin
[[email protected] ~]# cp node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/binEnsuite, définissez les autorisations de fichier du fichier node_exporter qui a été copié comme indiqué
[[email protected] ~]# chown node_exporter:node_exporter /usr/local/bin/node_exporterEnsuite, nous devons configurer node_exporter pour qu'il s'exécute en tant que service. Alors, continuez et créez un fichier de service systemd comme indiqué
[[email protected] ~]# vi /etc/systemd/system/node_exporter.serviceCollez ensuite la configuration ci-dessous et enregistrez le fichier
[Unit]Description=Prometheus Node ExporterWants=network-online.targetAfter=network-online.target[Service]User=node_exporterGroup=node_exporterType=simpleExecStart=/usr/local/bin/node_exporter[Install]WantedBy=multi-utilisateur .targetPour que les modifications prennent effet, rechargez systemd manager avec la commande :
[[email protected] ~]# systemctl daemon-reloadEnsuite, démarrez et activez le service node_exporter
[[email protected] ~]# systemctl start node_exporter[[email protected] ~]# systemctl enable node_exporterJuste pour être sûr que le service est en cours d'exécution, exécutez :
[[email protected] ~]# statut systemctl node_exporter
Juste pour être sûr que le service est en cours d'exécution, utilisez l'utilitaire netstat pour vérifier s'il écoute sur le port 9100 comme prévu par défaut.
[[email protected] ~]# netstat -pnltu | grep 9100tcp6 0 0 :::9100 :::* ÉCOUTER 3472/node_exporter[[email protected] ~]#Parfait! Le service Node_exporter fonctionne comme prévu.
Ensuite, ouvrez le port 9100 dans le pare-feu comme indiqué
[[email protected] ~]# firewall-cmd --add-port=9100/tcp --permanentsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]#Répétez également les étapes décrites pour le système Linux CentOS 8 distant.
Enfin, vous devez ajouter la cible node_exporter au fichier prometheus.yml. Ajoutez les lignes ci-dessous pour définir node_exporter pour le serveur Prometheus
[[email protected] ~]# vi /etc/prometheus/prometheus.yml--------- - job_name :'node_exporter' static_configs : - cibles :['localhost:9100']
Redémarrez le service Prometheus
[[email protected] ~]# systemctl redémarrer prometheusEncore une fois, accédez à votre navigateur, cliquez sur "Statut ' et cliquez sur 'Cibles '
Assurez-vous d'observer un nouveau point de terminaison sur le navigateur appelé node_exporter pour le serveur Prometheus
Pour ajouter un point de terminaison pour le système Linux distant retournez à prometheus.yml fichier et ajoutez la ligne ci-dessous
– cibles :[‘192.168.10.90:9100’]
La section node_exporter devrait maintenant ressembler à ceci
- nom_travail :'node_exporter' static_configs : - cibles :['localhost:9100'] - cibles :['192.168.10.90:9100']Enregistrez les modifications et redémarrez le service Prometheus
[[email protected] ~]# systemctl redémarrer prometheusActualisez le navigateur et notez le deuxième point de terminaison qui a été ajouté pour le système CentOS Linux distant.
Pour vous assurer que vous recevez des métriques, à partir de vos nœuds configurés. utilisez simplement la commande curl comme suit :
# curl http://node-ip:9100/metrics
Par exemple, pour afficher les métriques du serveur Prometheus, exécutez :
[[email protected] ~]# curl http://localhost:9100/metrics
Pour l'hôte CentOS 8 distant, j'ai exécuté la commande :
[[email protected] ~]# curl http://192.168.10.90:9100/metrics
Cela peut également être réalisé en ouvrant un navigateur et en parcourant l'URL
http://192.168.10.90:9100/metrics
Vous pouvez également choisir de représenter graphiquement les métriques que vous souhaitez. Accédez simplement à la page d'accueil du serveur Prometheus et cliquez sur le menu déroulant intitulé "insérer une métrique au curseur" '.
Sélectionnez la métrique que vous souhaitez représenter graphiquement,
Cliquez sur "Exécuter ' et cliquez sur le bouton 'graphique ’ onglet juste en dessous pour faire apparaître le graphique
Et cela nous amène à la fin de ce sujet. Vous avez installé et configuré avec succès Prometheus pour surveiller les métriques système sur votre serveur et votre hôte distant. Dans notre prochain guide, nous intégrerons Prometheus à Grafana pour une meilleure visualisation et analyse des métriques. N'hésitez pas à nous faire part de vos commentaires et à partager l'article avec un ami.