Aller au contenu

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
amtool-caascad --alertmanager.url ${INFRA_ZONE}/infra-caascad silence add cc_client=${INFRA_ZONE} alertname=BlackboxMetricsMissing instance=FIXME --author "Caascad" --duration 10m --comment "CAASCHR FIXME : deploy new probe"

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*.