Alertes
Le système d’alertes livre les alertes Prometheus dans des salons Matrix (et par e-mail pour les incidents). Un provisionnement unique du bot suffit : ensuite tout est déclaratif. Le fonctionnement d’ensemble est décrit dans Monitoring & Alertes.
Pré-requis
Section intitulée « Pré-requis »| Pré-requis | Pourquoi |
|---|---|
prometheus + monitoring sur le collecteur | porte Alertmanager et les règles |
Service matrix joignable | héberge le bot et les salons |
Secret d’enregistrement en sops (matrix-rss-password) | crée le compte bot |
| Clé admin sops présente | écrit les secrets du bot |
Installer le bot
Section intitulée « Installer le bot »Une seule commande, idempotente (rejouable sans risque) : elle crée le
compte bot, les salons, et écrit l’identité dans var/generated/matrix.nix.
-
Déclarer l’administrateur humain (partie locale) dans la configuration :
etc/config.yaml network:matrix:admin: "alice" -
Lancer le provisionnement :
Fenêtre de terminal just configure-alert-botLa commande, en s’appuyant sur la clé admin sops :
- crée le compte
@alertbot:domain.tld(flux nonce + HMAC sur le secret partagé) ; - crée ou résout les salons
#alert-warningset#alert-incidents, y fait entrer le bot et invite l’admin ; - écrit
bot+ les ID de salons dansvar/generated/matrix.nix; - stocke mot de passe, jeton d’accès et secret de webhook dans sops.
- crée le compte
-
Déployer le collecteur :
Fenêtre de terminal just generatejust apply <collecteur>L’alerting s’active tout seul dès que les salons existent (
var/generated/matrix.nixrempli). Pour le désactiver malgré tout :darkone.service.prometheus.alerting.enable = false;.
Secrets créés
Section intitulée « Secrets créés »Le provisionnement dépose trois secrets dans usr/secrets/secrets.yaml :
| Clé sops | Rôle |
|---|---|
alertmanager-matrix-password | mot de passe du compte bot (reconnexion) |
alertmanager-matrix-token | jeton d’accès du bot (envoi des messages) |
alertmanager-webhook-secret | authentifie Alertmanager auprès du pont Matrix |
Tester une alerte
Section intitulée « Tester une alerte »-
Sur un nœud supervisé, couper un service surveillé :
Fenêtre de terminal sudo systemctl stop <unité> -
Sous une minute, un message
ServiceDown(ouSystemdUnitFailed) apparaît dans#alert-warnings,#alert-incidentset un e-mail si le nœud est critique. Le lien de l’alerte pointe vershttps://prometheus.<zone>.domain.tld. -
Relancer le service : l’alerte se résout (notification de résolution).
Fenêtre de terminal sudo systemctl start <unité>
Silencer pendant un rebuild
Section intitulée « Silencer pendant un rebuild »Le flux de déploiement pose un drapeau de maintenance pour ne pas déclencher de
fausses alertes pendant un nixos-rebuild. Manuellement :
dnf-maintenance on # inhibe les alertes du nœuddnf-maintenance off # les réactiveSilencer une alerte connue
Section intitulée « Silencer une alerte connue »Certaines alertes sont exactes mais non actionnables : un disque de sauvegarde
volontairement rempli franchit DiskSpaceLow en permanence. silences les
empêche de notifier.
{ darkone.service.prometheus.alerting.silences = [ { alert = "DiskSpaceLow"; host = "srv-backup"; matchers.mountpoint = "/mnt/backup"; reason = '' Disque de sauvegarde volontairement rempli, seuil structurellement franchi. Retirer si la rétention est réduite. ''; } ];}| Champ | Rôle |
|---|---|
alert | Nom de l’alerte à taire (alertname) |
host | Nom d’hôte à cibler (label host), null pour tout le parc |
matchers | Labels supplémentaires en égalité stricte, combinés en ET |
reason | Obligatoire : pourquoi l’alerte est acceptée |
Chaque entrée devient une route Alertmanager vers le receiver null. L’alerte
continue de se déclencher et reste visible dans Prometheus, Alertmanager et
Grafana, elle cesse simplement de notifier.
Vérifier le routage sur l’hôte Prometheus :
amtool config routes test --config.file=/etc/alertmanager.yml \ alertname=DiskSpaceLow host=srv-backup mountpoint=/mnt/backupPour taire un mode de défaillance systémique plutôt qu’un cas ponctuel, voir
ignoredUnits (dnf/config/alerts.nix), qui exclut une unité systemd de
SystemdUnitFailed sur tout le parc.
Dépannage
Section intitulée « Dépannage »| Symptôme | Cause probable | Remède |
|---|---|---|
| Aucun message dans un salon | bot absent du salon ou jeton expiré | rejouer just configure-alert-bot |
| Création de salon en 403 | filtre anti-bots de Caddy | déjà géré (agent neutre) ; ne pas utiliser curl brut |
admin API not public | /_synapse/admin fermé | laisser le tunnel SSH automatique opérer (hôte Matrix joignable) |
| Lien d’alerte non résolu | DNS ou certificat du vhost prometheus absent | déployer la passerelle / le HCS pour le nouveau sous-domaine |
matrix.nix ignoré au déploiement | fichier non lisible par nix | le script fait un chmod 644 ; vérifier les permissions de var/generated/ |
| Pas de mail d’incident | relais Postfix local inactif | l’alerting l’active par défaut ; vérifier darkone.service.prometheus.alerting.email |