Avoir des logs centralisés dans ELK est une première étape. Les transformer en alertes actionnables en est une autre. Voici comment utiliser Elasticsearch Watchers pour créer des alertes sur vos données.
Watcher : la structure de base
Un Watcher se compose de quatre parties : Trigger (quand vérifier), Input (quoi vérifier), Condition (seuil d’alerte), Actions (quoi faire).
PUT /_watcher/watch/high-error-rate
{
"trigger": {
"schedule": { "interval": "5m" }
},
"input": {
"search": {
"request": {
"indices": ["logs-*"],
"body": {
"query": {
"bool": {
"filter": [
{ "range": { "@timestamp": { "gte": "now-5m" } } },
{ "term": { "level": "ERROR" } }
]
}
}
}
}
}
},
"condition": {
"compare": { "ctx.payload.hits.total.value": { "gt": 50 } }
},
"actions": {
"notify-slack": {
"webhook": {
"method": "POST",
"url": "https://hooks.slack.com/services/...",
"body": "{\"text\": \"🚨 {{ctx.payload.hits.total.value}} erreurs en 5 minutes\"}"
}
}
}
}
Kibana Alerting : l’interface graphique
Pour les équipes moins à l’aise avec l’API JSON, Kibana Alerting propose une interface graphique pour créer des règles d’alerte : Management → Stack Management → Alerts and Insights → Rules.
Les types d’alertes disponibles : seuil sur index, anomalie ML, score d’alerte de sécurité (SIEM), uptime monitor.
Intégration PagerDuty pour l’astreinte
"actions": {
"page-on-call": {
"pagerduty": {
"account": "my-pagerduty",
"description": "Taux d'erreur critique — {{ctx.payload.hits.total.value}} erreurs",
"event_type": "trigger",
"severity": "critical"
}
}
}
Throttle : éviter le spam d’alertes
"throttle_period": "30m"
Sans throttle, un watcher qui se déclenche toutes les 5 minutes envoie des dizaines de notifications. throttle_period garantit qu’une alerte ne se déclenche pas plus d’une fois par période définie.
Notre formation ELK couvre l’alerting et la supervision avec des cas pratiques sur des stacks réelles.