<!-- .slide: class="center" --> # Alertmanager en mode cluster<!-- .element: style="font-size: 3em" --> --- # Objectif <!-- .element: style="font-size: 1em" --> Avoir Alermanager en HA --- <!-- .slide: class="center" --> # Fonctionnement Alertmanager en mode cluster <!-- .element: style="font-size: 1em" --> - Les alertes ne se propagent pas d'un membre à l'autre du cluster<!-- .element: style="font-size: smaller" --> - Les silences se propagent d'un membre à l'autre du cluster<!-- .element: style="font-size: smaller" --> - Les notifications sont envoyées en un seul exemplaire par un membre du cluster<!-- .element: style="font-size: smaller" --> - Les membres du cluster communiquent via le protocole Gossip en utilisant un port spécifique.<!-- .element: style="font-size: smaller" --> --- # Synthèse principe de fonctionnement <!-- .element: style="font-size: 1em" --> - Il faut envoyer les alertes à tous les membres du cluster -> liaison Prometheus vers Alertmanager doublée<!-- .element: style="font-size: smaller" --> - Il suffit de poser un silence sur un seul membre pour qu'il soit propagé -> Kthxbye toujours connecté au service alertmanager<!-- .element: style="font-size: smaller" --> - Karma toujours connecté au service alertmanager.<!-- .element: style="font-size: smaller" --> --- # Architecture <!-- .element: style="font-size: 1em" --> ![](/uploads/upload_f74e2288f241abfcbe61d5d68d070cb9.png) --- <!-- .slide: style="text-align: center;"> --> # Architecture: ports différents pour les différents namespaces<!-- .element: style="font-size: 1em" --> ## Contexte <!-- .element: style="font-size: smaller; color:#FF8D33" --> <span> On a plusieurs clusters Alertmanager dans un cluster K8s (monitoring, monitoring-client, monitoring-app). <!-- .element: style="font-size: smaller" --> </span> ## Problème <!-- .element: style="font-size: smaller; color:#FF8D33" --> <span> Dans certains cas les clusters Alertmanager peuvent former un seul gros cluster. </span> <!-- .element: style="font-size: smaller" --> ## Workaround <!-- .element: style="font-size: smaller ; color:#FF8D33" --> <span> Utilisation d'un port différent pour chaque cluster Alertmanager. </span> <!-- .element: style="font-size: smaller" --> <span style="color:red"> Note: Tentative de connexion sur les autres membres des clusters Alertmanager mais ces connexions échoueront. </span> <!-- .element: style="font-size: smaller" --> --- <!-- .slide: style="text-align: center;"> --> # Architecture: ports différents pour les différents namespaces<!-- .element: style="font-size: 1em" --> ![](/uploads/upload_1a29fcdc7ba9c94a3eddad40039aa177.png =x400) --- # Liste des alertes<!-- .element: style="font-size: 1em" --> Liste des alertes upstream spécifiques pour le mode cluster :<!-- .element: style="font-size: smaller" --> - <span>`AlertmanagerClusterDown`</span><!-- .element: style="font-size: smaller" --> - <span>`AlertmanagerClusterCrashlooping`</span><!-- .element: style="font-size: smaller" --> - <span>`AlertmanagerClusterFailedToSendAlerts`</span><!-- .element: style="font-size: smaller" --> - <span>`AlertmanagerConfigInconsistent`</span><!-- .element: style="font-size: smaller" --> Alerte upstream migrée dans nos rules custom :<!-- .element: style="font-size: smaller" --> - <span>`AlertmanagerMembersInconsistent`</span><!-- .element: style="font-size: smaller" --> --- # Alerte AlertmanagerClusterDown<!-- .element: style="font-size: 1em" --> - Description :<!-- .element: style="font-size: smaller" --> - Au moins la moitié des membres du cluster est down<!-- .element: style="font-size: smaller" --> - Severity : critical<!-- .element: style="font-size: smaller" --> - Pannes :<!-- .element: style="font-size: smaller" --> - Problème sur le noeud où il y'a le membre Alertmanager<!-- .element: style="font-size: smaller" --> - Problème avec les membres Alertmanager<!-- .element: style="font-size: smaller" --> - Manifestion des pannes :<!-- .element: style="font-size: smaller" --> - describe node<!-- .element: style="font-size: smaller" --> - describe pod<!-- .element: style="font-size: smaller" --> - logs d'erreur dans Alertmanager<!-- .element: style="font-size: smaller" --> ![](/uploads/upload_35e3841dfa8e26e314b6608861a825bf.png) --- # Alerte AlertmanagerClusterCrashlooping<!-- .element: style="font-size: 1em" --> - Description :<!-- .element: style="font-size: smaller" --> - Au moins la moitié des membres du cluster est en crashloopbackoff<!-- .element: style="font-size: smaller" --> - Severity : critical<!-- .element: style="font-size: smaller" --> - Pannes :<!-- .element: style="font-size: smaller" --> - Problème avec les membres Alertmanager<!-- .element: style="font-size: smaller" --> - Manifestion des pannes :<!-- .element: style="font-size: smaller" --> - describe pod<!-- .element: style="font-size: smaller" --> - logs d'erreur dans Alertmanager<!-- .element: style="font-size: smaller" --> ![](/uploads/upload_e117ea718a048174316b8e4decd20933.png) --- # Alerte AlertmanagerClusterFailedToSendAlerts<!-- .element: style="font-size: 1em" --> - Description :<!-- .element: style="font-size: smaller" --> - Tous les membres du cluster Alertmanager échouent à envoyer des notifications à un type de receiver<!-- .element: style="font-size: smaller" --> - Severity : critical<!-- .element: style="font-size: smaller" --> - Pannes :<!-- .element: style="font-size: smaller" --> - problème sur le receiver<!-- .element: style="font-size: smaller" --> - problème de configuration Alertmanager<!-- .element: style="font-size: smaller" --> - Manifestion des pannes :<!-- .element: style="font-size: smaller" --> - logs d'erreur dans Alertmanager<!-- .element: style="font-size: smaller" --> - configuration Alertmanager<!-- .element: style="font-size: smaller" --> ![](/uploads/upload_f97cc95fa942babbd8d5b664694a511a.png) --- # Alerte AlertmanagerConfigInconsistent<!-- .element: style="font-size: 1em" --> - Description :<!-- .element: style="font-size: smaller" --> - Des membres du cluster Alertmanager n'ont pas la même configuration<!-- .element: style="font-size: smaller" --> - Severity : critical<!-- .element: style="font-size: smaller" --> - Pannes :<!-- .element: style="font-size: smaller" --> - Problème de rechargement de configuration pour un des membres Alertmanager<!-- .element: style="font-size: smaller" --> - Manifestion des pannes :<!-- .element: style="font-size: smaller" --> - configuration différente pour les membres<!-- .element: style="font-size: smaller" --> ![](/uploads/upload_eb9848fb724749f7c548f32c93cc443a.png) --- # Alerte AlertmanagerMembersInconsistent<!-- .element: style="font-size: 1em" --> - Description :<!-- .element: style="font-size: smaller" --> - Au moins un des membres du cluster Alertmanager ne peut pas être trouvé<!-- .element: style="font-size: smaller" --> - Trop de membres sont dans le cluster Alertmanager<!-- .element: style="font-size: smaller" --> - Severity : critical<!-- .element: style="font-size: smaller" --> - Pannes :<!-- .element: style="font-size: smaller" --> - Inconsistences sur les adresses IPs dans les endpoints Alermanager<!-- .element: style="font-size: smaller" --> - Problème de cache pour les IPs<!-- .element: style="font-size: smaller" --> - Manifestion des pannes :<!-- .element: style="font-size: smaller" --> - describe endpoints<!-- .element: style="font-size: smaller" --> - logs de debug dans Alertmanager<!-- .element: style="font-size: smaller" --> --- # Alerte AlertmanagerMembersInconsistent<!-- .element: style="font-size: 1em" --> ![](/uploads/upload_e76590f34599a8371dfaece3959e90c6.png) --- <!-- .slide: style="text-align: center;"> --> # Questions<!-- .element: style="font-size: 1em" --> ![](/uploads/upload_9ae0f5cacc34445911443cfc241508a1.png =x350) --- <style type="text/css"> p { font-size: smaller; } .reveal ul ul li { font-size: smaller; } .reveal section { text-align: left; } .reveal h3 { color: orange; text-align: center; border-bottom: 1px solid orange; } .reveal h4 { color: orange; } .reveal h5 { color: orange; } .reveal h1 { color: orange; text-align: center; border-bottom: 1px solid orange; margin-bottom: 0.4em; font-size: 140%; } .reveal code { color: aquamarine; font-size: smaller; } span.date { float: left; font-size: 50%; } span.ticket { float: right; font-size: 50%; } </style>
{"type":"slide","slideOptions":{"transition":"slide","center":true}}