Rechercher

28.7. Écriture d'un agent d'alerte pour les clusters

download PDF

Il existe trois types d'alertes de grappes Pacemaker : les alertes de nœuds, les alertes de clôtures et les alertes de ressources. Les variables d'environnement transmises aux agents d'alerte peuvent varier en fonction du type d'alerte. Le tableau suivant décrit les variables d'environnement transmises aux agents d'alerte et précise quand la variable d'environnement est associée à un type d'alerte spécifique.

Tableau 28.2. Variables d'environnement transmises aux agents d'alerte
Variable d'environnementDescription

CRM_alert_kind

Le type d'alerte (nœud, clôture ou ressource)

CRM_alert_version

La version de Pacemaker qui envoie l'alerte

CRM_alert_recipient

Le destinataire configuré

CRM_alert_node_sequence

Un numéro de séquence augmente chaque fois qu'une alerte est émise sur le nœud local, ce qui peut être utilisé pour référencer l'ordre dans lequel les alertes ont été émises par Pacemaker. Une alerte pour un événement qui s'est produit plus tard dans le temps a, de manière fiable, un numéro de séquence plus élevé que les alertes pour des événements antérieurs. Sachez que ce numéro n'a aucune signification à l'échelle de la grappe.

CRM_alert_timestamp

Un horodatage créé avant l'exécution de l'agent, dans le format spécifié par la méta-option timestamp-format. Cela permet à l'agent de disposer d'une date fiable et précise de l'événement, indépendamment du moment où l'agent lui-même a été invoqué (ce qui pourrait être retardé en raison de la charge du système ou d'autres circonstances).

CRM_alert_node

Nom du nœud affecté

CRM_alert_desc

Détail de l'événement. Pour les alertes de nœuds, il s'agit de l'état actuel du nœud (membre ou perdu). Pour les alertes de clôture, il s'agit d'un résumé de l'opération de clôture demandée, y compris l'origine, la cible et le code d'erreur de l'opération de clôture, le cas échéant. Pour les alertes relatives aux ressources, il s'agit d'une chaîne lisible équivalente à CRM_alert_status.

CRM_alert_nodeid

ID du nœud dont l'état a changé (fourni avec les alertes de nœuds uniquement)

CRM_alert_task

L'opération de clôture ou de ressource demandée (fournie uniquement avec les alertes de clôture et de ressource)

CRM_alert_rc

Le code de retour numérique de l'opération de clôture ou de ressource (fourni uniquement avec les alertes de clôture et de ressource)

CRM_alert_rsc

Le nom de la ressource affectée (alertes sur les ressources uniquement)

CRM_alert_interval

Intervalle de l'opération sur la ressource (alertes sur les ressources uniquement)

CRM_alert_target_rc

Code de retour numérique attendu de l'opération (alertes sur les ressources uniquement)

CRM_alert_status

Code numérique utilisé par Pacemaker pour représenter le résultat de l'opération (alertes sur les ressources uniquement)

Lors de la rédaction d'un agent d'alerte, vous devez tenir compte des éléments suivants.

  • Les agents d'alerte peuvent être appelés sans destinataire (si aucun n'est configuré) ; l'agent doit donc être capable de gérer cette situation, même s'il ne fait que sortir dans ce cas. Les utilisateurs peuvent modifier la configuration par étapes et ajouter un destinataire ultérieurement.
  • Si plusieurs destinataires sont configurés pour une alerte, l'agent d'alerte sera appelé une fois par destinataire. Si un agent n'est pas en mesure de fonctionner simultanément, il doit être configuré avec un seul destinataire. L'agent est toutefois libre d'interpréter le destinataire comme une liste.
  • Lorsqu'un événement se produit dans un cluster, toutes les alertes sont déclenchées en même temps en tant que processus distincts. En fonction du nombre d'alertes et de destinataires configurés et de ce qui est fait au sein des agents d'alerte, il peut se produire une augmentation significative de la charge. L'agent pourrait être écrit de manière à prendre cela en considération, par exemple en mettant en file d'attente les actions gourmandes en ressources dans une autre instance, au lieu de les exécuter directement.
  • Les agents d'alerte sont exécutés sous l'utilisateur hacluster, qui dispose d'un ensemble minimal d'autorisations. Si un agent a besoin de privilèges supplémentaires, il est recommandé de configurer sudo pour permettre à l'agent d'exécuter les commandes nécessaires en tant qu'autre utilisateur disposant des privilèges appropriés.
  • Prenez soin de valider et d'assainir les paramètres configurés par l'utilisateur, tels que CRM_alert_timestamp (dont le contenu est spécifié par le paramètre timestamp-format configuré par l'utilisateur), CRM_alert_recipient, et toutes les options d'alerte. Cela est nécessaire pour se prémunir contre les erreurs de configuration. En outre, si un utilisateur peut modifier la CIB sans disposer d'un accès de niveau hacluster aux nœuds du cluster, il s'agit également d'un problème de sécurité potentiel et vous devez éviter la possibilité d'une injection de code.
  • Si un cluster contient des ressources avec des opérations pour lesquelles le paramètre on-fail est défini sur fence, il y aura plusieurs notifications de clôture en cas d'échec, une pour chaque ressource pour laquelle ce paramètre est défini plus une notification supplémentaire. Les notifications seront envoyées à la fois par pacemaker-fenced et pacemaker-controld. Dans ce cas, Pacemaker n'effectue qu'une seule opération de clôture, quel que soit le nombre de notifications envoyées.
Note

L'interface des alertes est conçue pour être rétro-compatible avec l'interface des scripts externes utilisée par la ressource ocf:pacemaker:ClusterMon. Pour préserver cette compatibilité, les variables d'environnement transmises aux agents d'alerte sont disponibles avec les préfixes CRM_notify_ et CRM_alert_. Une rupture de compatibilité est due au fait que la ressource ClusterMon exécutait les scripts externes en tant qu'utilisateur root, alors que les agents d'alerte sont exécutés en tant qu'utilisateur hacluster.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.