Comment utiliser Prometheus pour surveiller votre serveur CentOS 7

introduction

Prometheus est un système de surveillance open source développé par SoundCloud. Comme d’autres systèmes de surveillance, tels que InfluxDB et Graphite, Prometheus stocke toutes ses données dans une base de données de séries chronologiques. Cependant, il offre un modèle de données multidimensionnel et un puissant langage de requête, permettant aux administrateurs système d’affiner facilement les définitions de leurs métriques, mais également de générer des rapports plus précis.

De plus, le projet Prometheus inclut également PromDash (un outil basé sur un navigateur qui peut être utilisé pour développer des tableaux de bord personnalisés) et un AlertManager expérimental capable d’envoyer des alertes par courrier électronique, Flowdock, Slack, HipChat et plus encore.

Dans ce didacticiel, vous apprendrez à installer, configurer et utiliser Prometheus Server, Node Exporter et PromDash.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

  • Une gouttelette CentOS 7 64 bits

  • Un utilisateur non-root sudo, de préférence un nommé * prometheus *.

Étape 1 - Installation du serveur Prometheus

Commencez par créer un nouveau répertoire pour stocker tous les fichiers que vous avez téléchargés dans ce didacticiel et y accéder.

mkdir ~/Downloads
cd ~/Downloads

Utilisez + curl + pour télécharger la dernière version du serveur Prometheus et de la base de données chronologiques à partir de GitHub.

curl -LO "https://github.com/prometheus/prometheus/releases/download/0.16.0/prometheus-0.16.0.linux-amd64.tar.gz"

Le système de surveillance Prometheus est composé de plusieurs composants, chacun devant être installé séparément. Conserver tous les composants dans un répertoire parent est une bonne idée. Créez-en un en utilisant + mkdir +.

mkdir ~/Prometheus

Entrez le répertoire que vous venez de créer.

cd ~/Prometheus

Utilisez + tar + pour extraire + prometheus-0.16.0.linux-amd64.tar.gz +.

tar -xvzf ~/Downloads/prometheus-0.16.0.linux-amd64.tar.gz

Ceci termine l’installation du serveur Prometheus. Vérifiez l’installation en tapant la commande suivante:

~/Prometheus/prometheus-0.16.0.linux-amd64/prometheus -version

Vous devriez voir le message suivant sur votre écran:

Sortie Prométhée

prometheus, version 0.16.0 (branch: HEAD, revision: dcb8ba4)
 build user:       julius@desktop
 build date:       20151009-23:51:17
 go version:       1.5.1

Étape 2 - Installation de Node Exporter

Prometheus a été développé dans le but de surveiller les services Web. Afin de surveiller les métriques de votre serveur CentOS, vous devez installer un outil appelé Node Exporter. Node Exporter, comme son nom l’indique, exporte de nombreuses métriques (telles que les statistiques d’E / S de disque, la charge de l’UC, l’utilisation de la mémoire, les statistiques du réseau, etc.) dans un format compris par Prometheus.

Entrez le répertoire + Téléchargements + et utilisez + curl + pour télécharger la dernière version de Node Exporter disponible sur GitHub.

cd ~/Downloads && curl -LO "https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz"

Créez un nouveau répertoire appelé + node_exporter + à l’intérieur du répertoire + Prometheus + et entrez-y:

mkdir ~/Prometheus/node_exporter
cd ~/Prometheus/node_exporter

Vous pouvez maintenant utiliser la commande + tar + pour extraire + node_exporter-0.11.0.linux-amd64.tar.gz +.

tar -xvzf ~/Downloads/node_exporter-0.11.0.linux-amd64.tar.gz

Étape 3 - Exécution de l’exportateur de nœud en tant que service

Pour faciliter le démarrage et l’arrêt de Node Exporter, convertissons-le maintenant en service.

Utilisez + vi + ou tout autre éditeur de texte pour créer un fichier de configuration d’unité appelé + node_exporter.service +.

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

Ce fichier doit contenir le chemin de l’exécutable + node_exporter + et indiquer également quel utilisateur doit exécuter l’exécutable. En conséquence, ajoutez le code suivant:

/etc/init/node_exporter.conf

[Unit]
Description=Node Exporter

[Service]
User=
ExecStart=/home//Prometheus/node_exporter/node_exporter

[Install]
WantedBy=default.target

Enregistrez le fichier et quittez l’éditeur de texte.

Rechargez + systemd + pour qu’il lise le fichier de configuration que vous venez de créer.

sudo systemctl daemon-reload

À ce stade, Node Exporter est disponible en tant que service pouvant être géré à l’aide de la commande + systemctl +. Activez-le pour qu’il démarre automatiquement au démarrage.

sudo systemctl enable node_exporter.service

Vous pouvez maintenant redémarrer votre serveur ou utiliser la commande suivante pour démarrer le service manuellement:

sudo systemctl start node_exporter.service

Une fois démarré, utilisez un navigateur pour afficher l’interface Web de Node Exporter, disponible sur + http: //: 9100 / metrics +. Vous devriez voir une page avec beaucoup de texte:

http: // your_server_ip: 9100 / extrait de métriques

# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0.00023853100000000002
go_gc_duration_seconds{quantile="0.25"} 0.00023998700000000002
go_gc_duration_seconds{quantile="0.5"} 0.00028122
. . .

Étape 4 - Démarrage du serveur Prometheus

Entrez le répertoire où vous avez installé le serveur Prometheus:

cd ~/Prometheus/prometheus-0.16.0.linux-amd64

Avant de démarrer Prometheus, vous devez d’abord créer un fichier de configuration nommé + prometheus.yml +.

vi ~/Prometheus/prometheus-0.16.0.linux-amd64/prometheus.yml

Copiez le code suivant dans le fichier.

~ / Prometheus / prometheus-0.16.0.linux-amd64 / prometheus.yml

scrape_configs:
 - job_name: "node"
   scrape_interval: "15s"
   target_groups:
   - targets: ['localhost:9100']

Cela crée une section + scrape_configs + et définit un travail appelé + node +. Il inclut l’URL de l’interface Web de votre exportateur de nœuds dans son tableau de + cibles +. `` Scrape_interval + `est défini sur 15 secondes pour que Prometheus élimine les métriques toutes les quinze secondes.

Vous pouvez nommer votre travail comme bon vous semble, mais l’appeler «nœud» vous permet d’utiliser les modèles de console par défaut de Node Exporter.

Enregistrez le fichier et quittez.

Démarrez le serveur Prometheus en arrière-plan.

nohup ./prometheus > prometheus.log 2>&1 &

Notez que vous avez redirigé la sortie du serveur Prometheus vers un fichier nommé + prometheus.log +. Vous pouvez visualiser les dernières lignes du fichier en utilisant la commande + tail +:

tail ~/Prometheus/prometheus-0.16.0.linux-amd64/prometheus.log

Une fois le serveur prêt, vous verrez les messages suivants dans le fichier:

Prometheus.log extrait

INFO[0000] Starting target manager...         file=targetmanager.go line=75
INFO[0000] Listening on :9090                 file=web.go line=118

Utilisez un navigateur pour visiter la page d’accueil de Prométhée disponible à + ​​http: //: 9090 +. Vous verrez la page d’accueil suivante.

image: http: //i.imgur.com/cfw7Gnb.png [Page d’accueil de Prométhée]

Pour vous assurer que Prometheus récupère les données de Node Exporter, cliquez sur l’onglet * Graph * en haut de la page. Sur la page qui s’ouvre, entrez le nom d’une métrique (par exemple, * nodeprocsrunning *, par exemple) dans le champ de texte intitulé * Expression *. Appuyez ensuite sur le bouton bleu * Exécuter *. Cliquez sur * Graphique * (à côté de * Console *) juste en dessous, et vous devriez voir un graphique pour cette métrique:

image: https: //assets.digitalocean.com/articles/prometheus/lo6upjI.png [Graphique Prométhée]

Prometheus possède des modèles de console qui vous permettent d’afficher des graphiques de quelques mesures couramment utilisées. Ces modèles de console ne sont accessibles que si vous définissez la valeur + nom_travail + sur + + noeud + dans la configuration de Prometheus.

Visitez + http: //: 9090 / consoles / node.html + pour accéder à la console de nœud et cliquez sur votre serveur, * + localhost: 9100 + *, pour afficher ses métriques:

image: https: //assets.digitalocean.com/articles/prometheus/E8flb93.png [Console de nœud]

Étape 5 - Installation de PromDash

Bien que le serveur Prometheus vous permette d’afficher des graphiques et de tester des expressions, il n’est généralement utilisé que pour le débogage ou pour exécuter des requêtes uniques. Le moyen privilégié pour visualiser les données dans la base de données chronologiques de Prometheus consiste à utiliser PromDash, un outil qui vous permet de créer des tableaux de bord personnalisés qui sont non seulement hautement configurables, mais également plus esthétiques.

Entrez le répertoire + Prometheus +:

cd ~/Prometheus

PromDash est une application Ruby on Rails dont les fichiers source sont disponibles sur GitHub. Pour le télécharger et l’exécuter, vous devez installer Git, Ruby et quelques outils de construction. Utilisez + yum + pour le faire.

sudo yum install git ruby ruby-devel sqlite-devel zlib-devel gcc gcc-c++ automake patch

Vous pouvez maintenant utiliser la commande + git + pour télécharger les fichiers source.

git clone https://github.com/prometheus/promdash.git

Entrez le répertoire + promdash +.

cd ~/Prometheus/promdash

PromDash dépend de plusieurs gemmes Ruby. Afin d’automatiser l’installation de ces gems, vous devez installer un gem nommé + bundler +.

gem install bundler

Vous pouvez maintenant utiliser la commande + bundle + pour installer tous les gems Ruby nécessaires à PromDash. Comme nous allons configurer PromDash pour qu’il fonctionne avec SQLite3 dans ce tutoriel, assurez-vous d’exclure les gems pour MySQL et PostgreSQL à l’aide du paramètre + - without +:

bundle install --without mysql postgresql

Vous devrez peut-être attendre quelques minutes pour que cette commande se termine. Une fois cela fait, vous devriez voir les messages suivants:

Bundle de sortie

. . .
Your bundle is complete!
Gems in the groups mysql and postgresql were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

Étape 6 - Configuration de l’environnement Rails

Créez un répertoire pour stocker les bases de données SQLite3 associées à PromDash.

mkdir ~/Prometheus/databases

PromDash utilise une variable d’environnement appelée + DATABASE_URL + pour déterminer le nom de la base de données qui lui est associée. Tapez ce qui suit pour que PromDash crée une base de données SQLite3 appelée + mydb.sqlite3 + dans le répertoire + database +:

echo "export DATABASE_URL=sqlite3:$HOME/Prometheus/databases/mydb.sqlite3" >> ~/.bashrc

Dans ce tutoriel, vous exécuterez PromDash en mode de production. Définissez donc la variable d’environnement + RAILS_ENV + sur + production +.

echo "export RAILS_ENV=production" >> ~/.bashrc

Appliquez les modifications apportées au fichier + .bashrc +.

. ~/.bashrc

Créez ensuite les tables de PromDash dans la base de données SQLite3 à l’aide de l’outil + rake +.

rake db:migrate

Etant donné que PromDash utilise le pipeline d’actifs Rails, tous les actifs (fichiers CSS, images et fichiers Javascript) du projet PromDash doivent être précompilés. Tapez ce qui suit pour le faire:

rake assets:precompile

Étape 7 - Démarrer et configurer PromDash

PromDash fonctionne sur Thin, un serveur Web léger. Démarrez le serveur en tant que démon en tapant la commande suivante:

bundle exec thin start -d

Attendez quelques secondes que le serveur démarre, puis accédez à la page + http: //: 3000 / + pour afficher la page d’accueil de PromDash.

image: https: //assets.digitalocean.com/articles/prometheus/j0AfIQA.png [Page d’accueil de PromDash]

Avant de commencer à créer vos tableaux de bord personnalisés, vous devez informer PromDash de l’URL de votre serveur Prometheus. Vous pouvez le faire en cliquant sur l’onglet * Servers * en haut. Cliquez sur * Nouveau serveur *, puis dans le formulaire, donnez un nom quelconque à votre serveur Prometheus. Définissez le champ * Url * sur + http: //: 9090 + et le champ * Type de serveur * sur * Prometheus *.

image: https: //assets.digitalocean.com/articles/prometheus/C0ChfYZ.png [Écran Créer serveur de PromDash]

Enfin, cliquez sur * Créer un serveur * pour terminer la configuration. Votre page indiquera que * Le serveur a été créé avec succès. * Et que vous pouvez cliquer sur * Tableaux de bord * dans le menu supérieur.

Étape 8 - Création d’un tableau de bord

Comme un tableau de bord Promdash doit appartenir à un répertoire Promdash, créez d’abord un nouveau répertoire en cliquant sur * Nouveau répertoire *. Dans le formulaire affiché, attribuez un nom à votre répertoire, par exemple * Mes tableaux de bord *, puis cliquez sur * Créer un répertoire *.

Une fois que vous avez soumis le formulaire, vous serez ramené à la page d’accueil. Cliquez maintenant sur le bouton * Nouveau tableau de bord * pour créer un nouveau tableau de bord. Dans le formulaire affiché, attribuez un nom à votre tableau de bord, par exemple * Tableau de bord simple *, puis sélectionnez le répertoire que vous venez de créer dans le menu déroulant.

Après avoir soumis le formulaire, vous pourrez voir le nouveau tableau de bord.

image: https: //assets.digitalocean.com/articles/prometheus/PQ1eTVJ.png [Tableau de bord vide]

Votre tableau de bord comporte déjà un graphique, mais il doit être configuré. Si vous survolez l’en-tête du graphique (qui porte le titre * Title *), diverses icônes vous permettront de configurer le graphique. Pour changer son titre, vous pouvez cliquer sur l’icône * Paramètres de graphique et d’axe * (quatrième à gauche) et saisir un nouveau titre dans le champ * Titre du graphique *.

Cliquez sur l’icône * Sources de données *, qui est la deuxième à gauche, pour ajouter une ou plusieurs expressions au graphique. Cliquez sur * Ajouter une expression * et, dans le champ «Entrez l’expression», entrez * nodeprocsrunning *.

image: https: //assets.digitalocean.com/articles/prometheus/zHslJPa.png [Ajouter une expression]

Maintenant, cliquez sur l’icône * Actualiser * (la plus à gauche) dans l’en-tête du graphique pour mettre à jour le graphique. Votre tableau de bord contient maintenant un graphique entièrement configuré. Vous pouvez ajouter plus de graphiques en cliquant sur le bouton * Ajouter un graphique * en bas.

Après avoir effectué toutes les modifications, assurez-vous de cliquer sur le bouton * Enregistrer les modifications * situé à droite pour que vos modifications soient permanentes. Lors de votre prochaine visite sur la page d’accueil de PromDash, vous pourrez voir un lien vers votre tableau de bord:

image: https: //assets.digitalocean.com/articles/prometheus/fztROmE.png [Tableaux de bord PromDash]

Conclusion

Vous disposez maintenant d’un écosystème Prometheus entièrement fonctionnel s’exécutant sur votre serveur CentOS 7 et vous pouvez utiliser PromDash pour créer des tableaux de bord de surveillance adaptés à vos besoins.

Même si vous avez installé tous les composants sur une seule machine CentOS, vous pouvez facilement surveiller plusieurs machines en installant uniquement Node Exporter sur chacune d’elles et en ajoutant les URL des nouveaux exportateurs de nœuds au tableau + cibles + de `+ prometheus. yml + `.

Vous pouvez en apprendre davantage sur Prométhée en vous référant à son documentation.

Related