Comment installer Prometheus sur Ubuntu 16.04

introduction

Prometheus est un système de surveillance puissant à code source ouvert qui collecte les métriques de vos services et les stocke dans une base de données chronologique. Il offre un modèle de données multidimensionnel, un langage de requête flexible et diverses possibilités de visualisation grâce à des outils tels que Grafana.

Par défaut, Prometheus n’exporte que des métriques sur lui-même (par exemple, nombre de demandes reçues, sa consommation de mémoire, etc.). Mais vous pouvez considérablement développer Prometheus en installant exporters, des programmes facultatifs générant des métriques supplémentaires.

Les exportateurs, qu’ils soient officiels, gérés par l’équipe de Prometheus ou fournis par la communauté, fournissent des informations sur tout, des infrastructures, des bases de données et des serveurs Web aux systèmes de messagerie, aux API, etc.

Certains des choix les plus populaires incluent:

  • node_exporter - Ceci génère des métriques sur l’infrastructure, y compris l’utilisation actuelle du processeur, de la mémoire et du disque, ainsi que des statistiques sur les E / S et le réseau, telles que le nombre d’octets lus à partir d’un fichier. disque ou la charge moyenne d’un serveur.

  • blackbox_exporter - Ceci génère des métriques dérivées de protocoles d’analyse tels que HTTP et HTTPS pour déterminer la disponibilité des terminaux, le temps de réponse, etc.

  • mysqld_exporter - Il regroupe des métriques relatives à un serveur MySQL, telles que le nombre de requêtes exécutées, le temps de réponse moyen des requêtes et l’état de la réplication de grappes.

  • rabbitmq_exporter - Ceci fournit des métriques sur le système de messagerie RabbitMQ, y compris le nombre de messages publiés, le nombre de messages prêts à être envoyés. remis, et la taille de tous les messages de la file d’attente.

  • nginx-vts-exporter - Ceci fournit des métriques sur un serveur Web Nginx à l’aide de Nginx. Module VTS, y compris le nombre de connexions ouvertes, le nombre de réponses envoyées (groupées par codes de réponse) et la taille totale en octets des demandes envoyées ou reçues.

Vous trouverez une liste plus complète des exportateurs officiels et contributeurs communautaires à l’adresse Prometheus ’.

Dans ce didacticiel, vous allez installer, configurer et sécuriser Prometheus et Node Exporter afin de générer des métriques facilitant la surveillance des performances de votre serveur.

Conditions préalables

Avant de suivre ce tutoriel, assurez-vous d’avoir:

Étape 1 - Création d’utilisateurs de service

Pour des raisons de sécurité, nous allons commencer par créer deux nouveaux comptes utilisateur, * prometheus * et * node_exporter *. Nous utiliserons ces comptes tout au long du didacticiel pour isoler les droits de propriété sur les fichiers et répertoires centraux de Prometheus.

Créez ces deux utilisateurs et utilisez les options + - no-create-home et` + - shell / bin / false` afin que ces utilisateurs ne puissent pas se connecter au serveur.

sudo useradd --no-create-home --shell /bin/false prometheus
sudo useradd --no-create-home --shell /bin/false node_exporter

Avant de télécharger les fichiers binaires Prometheus, créez les répertoires nécessaires au stockage des fichiers et des données de Prometheus. Suivant les conventions standard de Linux, nous allons créer un répertoire dans + / etc + pour les fichiers de configuration de Prometheus et un répertoire dans + / var / lib + pour ses données.

sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

Maintenant, définissez la propriété des utilisateurs et des groupes sur les nouveaux répertoires sur l’utilisateur * prometheus *.

sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

Avec nos utilisateurs et nos répertoires en place, nous pouvons maintenant télécharger Prometheus, puis créer le fichier de configuration minimale pour exécuter Prometheus pour la première fois.

Étape 2 - Téléchargement de Prométhée

Tout d’abord, téléchargez et décompressez la version stable actuelle de Prometheus dans votre répertoire personnel. Vous pouvez trouver les derniers fichiers binaires avec leurs sommes de contrôle sur la page de téléchargement Prometheus.

cd ~
curl -LO https://github.com/prometheus/prometheus/releases/download//

Ensuite, utilisez la commande + sha256sum + pour générer une somme de contrôle du fichier téléchargé:

sha256sum

Comparez le résultat de cette commande avec la somme de contrôle de la page de téléchargement de Prometheus pour vous assurer que votre fichier est à la fois authentique et non corrompu.

Output

Si les sommes de contrôle ne correspondent pas, supprimez le fichier téléchargé et répétez les étapes précédentes pour télécharger à nouveau le fichier.

Maintenant, décompressez l’archive téléchargée.

tar xvf

Cela créera un répertoire appelé «+» contenant deux fichiers binaires (` prometheus ` et ` promtool `), ` consoles ` et ` console_libraries +` contenant les fichiers d’interface Web, une licence, une notice et plusieurs exemples de fichiers.

Copiez les deux fichiers binaires dans le répertoire + / usr / local / bin +.

sudo cp /prometheus /usr/local/bin/
sudo cp /promtool /usr/local/bin/

Définissez la propriété des utilisateurs et des groupes sur les fichiers binaires sur l’utilisateur * prometheus * créé à l’étape 1.

sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool

Copiez les répertoires + consoles + et + + console_libraries + dans + / etc / prometheus +.

sudo cp -r /consoles /etc/prometheus
sudo cp -r /console_libraries /etc/prometheus

Définissez la propriété des utilisateurs et des groupes sur les répertoires sur l’utilisateur * prometheus *. L’utilisation de l’indicateur + -R + permet de s’assurer que la propriété est également définie sur les fichiers du répertoire.

sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

Enfin, supprimez les fichiers restants de votre répertoire personnel car ils ne sont plus nécessaires.

rm -rf

Maintenant que Prometheus est installé, nous allons créer ses fichiers de configuration et de service en vue de sa première utilisation.

Étape 3 - Configuration de Prometheus

Dans le répertoire + / etc / prometheus +, utilisez + nano + ou votre éditeur de texte favori pour créer un fichier de configuration nommé + prometheus.yml +. Pour l’instant, ce fichier contiendra juste assez d’informations pour exécuter Prometheus pour la première fois.

sudo nano /etc/prometheus/prometheus.yml

Dans les paramètres + global +, définissez l’intervalle par défaut pour la récupération des métriques. Notez que Prometheus appliquera ces paramètres à chaque exportateur à moins que ses propres paramètres ne prévalent sur les paramètres globaux.

Partie 1 du fichier de configuration de Prometheus - /etc/prometheus/prometheus.yml

global:
 scrape_interval: 15s

Cette valeur + scrape_interval + indique à Prometheus de collecter les métriques de ses exportateurs toutes les 15 secondes, ce qui est suffisamment long pour la plupart des exportateurs.

Maintenant, ajoutez Prometheus lui-même à la liste des exportateurs à supprimer avec la directive + scrape_configs + suivante:

Partie 2 du fichier de configuration de Prometheus - /etc/prometheus/prometheus.yml

...
scrape_configs:
 - job_name: ''
   scrape_interval:
   static_configs:
     - targets: ['']

Prometheus utilise le + nom_travail + pour étiqueter les exportateurs dans les requêtes et les graphiques. Assurez-vous donc de choisir un élément descriptif ici.

Et, Prometheus exportant des données importantes sur lui-même que vous pouvez utiliser pour surveiller les performances et le débogage, nous avons remplacé la directive globale + scrape_interval + de 15 à 5 secondes pour des mises à jour plus fréquentes.

Enfin, Prometheus utilise les directives + static_configs + et + + cibles + pour déterminer le lieu d’exécution des exportateurs. Étant donné que cet exportateur particulier fonctionne sur le même serveur que Prometheus, nous pouvons utiliser + localhost + au lieu d’une adresse IP avec le port par défaut, + 9090 +.

Votre fichier de configuration devrait maintenant ressembler à ceci:

Fichier de configuration Prometheus - /etc/prometheus/prometheus.yml

global:
 scrape_interval: 15s

scrape_configs:
 - job_name: ''
   scrape_interval:
   static_configs:
     - targets: ['']

Enregistrez le fichier et quittez votre éditeur de texte.

Maintenant, définissez la propriété des utilisateurs et des groupes du fichier de configuration sur l’utilisateur * prometheus * créé à l’étape 1.

sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml

Une fois la configuration terminée, nous sommes prêts à tester Prometheus en l’exécutant pour la première fois.

Étape 4 - Lancer Prométhée

Démarrez Prometheus en tant qu’utilisateur * prometheus *, en indiquant le chemin d’accès au fichier de configuration et au répertoire de données.

sudo -u prometheus /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

La sortie contient des informations sur la progression du chargement de Prometheus, le fichier de configuration et les services associés. Cela confirme également que Prometheus écoute sur le port + 9090 +.

Outputlevel=info ts=2017-11-17T18:37:27.474530094Z caller=main.go:215 msg="Starting Prometheus" version="(version=2.0.0, branch=HEAD, re
vision=0a74f98628a0463dddc90528220c94de5032d1a0)"
level=info ts=2017-11-17T18:37:27.474758404Z caller=main.go:216 build_context="(go=go1.9.2, user=root@615b82cb36b6, date=20171108-
07:11:59)"
level=info ts=2017-11-17T18:37:27.474883982Z caller=main.go:217 host_details="(Linux 4.4.0-98-generic #121-Ubuntu SMP Tue Oct 10 1
4:24:03 UTC 2017 x86_64 prometheus-update (none))"
level=info ts=2017-11-17T18:37:27.483661837Z caller=web.go:380 component=web msg="Start listening for connections" address=0.0.0.0
:9090
level=info ts=2017-11-17T18:37:27.489730138Z caller=main.go:314 msg="Starting TSDB"
level=info ts=2017-11-17T18:37:27.516050288Z caller=targetmanager.go:71 component="target manager" msg="Starting target manager...
"
level=info ts=2017-11-17T18:37:27.537629169Z caller=main.go:326 msg="TSDB started"
level=info ts=2017-11-17T18:37:27.537896721Z caller=main.go:394 msg="Loading configuration file" filename=/etc/prometheus/promethe
us.yml
level=info ts=2017-11-17T18:37:27.53890004Z caller=main.go:371 msg="Server is ready to receive requests."

Si vous recevez un message d’erreur, vérifiez que vous avez bien utilisé la syntaxe YAML dans votre fichier de configuration, puis suivez les instructions à l’écran pour résoudre le problème.

Maintenant, arrêtez Prometheus en appuyant sur + CTRL + C +, puis ouvrez un nouveau fichier de service + systemd +.

sudo nano /etc/systemd/system/prometheus.service

Le fichier de service indique à + systemd + de lancer Prometheus en tant qu’utilisateur * prometheus *, le fichier de configuration se trouvant dans le répertoire + / etc / prometheus / prometheus.yml + et de stocker ses données dans le répertoire + / var / lib / prometheus + `répertoire. (Les détails des fichiers de service `+ systemd + dépassent le cadre de ce didacticiel, mais vous pouvez en apprendre plus à l’adresse https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files#. où-are-systemd-unit-files-found [Présentation des unités Systemd et des fichiers d’unités].)

Copiez le contenu suivant dans le fichier:

Fichier de service Prometheus - /etc/systemd/system/prometheus.service

[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

Enfin, sauvegardez le fichier et fermez votre éditeur de texte.

Pour utiliser le service nouvellement créé, rechargez + systemd +.

sudo systemctl daemon-reload

Vous pouvez maintenant démarrer Prometheus en utilisant la commande suivante:

sudo systemctl start prometheus

Pour vous assurer que Prometheus est en cours d’exécution, vérifiez le statut du service.

sudo systemctl status prometheus

La sortie vous indique le statut de Prometheus, son identifiant de processus principal (PID), l’utilisation de la mémoire, etc.

Si l’état du service n’est pas «++», suivez les instructions à l’écran et relancez les étapes précédentes pour résoudre le problème avant de poursuivre le didacticiel.

Output● prometheus.service - Prometheus
  Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
  Active:  (running) since Fri 2017-07-21 11:40:40 UTC; 3s ago
Main PID: 2104 (prometheus)
   Tasks: 7
  Memory: 13.8M
     CPU: 470ms
  CGroup: /system.slice/prometheus.service
...

Lorsque vous êtes prêt à passer à autre chose, appuyez sur + Q + pour quitter la commande + status +.

Enfin, activez le service pour qu’il démarre au démarrage.

sudo systemctl enable prometheus

Maintenant que Prometheus est opérationnel, nous pouvons installer un autre exportateur pour générer des métriques sur les ressources de notre serveur.

Étape 5 - Exportateur de nœud de téléchargement

Pour étendre Prometheus au-delà des seules métriques, nous allons installer un autre exportateur appelé Node Exporter. Node Exporter fournit des informations détaillées sur le système, notamment l’utilisation du processeur, du disque et de la mémoire.

Tout d’abord, téléchargez la version stable actuelle de Node Exporter dans votre répertoire personnel. Vous pouvez trouver les derniers fichiers binaires avec leurs sommes de contrôle sur la page de téléchargement de Prometheus].

cd ~
curl -LO https://github.com/prometheus/node_exporter/releases/download//

Utilisez la commande + sha256sum + pour générer une somme de contrôle du fichier téléchargé:

sha256sum

Vérifiez l’intégrité du fichier téléchargé en comparant sa somme de contrôle à celle de la page de téléchargement.

Output

Si les sommes de contrôle ne correspondent pas, supprimez le fichier téléchargé et répétez les étapes précédentes.

Maintenant, décompressez l’archive téléchargée.

tar xvf

Cela créera un répertoire appelé ++ contenant un fichier binaire nommé + node_exporter +, une licence et un avis.

Copiez le fichier binaire dans le répertoire + / usr / local / bin + et définissez la propriété de l’utilisateur et du groupe sur l’utilisateur * node_exporter * créé à l’étape 1.

sudo cp /node_exporter /usr/local/bin
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

Enfin, supprimez les fichiers restants de votre répertoire personnel car ils ne sont plus nécessaires.

rm -rf

Maintenant que vous avez installé Node Exporter, laissez-le tester en l’exécutant avant de créer un fichier de service pour pouvoir démarrer au démarrage.

Étape 6 - Exportation d’un exportateur de nœud

Les étapes pour exécuter Node Exporter sont similaires à celles pour exécuter Prometheus lui-même. Commencez par créer le fichier de service Systemd pour Node Exporter.

sudo nano /etc/systemd/system/node_exporter.service

Ce fichier de service indique à votre système d’exécuter Node Exporter en tant qu’utilisateur * node_exporter * avec l’ensemble de collecteurs par défaut activé.

Copiez le contenu suivant dans le fichier de service:

Fichier de service d’exportateur de noeud - /etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

Les collecteurs définissent les métriques que Node Exporter va générer. Vous pouvez voir la liste complète des collecteurs de Node Exporter - y compris ceux qui sont activés par défaut et ceux qui sont déconseillés - dans Node Fichier README de l’exportateur.

Si vous devez remplacer la liste de collecteurs par défaut, vous pouvez utiliser l’indicateur + - collectors.enabled +, comme suit:

Partie de fichier de service d’exportateur de noeud - /etc/systemd/system/node_exporter.service

...
ExecStart=/usr/local/bin/node_exporter --collectors.enabled
...

L’exemple précédent indiquerait à Node Exporter de générer des métriques en utilisant uniquement les collecteurs + meminfo +, + + loadavg + et + filesystem + `. Vous pouvez limiter le nombre de collecteurs à vos besoins, mais notez qu’il n’y a pas d’espaces avant ou après les virgules.

Enregistrez le fichier et fermez votre éditeur de texte.

Enfin, rechargez + systemd + pour utiliser le service nouvellement créé.

sudo systemctl daemon-reload

Vous pouvez maintenant exécuter Node Exporter à l’aide de la commande suivante:

sudo systemctl start node_exporter

Vérifiez que Node Exporter fonctionne correctement avec la commande + status +.

sudo systemctl status node_exporter

Comme auparavant, cette sortie vous indique le statut de l’exportateur de nœud, l’identifiant de processus principal (PID), l’utilisation de la mémoire, etc.

Si l’état du service n’est pas «++», suivez les messages à l’écran et relancez les étapes précédentes pour résoudre le problème avant de continuer.

Output● node_exporter.service - Node Exporter
  Loaded: loaded (/etc/systemd/system/node_exporter.service; disabled; vendor preset: enabled)
  Active:  (running) since Fri 2017-07-21 11:44:46 UTC; 5s ago
Main PID: 2161 (node_exporter)
   Tasks: 3
  Memory: 1.4M
     CPU: 11ms
  CGroup: /system.slice/node_exporter.service

Enfin, activez Node Exporter pour qu’il démarre au démarrage.

sudo systemctl enable node_exporter

Avec Node Exporter entièrement configuré et fonctionnant comme prévu, nous dirons à Prometheus de commencer à extraire les nouvelles métriques.

Étape 7 - Configuration de Prometheus pour supprimer l’exportateur de nœuds

Etant donné que Prometheus ne supprime que les exportateurs définis dans la partie `+ scrape_configs + 'de son fichier de configuration, nous devrons ajouter une entrée pour Node Exporter, comme nous l’avons fait pour Prometheus.

Ouvrez le fichier de configuration.

sudo nano /etc/prometheus/prometheus.yml

À la fin du bloc + scrape_configs +, ajoutez une nouvelle entrée appelée + node_exporter +.

Partie 1 du fichier de configuration de Prometheus - /etc/prometheus/prometheus.yml

...
 - job_name: 'node_exporter'
   scrape_interval: 5s
   static_configs:
     - targets: ['localhost:9100']

Étant donné que cet exportateur fonctionne également sur le même serveur que Prometheus, nous pouvons utiliser à nouveau localhost au lieu d’une adresse IP, ainsi que le port par défaut de Node Exporter, + 9100 +.

Votre fichier de configuration complet devrait ressembler à ceci:

Fichier de configuration Prometheus - /etc/prometheus/prometheus.yml

global:
 scrape_interval: 15s

scrape_configs:
 - job_name: 'prometheus'
   scrape_interval: 5s
   static_configs:
     - targets: ['localhost:9090']
 - job_name: 'node_exporter'
   scrape_interval: 5s
   static_configs:
     - targets: ['localhost:9100']

Enregistrez le fichier et quittez votre éditeur de texte lorsque vous êtes prêt à continuer.

Enfin, relancez Prométhée pour appliquer les modifications.

sudo systemctl restart prometheus

Encore une fois, vérifiez que tout fonctionne correctement avec la commande + status +.

sudo systemctl status prometheus

Si le statut du service n’est pas défini sur «++», suivez les instructions à l’écran et relancez les étapes précédentes avant de poursuivre.

Output● prometheus.service - Prometheus
  Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
  Active:  (running) since Fri 2017-07-21 11:46:39 UTC; 6s ago
Main PID: 2219 (prometheus)
   Tasks: 6
  Memory: 19.9M
     CPU: 433ms
  CGroup: /system.slice/prometheus.service

Nous avons maintenant Prometheus et Node Exporter installés, configurés et en cours d’exécution. Dernière précaution à prendre avant la connexion à l’interface Web, nous renforcerons la sécurité de notre installation avec une authentification HTTP de base afin d’empêcher les utilisateurs non autorisés d’accéder à nos métriques.

Étape 8 - Sécuriser Prométhée

Prometheus n’inclut pas l’authentification intégrée ni aucun autre mécanisme de sécurité à usage général. D’une part, cela signifie que vous obtenez un système très flexible avec moins de contraintes de configuration; d’autre part, cela signifie que c’est à vous de vous assurer que vos métriques et votre configuration globale sont suffisamment sécurisées.

Par souci de simplicité, nous allons utiliser Nginx pour ajouter une authentification HTTP de base à notre installation, que Prometheus et son outil de visualisation de données préféré, Grafana, prennent entièrement en charge.

Commencez par installer + apache2-utils +, qui vous donnera accès à l’utilitaire + htpasswd + pour générer des fichiers de mots de passe.

sudo apt-get update
sudo apt-get install apache2-utils

Créez maintenant un fichier de mots de passe en indiquant + htpasswd + où vous souhaitez stocker le fichier et le nom d’utilisateur que vous souhaitez utiliser pour l’authentification.

sudo htpasswd -c

Le résultat de cette commande est un fichier nouvellement créé appelé + .htpasswd +, situé dans le répertoire ++, contenant le nom d’utilisateur et une version hachée du mot de passe que vous avez entré.

Ensuite, configurez Nginx pour utiliser les mots de passe nouvellement créés.

Commencez par créer une copie du fichier de configuration Nginx par défaut spécifique à Prometheus afin de pouvoir revenir aux valeurs par défaut ultérieurement si vous rencontrez un problème.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/prometheus

Ensuite, ouvrez le nouveau fichier de configuration.

sudo nano /etc/nginx/sites-available/prometheus

Localisez le bloc + location / + sous le bloc + serveur +. Cela devrait ressembler à:

/ etc / nginx / sites-available / default

...
   location / {
       try_files $uri $uri/ =404;
   }
...

Comme nous allons transférer tout le trafic sur Prometheus, remplacez la directive + try_files + par le contenu suivant:

/ etc / nginx / sites-available / prometheus

...
   location / {
       auth_basic "";
       auth_basic_user_file ;
       proxy_pass http://localhost:9090;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection 'upgrade';
       proxy_set_header Host $host;
       proxy_cache_bypass $http_upgrade;
   }
...

Ces paramètres garantissent que les utilisateurs devront s’authentifier au début de chaque nouvelle session. De plus, le proxy inverse dirigera toutes les demandes traitées par ce bloc vers Prometheus.

Une fois les modifications apportées, enregistrez le fichier et fermez votre éditeur de texte.

Désactivez maintenant le fichier de configuration Nginx par défaut en supprimant le lien dans le répertoire + / etc / nginx / sites-enabled +, puis activez le nouveau fichier de configuration en créant un lien vers celui-ci.

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/prometheus /etc/nginx/sites-enabled/

Avant de redémarrer Nginx, recherchez des erreurs dans la configuration à l’aide de la commande suivante:

sudo nginx -t

Le résultat devrait indiquer que la syntaxe + est ok + et que le + test est réussi + `. Si vous recevez un message d’erreur, suivez les instructions à l’écran pour résoudre le problème avant de passer à l’étape suivante.

Output of Nginx configuration testsnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Rechargez ensuite Nginx pour intégrer toutes les modifications.

sudo systemctl reload nginx

Vérifiez que Nginx est opérationnel.

sudo systemctl status nginx

Si votre sortie n’indique pas que l’état du service est «++», suivez les messages à l’écran et relancez les étapes précédentes pour résoudre le problème avant de continuer.

Sortie

● nginx.service - A high performance web server and a reverse proxy server
  Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
  Active:  (running) since Mon 2017-07-31 21:20:57 UTC; 12min ago
 Process: 4302 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s r
Main PID: 3053 (nginx)
   Tasks: 2
  Memory: 3.6M
     CPU: 56ms
  CGroup: /system.slice/nginx.service

À ce stade, nous disposons d’un serveur Prometheus entièrement fonctionnel et sécurisé. Nous pouvons donc nous connecter à l’interface Web pour commencer à examiner les métriques.

Étape 9 - Test de Prométhée

Prometheus fournit une interface Web de base permettant de surveiller son statut et celui de ses exportateurs, d’exécuter des requêtes et de générer des graphiques. Mais, en raison de la simplicité de l’interface, l’équipe Prometheus recommends installing and using Grafana pour quoi que ce soit plus compliqué que les tests et le débogage.

Dans ce didacticiel, nous utiliserons l’interface Web intégrée pour nous assurer que Prometheus et Node Exporter sont opérationnels et nous examinerons également des requêtes et des graphiques simples.

Pour commencer, pointez votre navigateur Web sur + http: // +.

Dans la boîte de dialogue Authentification HTTP, entrez le nom d’utilisateur et le mot de passe choisis à l’étape 8.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Authentication.png [Authentification Prométhée]

Une fois connecté, vous verrez le * navigateur d’expressions *, dans lequel vous pourrez exécuter et visualiser des requêtes personnalisées.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Welcome.png [Bienvenue dans Prometheus Dashboard]

Avant d’exécuter des expressions, vérifiez l’état de Prometheus et de Node Explorer en cliquant tout d’abord sur le menu * Status * en haut de l’écran, puis sur l’option de menu * Targets *. Comme nous avons configuré Prometheus pour se gratter à la fois avec Node Exporter, vous devriez voir les deux cibles listées dans l’état + UP +.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Targets.png [Cibles du tableau de bord Prometheus]

Si l’un des exportateurs est manquant ou affiche un message d’erreur, vérifiez l’état du service à l’aide des commandes suivantes:

sudo systemctl status prometheus
sudo systemctl status node_exporter

La sortie des deux services doit indiquer l’état + Actif: (en cours d’exécution) +. Si un service n’est pas du tout actif ou est actif mais ne fonctionne toujours pas correctement, suivez les instructions à l’écran et suivez à nouveau les étapes précédentes avant de continuer.

Ensuite, pour vous assurer que les exportateurs fonctionnent correctement, nous allons exécuter quelques expressions sur Node Exporter.

Tout d’abord, cliquez sur le menu * Graph * en haut de l’écran pour revenir au * navigateur d’expression *.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Graph.png [Graphique de tableau de bord Prometheus]

Dans le champ * Expression *, tapez + node_memory_MemAvailable + et appuyez sur le bouton * Exécuter * pour mettre à jour l’onglet * Console * avec la quantité de mémoire de votre serveur.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-MemTotal.png [Mémoire de tableau de bord de Prometheus]

Par défaut, Node Exporter rapporte ce montant en octets. Pour convertir en mégaoctets, nous allons utiliser des opérateurs mathématiques pour diviser par 1024 deux fois.

Dans le champ * Expression *, entrez + node_memory_MemAvailable / 1024/1024 +, puis appuyez sur le bouton * Exécuter *.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-MemTotal-MB.png [Mémoire de tableau de bord Prometheus]

L’onglet * Console * affiche maintenant les résultats en mégaoctets.

Si vous voulez vérifier les résultats, exécutez la commande + free + à partir de votre terminal. (L’indicateur + -h + indique à + ​​free + de faire un rapport dans un format lisible par l’homme, en indiquant le montant en mégaoctets.)

free -h

Cette sortie contient des détails sur l’utilisation de la mémoire, y compris la mémoire disponible affichée dans la colonne * disponible *.

Output              total        used        free      shared  buff/cache   available
Mem:           488M        144M         17M        3.7M        326M        324M
Swap:            0B          0B          0B

En plus des opérateurs de base, le langage de requête Prometheus fournit également de nombreuses fonctions permettant d’agréger les résultats.

Dans le champ * Expression *, tapez + avg_over_time (node_memory_MemAvailable [5m]) / 1024/1024 + et cliquez sur le bouton * Exécuter *. Le résultat sera la mémoire disponible moyenne au cours des 5 dernières minutes en mégaoctets.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Average-Memory.png [Mémoire moyenne de Prométhée]

Maintenant, cliquez sur l’onglet * Graph * pour afficher l’expression exécutée sous forme de graphique plutôt que sous forme de texte.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Graph-Average-Memory2.png [Mémoire moyenne du graphe Prometheus]

Enfin, tout en restant sur cet onglet, placez votre souris sur le graphique pour obtenir des détails supplémentaires sur un point spécifique le long des axes X et Y du graphique.

Si vous souhaitez en savoir plus sur la création d’expressions dans l’interface Web intégrée de Prometheus, consultez la partie Querying Prometheus de la documentation officielle.

Conclusion

Dans ce didacticiel, nous avons téléchargé, configuré, sécurisé et testé une installation complète de Prometheus avec un exportateur supplémentaire.

Si vous souhaitez en savoir plus sur le fonctionnement de Prométhée, visitez le site https://www.digitalocean.com/community/tutorials/how-to-query-prometheus-on-ubuntu-14-04-. part-1 # step-2-% E2% 80% 94-installer-les-demo-instances [Comment interroger Prometheus sur Ubuntu 14.04]. (Puisque Prometheus est déjà installé sur votre ordinateur, vous pouvez ignorer la première étape.)

Pour voir ce que Prométhée peut faire d’autre, visitez la documentation officielle de Prométhée.

Et, pour en savoir plus sur l’extension de Prometheus, consultez la list des exportateurs disponibles, ainsi que le https://grafana.com/[officiel Grafana (site officiel).

Related