Au fil de notre dossier de mise en oeuvre de vSphere Replication, nous avons mis en place des réplications de machine virtuelles, et nous avons vu comment surveiller ces réplications.
Cette surveillance manuelle est intéressante lorsqu’on veut suivre une action en particulier, mais ne convient pas une fois en production. Nous allons donc ici ajouter une alarme pour nous informer par email lorsque le le RPO d’une réplication n’est pas respecté.
Facile ? A voir !
Configuration initiale
Commençons par créer une nouvelle alarme dans notre client vSphere. Depuis la vue Hôtes et clusters, sélectionnez votre vCenter en haut à gauche, puis allez dans l’onglet Gérer, Définition des alarmes. Cliquez sur le petit “+” vert pour ajouter une alarme.Nous voilà dans l’assistant de création d’alarmes. Donnez un nom à l’alarme. Nous allons choisir de surveiller les machines virtuelles, et en particulier un évènement spécifique.L’évènement que nous souhaitons surveiller s’appelle RPO violated. Allons le chercher dans le menu déroulant.Puis ajoutons un second évènement RPO restored pour effacer l’alarme si tout rentre dans l’ordre. Attention à changer le statut en normale !On passe ensuite aux actions à effectuer. Ajoutons-en une pour déclencher l’envoi d’e-mail. On n’envoie l’email qu’en cas d’alerte. Vous pourriez choisir d’en renvoyer un pour le passage à la normale également.Et voilà ! Vous pouvez tester l’alarme en réduisant temporairement le RPO d’une VM à 15 minutes et en y copiant un gros volume de données, de façon à rendre impossible une synchronisation réussie.
Oui, mais…
Fini ? Pas vraiment. En fait, une fois l’alarme en production, on s’aperçoit que l’on reçoit régulièrement des alertes pour des RPO dépassés d’une minute. Cela est dû au fait que le mécanisme de réplication attend le dernier moment pour lancer la synchronisation, et du coup le RPO est parfois dépassé de quelques minutes. Beaucoup de bruit pour rien !
Comment régler ce problème ? Il faudrait pouvoir dire quelque chose comme “envoie-moi l’alerte uniquement si le RPO est dépassé de plus de 10 minutes”. Malheureusement, cela est impossible via le web client, et nous passerons donc par le bon vieux client lourd pour configurer (approximativement) cette condition.
Une fois connecté, depuis la vue Hôtes et clusters, sélectionnez le vCenter, puis Alarmes et Définitions. Double-cliquez sur votre alarme, puis sur Déclencheurs. Notre alarme de RPO correspond à l’évènement com.vmware.vcHms.rpoViolatedEvent. Cliquez sur Avancé dans la colonne Conditions pour définir notre temporisation.Ajoutez ici (il faut le saisir manuellement) currentRpoViolation, puis n’est pas égal à, puis 1.Le compteur currentRpoViolation stocke le nombre de minutes pendant lesquelles le RPO n’a pas été respecté. En mettant “n’est pas égal à 1”, vous éviterez de déclencher immédiatement l’alarme. Non, ne cherchez pas, il n’y a pas d’opérateur “supérieur à” ! Si vous souhaitez éviter d’autres alarmes dès la deuxième minute, il faut en principe configurer également “n’est pas égal à 2″… et ainsi de suite. Ah oui, limité, c’est limité !
Cependant, dans la pratique cela marche assez bien et d’après mes tests, l’alarme ne se déclenche qu’au bout d’une dizaine de minutes ; hormis son activation à la première minute, le compteur ne doit pas être vérifié chaque minute, ce qui nous facilite un peu la tâche.
Voilà, pour une simple alarme, nous sommes donc arrivés au bout des capacités du client web, puis au bout de la personnalisation possible dans le client lourd. Le résultat est satisfaisant, mais pas parfait.
Si vous avez besoin d’étendre la souplesse du dépassement du RPO au-delà d’une dizaine de minutes, la meilleure approche est probablement d’abandonner les alarmes intégrées pour se tourner vers un script powercli qui va régulièrement vérifier l’état de la valeur currentRpoViolation et déclencher l’alarme à partir d’un certain seuil. Pour cela, vous pourrez trouver des éléments ici (j’y ai trouvé l’astuce pour ne pas déclencher immédiatement l’alarme) ou ici (une référence !).