Kwatch un petit outil d'alerting pour Kubernetes
kwatch ↗ est un projet open source récent, qui permet de surveiller tous les événements dans votre cluster Kubernetes (K8s) comme les plantages de vos pods en cours d’exécution et à envoyer en temps réel des notifications sur vos canaux préférés (Slack, Discord, Teams, etc. ). Ça peut être utile dans le cas où vous n’avez pas mis en place Prometheus qui intègre un alertmanager, par exemple sur des clusters de recette.
Installation de Kwatch
Pour le moment je n’ai pas trouvé trace de chart Helm permettant d’installer kwatch. Ce serait un bon exemple pour notre billet sur le développement d’un chart Helm non ? Donc on va faire l’installation à la main.
Dans un premier temps récupérons la config de l’application :
Un petit tour pour voir quels sont les paramètres dont nous disposons :
On voit qu’il est possible de définir deux paramètres généraux :
maxRecentLogLines : nombre de lignes des logs qui sont intégrés dans les messages. Si ce paramètre n’est pas défini alors toutes les lignes de logs seront récupérées
namespaces : Liste des namespace à surveiller. Si ce paramètre n’est pas défini alors tous les namespaces seront surveillés.
Ensuite dans la partie alert
ne laissez que votre outil de communication
collaboratif de votre choix. Je prendrais ici teams.
Avant d’appliquer la config de kWatch il faut donc créer le WebHook sur Teams ↗.
Pour tester votre WebHook :
Voici la config que je vais utiliser pour envoyer les erreurs sur Teams (changer l’url avec celle de votre webhook) :
Allez on applique :
Maintenant installons l’application :
Test de kWatch
Nous allons faire un simple deployment
qui tombera en erreur car son
LivenessProbe
sera faux :
Vérifions que cela fonctionne :
Oui il restart !!!
Et quelques secondes plus tard ping !
Si vous voulez corriger l’erreur du LivenessProbe
, il faut corriger le path
en enlevant le 1. Ce qui donne :
Plutôt prometteur. Donc à surveiller. Je l’ai ajouté dans ma liste de project github à surveiller.