<!-- .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" -->

---
<!-- .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" -->

---
# 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" -->

---
# 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" -->

---
# 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" -->

---
# 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" -->

---
# 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" -->

---
<!-- .slide: style="text-align: center;"> -->
# Questions<!-- .element: style="font-size: 1em" -->

---
<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}}