KB 2725: Le serveur Olfeo émet des alertes de bascules Keepalived (VRRP)

Publié le 16 novembre 2023Modifié le 21 juin 2024

Le serveur Olfeo émet des alertes de bascules keepalived.

Symptôme

Le serveur Olfeo émet des alertes de bascules keepalived :

Contexte

Lors de la création d’un cluster dans Paramétrage > Haute disponibilité > Clusters, il faut déclarer une adresse IP virtuelle pour chaque membre. Lorsqu’un nœud du cluster Olfeo est indisponible, son adresse IP virtuelle est alors basculée sur son nœud de backup. Le serveur envoie alors un mail pour alerter l’administrateur.

Le service qui gère la haute disponibilité est Keepalived (utilise le protocole VRRP). L’adresse IP virtuelle d’un membre du cluster est basculée si :

  • le  proxy du serveur ne répond plus
  • le service Keepalived du serveur ne répond plus.

Nous vous invitons à utiliser le script /olfeo-status.sh pour afficher l’état des services :

Étapes

Étape 1 : dysfonctionnement du proxy

Il faut analyser le fichier /opt/olfeo5/data/proxy/log/cache.log pour savoir s’il y a eu un arrêt/redémarrage du proxy. Les messages de type FATAL sont à surveiller car ils symbolisent un arrêt du proxy. Lorsque le cluster est configuré, le serveur émet une alerte de bascule keepalived dans Paramétrage > Supervision lorsque le proxy s’arrête ou redémarre.

Voir aussi : documentation Squid concernant les logs.

Étape 2 : dysfonctionnement lié à Keepalived

Si le problème ne provient pas du proxy, cela signifie que c’est le processus Keepalived lui même qui rencontre un problème. Il faut identifier l’origine du dysfonctionnement à l’aide d’une capture de trames.

tcpdump -ni any -s0 -C 50 -W 5 arp or vrrp -w vrrp_vrrp.pcap

La commande ci-dessus doit être exécutée sur le maître et l’esclave. C’est un tcpdump circulaire qui génère au maximum 5 fichiers de 50 Mo, elle capture les trames VRRP et ARP. La commande doit être lancée avant la bascule.

En cas de bascule,  les messages ci-dessous apparaissent dans /var/log/syslog :

…  Keepalived_vrrp: VRRP_Instance(cluster_Olfeo.30587859) forcing a new MASTER election
…  Keepalived_vrrp: VRRP_Instance(cluster_Olfeo.30587859) Transition to MASTER STATE
…  Keepalived_vrrp: VRRP_Instance(cluster_Olfeo.30587859) Entering MASTER STATE

Exemple de trames du serveur maître :

L’image ci-dessus indique que pendant 18 secondes, le serveur maître ne recevait plus les annonces VRRP de l’esclave.

Le serveur maître décide alors d’envoyer une requête gratuitous arp pour annoncer qu’il détient l’adresse IP virtuelle de l’esclave (10.0.255.14) et l’Olfeo déclenche l’envoi d’une alerte mail (ex : celle de 14:00:20 (UTC)) si la case Envoyer les alertes email est cochée dans Paramétrage > Supervision :

Filtre wireshark = arp.isgratuitous

Il faut aussi analyser le résultat de la commande tcpdump de l’esclave pour savoir si ce dernier émettait, à intervalle régulier, des annonces VRRP (vérifiez s’il manque par exemple les 18 secondes). Si c’est le cas, la bascule pourrait avoir comme origine un problème réseau (serveur injoignable).

N’hésitez pas à ouvrir un incident auprès du support si Keepalived n’émet pas d’annonces VRRP.

Documentation wireshark : https://wiki.wireshark.org/Gratuitous_ARP.

Résolution

Une fois la situation rétablie, les alertes devraient disparaître.