Blackbox-Exporter : ajout d'une sonde#
Contexte#
Il s'agit d'ajouter une sonde Blackbox-Exporter pour un service.
CAASCHR#
| Champ | Description |
|---|---|
| Titre | [STG] Blackbox-Exporter : Ajout d'une sonde |
| Zones | Toutes les zones cloud + la zone infra |
| Durée | En général 1h |
Dans la description, bien revoir ces points :
- les objectifs
- la procédure de vérification
Modifier les FIXME.
Description#
h1. Zones
<Indiquer les zones ici>
h1. Préparatifs
{code}
INFRA_ZONE=infra-stg
OCB_ZONES=(ocb-test05 ocb-test06)
{code}
h1. Changements
* ajout d'un servicemonitor pour RocketChat
* ajout de l'alerte RocketChatHTTPDown # A faire seulement si on n'utilise pas l'alerte gérenique HTTPDown de sevérité critical
* ajout de la target RocketChat pour l'alerte BlackboxMetricMissing
h1. Déploiement
h2. Pose de silences
for zone in ${CLOUD_ZONES[@]}; do amtool-caascad --alertmanager.url ${zone}/cloud-caascad silence add cc_client=${zone} alertname=BlackboxMetricsMissing instance=FIXME --author "Caascad" --duration 10m --comment "CAASCHR FIXME : deploy new probe" done
h2. Envs-ng
Mettre un commentaire *trackbone apply* dans la MR envs-ng.
h1. Vérification
h2. CI
Vérifier dans la MR envs-ng que la CI a déployé comme souhaité.
h2. ServiceMonitor
{code}
kswitch ${INFRA_ZONE}
echo "=== ${INFRA_ZONE} ==="
echo "=== serviceMonitor RocketChat ==="
kubectl get -n monitoring servicemonitor | grep blackbox-exporter-rocketchat
{code}
*Résultat attendu*: 1 ligne.
{code}
for zone in ${CLOUD_ZONES[@]}; do
kswitch ${zone}
echo "=== $zone ==="
echo "=== serviceMonitor RocketChat ==="
kubectl get -n monitoring servicemonitor | grep blackbox-exporter-rocketchat
done
{code}
*Résultat attendu*: 1 ligne pour chaque zone.
h2. PrometheusRule BlackboxMetricMissing
{code}
kswitch ${INFRA_ZONE}
echo "=== ${INFRA_ZONE} ==="
echo "=== Alert BlackboxMetricMissing for RocketChat ==="
kubectl -n prometheusrules get prometheusrules -o yaml | grep -i 'instance="https://chat'
{code}
*Résultat attendu*: 1 ligne
{code}
for zone in ${CLOUD_ZONES[@]}; do
kswitch ${zone}
echo "=== $zone ==="
echo "=== Alert BlackboxMetricMissing for RocketChat ==="
kubectl -n prometheusrules get prometheusrules -o yaml | grep -i 'instance="https://chat'
done
{code}
*Résultat attendu*: 1 ligne pour chaque zone.
h2. PrometheusRule RocketChatHTTPDown # A faire seulement si on n'utilise pas l'alerte gérenique HTTPDown de sevérité critical
{code}
kswitch ${INFRA_ZONE}
echo "=== ${INFRA_ZONE} ==="
echo "=== Alert RocketChatHTTPDown for RocketChat ==="
kubectl -n prometheusrules get prometheusrules -o yaml | grep RocketChatHTTPDown
{code}
*Résultat attendu*: 1 ligne
{code}
for zone in ${CLOUD_ZONES[@]}; do
kswitch ${zone}
echo "=== $zone ==="
echo "=== Alert RocketChatHTTPDown for RocketChat ==="
kubectl -n prometheusrules get prometheusrules -o yaml | grep RocketChatHTTPDown
done
{code}
*Résultat attendu*: 1 ligne pour chaque zone.
h1. Fin de MR
Si tout s'est bien passé, *merger la MR envs-ng*.