Kubernetes Event Exporter
Overview
Kubernetes Event Exporter, c'est l'outil qui pense que les événements Kubernetes (pod failures, deployments, scaling, etc.) méritent mieux que de disparaître dans l'oubli après quelques heures. Il capture tous les événements du cluster, les filtre intelligemment, et les exporte vers tes systèmes de logging (Loki, Elasticsearch, etc.) ou monitoring. Si tu veux une traçabilité complète de ce qui se passe dans ton cluster, c'est indispensable.
Event Exporter surveille l'API Kubernetes Events, applique des règles de filtrage configurables (par namespace, type, ressource), et route les événements vers multiples destinations simultanément. Support de nombreux backends : files, syslog, HTTP webhooks, Elasticsearch, Loki, Kafka.
Kubernetes Event Exporter se distingue par son filtrage granulaire (évite le spam d'événements non pertinents), son support multi-destination, et sa capacité à préserver l'historique des événements au-delà de la rétention Kubernetes par défaut.
Informations essentielles
| Propriété | Valeur |
|---|---|
| Site officiel | https://github.com/opsgenie/kubernetes-event-exporter |
| Repository | https://github.com/opsgenie/kubernetes-event-exporter |
| Licence | Apache 2.0 |
| Développeur | Opsgenie (Atlassian) |
| Langage | Go |
| Version K8s | 1.14+ |
Cas d'usage typiques
- Préservation historique des événements Kubernetes au-delà de 1h
- Alerting sur événements critiques (pod crashes, node failures)
- Audit et compliance avec traçabilité complète des actions cluster
- Debugging et troubleshooting avec historique des événements
- Intégration dans pipelines d'observabilité pour corrélation événements/métriques
- Monitoring de la santé cluster avec événements comme indicateurs
Intégrations et écosystème
- Destinations : Elasticsearch, Loki, Kafka, HTTP webhooks, syslog
- Filtrage : par namespace, type d'événement, objet Kubernetes, severity
- Monitoring : métriques Prometheus pour suivi export et santé
- Configuration : YAML déclaratif avec hot-reload des règles
- RBAC : permissions Kubernetes fines pour accès événements
- Multi-cluster : déploiement sur plusieurs clusters avec routage centralisé
Avantages
- ✅ Rétention longue : préserve événements au-delà de la limite K8s (1h par défaut)
- ✅ Filtrage intelligent : évite spam avec règles configurables par contexte
- ✅ Multi-destination : export simultané vers plusieurs systèmes (Loki + Slack)
- ✅ Performance : impact minimal sur cluster, traitement asynchrone
- ✅ Configuration flexible : YAML déclaratif, hot-reload, templating
- ✅ Production ready : utilisé par Atlassian et autres en production
Inconvénients et limitations
- ❌ Dépendance réseau : export échoue si destinations indisponibles (pas de queue persistante)
- ❌ Configuration complexe : règles de filtrage peuvent devenir complexes
- ❌ Pas de déduplication : peut générer events dupliqués si mal configuré
- ❌ Sécurité : nécessite permissions larges sur cluster (lecture tous événements)
- ❌ Debugging : troubleshooting des règles de filtrage peut être délicat
Alternatives
- Falco : pour événements security-focused avec detection rules
- Fluent Bit/Fluentd : pour logs généraux avec plugin Kubernetes events
- Promtail : collecteur Loki avec plugin events Kubernetes
- Custom scripts : kubectl get events avec cron (solution artisanale)
- Cloud native : AWS CloudWatch Container Insights, GCP Operations
Ressources
- GitHub : https://github.com/opsgenie/kubernetes-event-exporter
- Documentation : README GitHub avec exemples configuration
- Helm Chart : charts communautaires disponibles