Prometheus peut générer des alertes lorsqu'une cible n'est pas disponible et les envoyer au gestionnaire d'alerte, vous envoyant une notification par e-mail pour vous faire savoir qu'une cible est en baisse. C'est juste un exemple. Prométhée peut envoyer des alertes à Alert Manager en fonction de toutes les métriques Prometheus. Ainsi, les possibilités sont illimitées.
Dans cet article, je vais vous montrer comment installer Prometheus Alert Manager sur Ubuntu 20.04 LTS. Je vais également vous montrer comment configurer Prometheus et Alert Manager pour vous envoyer des notifications par e-mail via Gmail lorsqu'une cible Prometheus est en baisse (indisponible). Alors, commençons.
Table des matières:
Conditions préalables:
Pour suivre cet article, vous devez:
Cet article est une continuation de l'article comment installer Prométhée sur Ubuntu 20.04 LTS. Si vous avez besoin d'aide sur l'installation de Prometheus sur Ubuntu 20.04 LTS et création d'un utilisateur du système Prometheus, assurez-vous de le vérifier.
Installation du gestionnaire d'alerte:
Vous pouvez télécharger la dernière version d'Alert Manager sur le site officiel de Prometheus et l'installer sur Ubuntu 20.04 LTS très facilement.
Tout d'abord, accédez à la ~ / Téléchargements Répertoire (ou tout autre répertoire temporaire de votre choix) comme suit:
$ cd ~ / téléchargements
Téléchargez la dernière version d'Alert Manager (V0.22.2 au moment de la rédaction de cet article) avec la commande suivante:
$ wget https: // github.com / prometheus / alertmanager / releases / download / v0.22.2 / alertmanager-0.22.2.Linux-AMD64.le goudron.gz
Alert Manager est en cours de téléchargement. Cela peut prendre un certain temps pour terminer.
À ce stade, Alert Manager doit être téléchargé.
Une fois Alert Manager téléchargé, vous devriez trouver un nouveau fichier d'archives alertmanager-0.22.2.Linux-AMD64.le goudron.gz dans votre répertoire de travail actuel, comme marqué dans la capture d'écran ci-dessous.
$ ls -lh
Extraire le alertmanager-0.22.2.Linux-AMD64.le goudron.gz Archive avec la commande suivante:
$ TAR XZF ALERTMANGER-0.22.2.Linux-AMD64.le goudron.gz
Vous devriez trouver un nouveau répertoire alertmanager-0.22.2.Linux-AMD64 / comme marqué dans la capture d'écran ci-dessous.
$ ls -lh
Maintenant, déplacez le alertmanager-0.22.2.Linux-AMD64 répertoire de /opter/ répertoire et renommer à alertmanager comme suit:
$ sudo mv -v alertmanager-0.22.2.Linux-AMD64 / OPT / ALERTMANGER
Modifiez l'utilisateur et le groupe de tous les fichiers et répertoires du / opt / alertmanager / Répertoire pour root comme suit:
$ sudo chown -rfv racine: root / opt / alertmanager
Dans le / opt / alertmanager répertoire, vous devriez trouver le alertmanager Fichier de configuration binaire et alerte alertmanager.YML, comme marqué dans la capture d'écran ci-dessous. Vous les utiliserez plus tard. Alors, gardez ça à l'esprit.
Création d'un répertoire de données:
Alert Manager a besoin d'un répertoire où il peut stocker ses données. Comme vous exécuterez Alert Manager comme le Prométhée Utilisateur système, le Prométhée L'utilisateur du système doit avoir accès (lire, écrire et exécuter des autorisations) à ce répertoire de données.
Vous pouvez créer le données/ répertoire dans le / opt / alertmanager / Répertoire comme suit:
$ sudo mkdir -v / opt / alertmanager / data
Changer le propriétaire et le groupe du / opt / alertmanager / data / répertoire de Prométhée avec la commande suivante:
$ sudo chown -rfv prometheus: prometheus / opt / alertmanager / data
Le propriétaire et le groupe du / opt / alertmanager / data / Le répertoire doit être modifié en Prométhée, Comme indiqué dans la capture d'écran ci-dessous.
$ ls -lh
Démarrage du gestionnaire d'alerte sur le démarrage:
Maintenant, vous devez créer un fichier de service SystemD pour Alert Manager afin que vous puissiez facilement gérer (démarrer, arrêter, redémarrer et ajouter au démarrage) le service AlertManager avec SystemD.
Pour créer un fichier de service SystemD alertmanager.service, Exécutez la commande suivante:
$ sudo nano / etc / systemd / système / alertmanager.service
Tapez les lignes suivantes dans le alertmanager.service déposer.
[Unité]
Description = alertmanager pour Prometheus
[Service]
Redémarrer = toujours
Utilisateur = Prométhée
Execstart = / opt / alertmanager / alertmanager - Config.fichier = / opt / alertmanager / alertmanager.YML - Storage.chemin = / opt / alertmanager / data
Execreload = / bin / kill -Hup $ mainpid
TimeoutStopSec = 20s
Sendsigkill = non
[Installer]
Recherché = multi-utilisateurs.cible
Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour sauver le alertmanager.service déposer.
Pour que les modifications SystemD prennent effet, exécutez la commande suivante:
$ sudo Systemctl Daemon-Reload
Maintenant, commencez le alertmanager Service avec la commande suivante:
$ sudo systemctl start alertmanager.service
Ajouter le alertmanager Service au démarrage du système afin qu'il démarre automatiquement sur le démarrage avec la commande suivante:
$ sudo systemctl activer alertmanager.service
Comme vous pouvez le voir, le alertmanager Le service est actif /. C'est aussi activé (il démarrera automatiquement sur le démarrage).
$ sudo systemctl status alertmanager.service
Configuration de Prometheus:
Maintenant, vous devez configurer Prometheus pour utiliser Alert Manager. Vous pouvez également surveiller Alert Manager avec Prometheus. Je vais vous montrer comment faire les deux dans cette section.
Tout d'abord, recherchez l'adresse IP de l'ordinateur où vous avez installé Alert Manager avec la commande suivante:
$ hostname -i
Dans mon cas, l'adresse IP est 192.168.20.161. Ce sera différent pour vous. Alors, assurez-vous de le remplacer par le vôtre à partir de maintenant.
Maintenant, ouvrez le fichier de configuration de Prometheus / opt / prometheus / prometheus.YML avec le nano Éditeur de texte comme suit:
$ sudo nano / opt / prometheus / prometheus.YML
Tapez les lignes suivantes dans le scrape_configs Section pour ajouter un gestionnaire d'alerte pour la surveillance avec Prometheus.
- job_name: 'alertmanager'
static_configs:
- cibles: ['192.168.20.161: 9093 ']
Tapez également l'adresse IP et le numéro de port du gestionnaire d'alerte dans le alerte> alertmanagers Section comme marqué dans la capture d'écran ci-dessous.
Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour sauver le Prométhée.YML fichier de configuration.
Pour que les changements prennent effet, redémarrez le Prométhée Service comme suit:
$ sudo systemctl redémarrer prometheus.service
Visitez l'URL http: // 192.168.20.161: 9090 / cible de votre navigateur Web préféré, et vous devriez voir que alertmanager est dans le EN HAUT État. Donc, Prometheus peut très bien accéder à Alert Manager.
NOTE: J'ai installé Prometheus et Alert Manager sur le même ordinateur. Ainsi, l'adresse IP de mon instance Prometheus est la même que les gestionnaires d'alerte. Si vous avez installé Prometheus sur un autre ordinateur, effectuez les ajustements nécessaires à partir de maintenant.
Création d'une règle d'alerte Prometheus:
Sur Prometheus, vous pouvez utiliser le en haut Expression pour trouver l'état des cibles ajoutées à Prometheus, comme le montre la capture d'écran ci-dessous.
Les cibles qui sont dans le EN HAUT State (en cours d'exécution et accessible à Prometheus) aura la valeur 1, et des cibles qui ne sont pas dans le EN HAUT (ou BAS) L'état (non en cours d'exécution ou inaccessible à Prometheus) aura la valeur 0.
Si vous arrêtez l'une des cibles - Node_exporter (Disons).
$ sudo systemctl stop nœud-exporter.service
Le en haut La valeur de cette cible devrait être 0, Comme vous pouvez le voir dans la capture d'écran ci-dessous. Vous avez eu l'idée.
Ainsi, vous pouvez utiliser le up == 0 Expressions pour répertorier uniquement les cibles qui ne sont pas en cours d'exécution ou inaccessibles à Prometheus, comme vous pouvez le voir dans la capture d'écran ci-dessous.
Cette expression peut être utilisée pour créer une alerte Prométhée et envoyer des alertes à Alert Manager lorsqu'une ou plusieurs cibles ne sont pas en cours d'exécution ou inaccessibles à Prometheus.
Pour créer une alerte Prometheus, créez un nouveau fichier règles.YML dans le / opt / prometheus / Répertoire comme suit:
$ sudo nano / opt / prometheus / règles.YML
Maintenant, saisissez les lignes suivantes dans le règles.YML déposer.
groupes:
- nom: tester
règles:
- Alerte: Instancedown
expr: up == 0
Pour: 1m
Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour sauver le règles.YML déposer.
Ici, l'alerte Instancedown sera licencié lorsque les cibles ne sont pas en cours d'exécution ou inaccessibles à Prometheus (c'est-à-dire up == 0) pour une minute (1m).
Maintenant, ouvrez le fichier de configuration de Prometheus / opt / prometheus / prometheus.YML avec le nano Éditeur de texte comme suit:
$ sudo nano / opt / prometheus / prometheus.YML
Ajouter le règles.YML fichier dans le Rule_files Section du Prométhée.Fichier de configuration YML comme marqué dans la capture d'écran ci-dessous.
Une autre option importante du Prométhée.YML le fichier est évaluation_interval. Prométhée vérifiera si des règles correspondent à chaque évaluation_interval temps. La valeur par défaut est 15S (15 secondes). Ainsi, l'alerte règne dans le règles.YML Le fichier sera vérifié toutes les 15 secondes.
Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour sauver le Prométhée.YML déposer.
Pour que les changements prennent effet, redémarrez le Prométhée Service comme suit:
$ sudo systemctl redémarrer prometheus.service
Maintenant, accédez à l'URL http: // 192.168.20.161: 9090 / Règles de votre navigateur Web préféré, et vous devriez voir la règle Instancedown que tu viens d'ajouter.
Accédez à l'URL http: // 192.168.20.161: 9090 / Alertes de votre navigateur Web préféré, et vous devriez voir l'état de l'alerte Instancewown, comme vous pouvez le voir dans la capture d'écran ci-dessous.
Comme tu as arrêté Node_exporter Plus tôt, l'alerte est active, et il attend d'être envoyé au gestionnaire d'alerte.
Après une minute s'est écoulée, l'alerte Instancedown devrait être dans le CUISSON État. Cela signifie que l'alerte est envoyée au gestionnaire d'alerte.
Configuration du récepteur Gmail sur Alert Manager:
Dans cette section, je vais vous montrer comment configurer Gmail en tant que récepteur du gestionnaire d'alerte afin que vous puissiez recevoir des e-mails sur votre compte Gmail de Alert Manager si une cible Prometheus est en panne.
Pour configurer Gmail en tant que récepteur du gestionnaire d'alerte, vous devez générer un mot de passe d'application pour Gmail à partir des paramètres de sécurité de votre compte Google.
Pour ce faire, accédez à URL https: // myAccount.Google.com de votre navigateur Web préféré et cliquez sur Sécurité> Mots de passe de l'application comme marqué dans la capture d'écran ci-dessous.
Vous devriez voir la page suivante.
Sélectionner Poster du Sélectionnez l'application Menu déroulant comme marqué dans la capture d'écran ci-dessous.
Sélectionner Autre (nom personnalisé) du Choisir un appareil Menu déroulant comme marqué dans la capture d'écran ci-dessous.
Tapez alertmanager (ou tout ce que vous aimez) et cliquez sur GÉNÉRER comme marqué dans la capture d'écran ci-dessous.
Un mot de passe d'application doit être généré. Copiez-le et stockez-le dans un endroit sûr. Vous en aurez besoin plus tard.
Maintenant, ouvrez le fichier de configuration du gestionnaire d'alerte / opt / alertmanager / alertmanager.YML avec le nano Éditeur de texte comme suit:
$ sudo nano / opt / alertmanager / alertmanager.YML
Pour ajouter un nouveau récepteur Gmail, saisissez les lignes suivantes dans le récepteurs Section de la alertmanager.YML fichier comme marqué dans la capture d'écran ci-dessous.
- Nom: 'gmail'
e-mail_configs:
- à: '@gmail.com '
De: '@gmail.com '
SMARTHOST: SMTP.Gmail.com: 587
auth_username: '@gmail.com '
auth_identity: '@gmail.com '
auth_password: ''
NOTE: Assurez-vous de remplacer avec le nom d'utilisateur (la pièce avant la section @ de votre e-mail) de votre compte Google et Avec le mot de passe de l'application que vous avez généré plus tôt.
Ensuite, définissez le gestionnaire d'alerte destinataire pour Gmail (le récepteur que vous venez de créer) comme marqué dans la capture d'écran ci-dessous.
Une fois que vous avez terminé, appuyez sur + X suivie par Y et Pour sauver le alertmanager.YML fichier de configuration.
Alert Manager utilisera le Gmail Récepteur à partir de maintenant.
répéter_interval est également une option importante du gestionnaire d'alerte. Par défaut, répéter_interval est réglé sur 1h (1 heure). Si Alert Manager vous a envoyé un e-mail sur votre compte Gmail, il attendra une heure avant de vous en envoyer un autre. Si vous ne voulez pas recevoir des e-mails très fréquemment, vous pouvez l'augmenter.
Maintenant, redémarrez le alertmanager SystemD Service pour les modifications à prendre en vigueur comme suit:
$ sudo systemctl redémarrer alertmanager.service
Vous devriez recevoir un e-mail sous peu dans votre compte Gmail, comme vous pouvez le voir dans la capture d'écran ci-dessous.
Tu as arrêté Node_exporter Plus tôt, rappelez-vous?
Dépannage des problèmes de livraison des e-mails du gestionnaire d'alerte:
Vous pouvez surveiller les problèmes de livraison des e-mails Alert Manager avec la commande suivante:
$ sudo JournalCTL --DOPER --NO-PAGER --boot --Unit AlertManager.service
Le alertmanager Les journaux de service SystemD doivent être affichés, comme vous pouvez le voir dans la capture d'écran ci-dessous.
Si Alert Manager n'est pas en mesure de livrer des e-mails à votre adresse e-mail, vous devriez pouvoir trouver pourquoi il a échoué ici.
Un exemple d'échec de la livraison des e-mails est affiché dans la capture d'écran ci-dessous. Si vous lisez le message du journal, vous devriez être en mesure de dire que la livraison a échoué car le mot de passe était incorrect.
Conclusion:
Dans cet article, je vous ai montré comment installer Alert Manager sur Ubuntu 20.04 LTS. Je vous ai également montré comment configurer Alert Manager et Prometheus pour envoyer des notifications par e-mail à votre compte Gmail lorsqu'une cible Prometheus est en panne.
Les références: