Prometheus: Alertes
Fonctionnement des alertes Prometheus et configuration
👋 Bienvenue sur la documentation de Stackhero !
Stackhero propose une solution Prometheus cloud prête à l'emploi qui offre de nombreux avantages, notamment :
Alert Managerinclus pour envoyer des alertes versSlack,Mattermost,PagerDuty, etc.- Serveur email dédié pour envoyer un nombre illimité d'alertes par e-mail.
Blackboxpour sonderHTTP,ICMP,TCPet bien plus.- Configuration simple grâce à l'éditeur de fichier de configuration en ligne.
- Mises à jour faciles en un clic.
- Performance optimale et sécurité renforcée grâce à une VM privée et dédiée.
Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Prometheus cloud hosting de Stackhero !
Introduction aux alertes Prometheus
Prometheus peut analyser vos métriques et déclencher des alertes selon des règles que vous définissez. Avec Stackhero for Prometheus, les alertes sont traitées en deux étapes. D'abord, les règles d'alerte Prometheus sont évaluées, puis c'est Alert Manager qui prend le relais.
Tout est préinstallé et configuré avec Stackhero for Prometheus, il vous suffit donc d'effectuer une configuration minimale, comme ajouter votre adresse e-mail, pour commencer à recevoir des alertes.
Big picture of Stackhero for Prometheus
Introduction aux règles d'alerte Prometheus
Lorsque Prometheus collecte les métriques, il les évalue selon les règles définies dans le fichier rules-alert.yml. Ces règles d'alerte définissent des seuils et des fenêtres temporelles pour déclencher des alertes en fonction des métriques collectées.
Par exemple, une alerte peut être déclenchée si l'utilisation du disque dépasse 80 %. Il est également possible de configurer des règles pour anticiper des situations futures et envoyer une alerte si l'on estime que l'espace disque sera totalement utilisé dans les 24 prochaines heures.
Un autre cas d'usage courant consiste à détecter des comportements inhabituels. Par exemple, si une augmentation soudaine du trafic réseau est détectée, une alerte peut être envoyée pour aider à identifier une attaque DDoS ou une tentative d'exfiltration de données.
Les règles d'alerte Prometheus sont intégrées directement dans le serveur Prometheus.
Introduction à Alert Manager
Alert Manager reçoit les alertes déclenchées par les règles d'alerte Prometheus. Il déduplique les alertes, les regroupe, puis les transmet via différents canaux de notification comme e-mail, Slack, Mattermost, PagerDuty, et bien d'autres. Son fichier de configuration est alert-manager.yml.
Par exemple, en cas de ralentissement d'un serveur, les règles d'alerte Prometheus peuvent générer des alertes distinctes pour la charge et l'utilisation CPU. Alert Manager reçoit ces alertes, les regroupe car elles concernent le même serveur, puis envoie une notification consolidée au destinataire ou à l'équipe appropriée selon votre configuration.
Si le ralentissement persiste, Prometheus continuera à envoyer des alertes, mais Alert Manager supprimera les messages en double pendant une période définie afin d'éviter de submerger votre équipe avec des alertes redondantes.
Vous pouvez également mettre en silence ou inhiber complètement certaines alertes si besoin. Une fois le problème résolu, un message de rétablissement est envoyé pour informer vos équipes.
Cet exemple illustre un scénario courant, mais vous pouvez personnaliser entièrement la configuration selon vos besoins spécifiques.
Alert Managern'est pas inclus par défaut avec Prometheus. Pour vous faire gagner du temps et simplifier la gestion, nous avons intégré et configuréAlert Managerdans Stackhero for Prometheus afin que vous puissiez envoyer des alertes en quelques minutes, avec un minimum d'efforts.
Configuration des règles d'alerte Prometheus
Vous pouvez ajuster les règles d'alerte Prometheus en modifiant le fichier rules-alert.yml. Pour cela, accédez à votre tableau de bord Stackhero, sélectionnez votre service Prometheus, puis cliquez sur "Configuration des règles d'alerte Prometheus".
Nous avons déjà ajouté des règles d'alerte par défaut à votre instance Stackhero for Prometheus, vous n'aurez donc généralement pas besoin de modifier le fichier rules-alert.yml sauf si vous souhaitez personnaliser la configuration.
Voici un exemple d'alerte qui se déclenche si l'utilisation du disque dépasse 90 % :
- alert: "HostOutOfDiskSpace"
expr: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 10 and ON (instance, device, mountpoint) node_filesystem_readonly == 0
for: 2m
labels:
severity: "warning"
annotations:
summary: "Host out of disk space (instance {{ $labels.instance }})"
description: "Disk is almost full (< 10% left)"
value: "{{ $value }}"
Voici un autre exemple qui anticipe une saturation de l'espace disque dans les 24 prochaines heures :
- alert: "HostDiskWillFillIn24Hours"
expr: (node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes < 10 and ON (instance, device, mountpoint) predict_linear(node_filesystem_avail_bytes{fstype!~"tmpfs"}[1h], 24 * 3600) < 0 and ON (instance, device, mountpoint) node_filesystem_readonly == 0
for: 2m
labels:
severity: "warning"
annotations:
summary: "Host disk will fill in 24 hours (instance {{ $labels.instance }})"
description: "Filesystem is predicted to run out of space within the next 24 hours at the current write rate"
value: "{{ $value }}"
Vous trouverez de nombreux autres exemples de règles d'alerte sur le site Awesome Prometheus Alerts.
Configuration d'Alert Manager
Pour configurer Alert Manager, modifiez le fichier alert-manager.yml. Depuis votre tableau de bord Stackhero, sélectionnez votre service Prometheus, puis cliquez sur "Configuration d'Alert Manager".
Nous présentons ci-dessous les bases. Pour plus de détails, consultez la documentation officielle.
Configuration d'Alert Manager : les receivers
La première étape consiste à configurer les receivers. Chaque receiver correspond à un ensemble d'intégrations de notification (comme e-mail, Slack, etc.) identifié par un name unique.
Par exemple, vous pouvez créer un receiver nommé "critical_alert" pour les notifications déclenchées par des alertes de sévérité critique. Vous pouvez aussi créer un receiver comme "devops_team" pour adresser les alertes à votre équipe DevOps.
Attribuer simplement le nom "critical_alert" à un receiver ne suffit pas à envoyer les alertes. L'association entre les alertes et le receiver se fait dans la configuration des
routesdécrite ci-dessous.
Une fois un receiver défini, il faut configurer les intégrations de notification correspondantes. Cela peut inclure des e-mails, des notifications Slack/Mattermost, PagerDuty, Opsgenie, Webhook, et bien d'autres.
Voici un exemple de receiver nommé "critical_alert" qui envoie un e-mail à deux utilisateurs et un message Slack sur le canal #alerts :
receivers:
- name: "critical_alert"
# Envoi des alertes critiques par e-mail
email_configs:
- send_resolved: true
to: "[email protected]"
# Envoi des alertes critiques sur Slack ou Mattermost
slack_configs:
- send_resolved: true
api_url: "<your Slack or Mattermost API URL>"
channel: "#alerts"
title: "{{ range .Alerts }}{{ .Annotations.summary }}\n{{ end }}"
text: "{{ range .Alerts }}{{ .Annotations.description }}\n{{ end }}"
Vous pouvez définir plusieurs receivers pour gérer différents types d'alertes. Par exemple, un pour les alertes critiques, un autre pour les erreurs, et un autre pour d'autres types d'alertes.
Les instances Stackhero for Prometheus incluent un serveur e-mail dédié et privé qui vous permet d'envoyer un nombre illimité d'alertes par e-mail sans coût supplémentaire.
Configuration d'Alert Manager : les routes
Après avoir configuré vos receivers, il faut définir les routes. Les routes indiquent à Alert Manager comment traiter les alertes reçues de Prometheus et vers quel receiver les envoyer (généralement l'un de ceux que vous avez configurés).
Voici un exemple simple qui dirige les alertes de sévérité "critical" vers le receiver nommé "critical_alert" :
route:
routes:
- match:
severity: "critical"
receiver: "critical_alert"
Nous avons préconfiguré certaines routes dans le fichier
alert-manager.ymlfourni avec votre instance Stackhero for Prometheus. Pour commencer à recevoir des alertes, il suffit de mettre à jour les sectionsemail_configset/ouslack_configsavec vos informations de notification.