1 votes

Nagios/Icinga : Ne pas afficher CRITICAL pour les partitions DRBD sur le nœud en veille

J'ai mis en place un cluster ha-pacemaker/corosync en configuration de basculement avec deux nœuds : productif et d'attente. Il y a trois partitions DRBD. Tout fonctionne bien jusqu'à présent.

J'utilise Nagios NRPE sur les deux nœuds pour surveiller le serveur avec icinga2 comme outil de rapport et de visualisation. Maintenant, comme les partitions DRBD sur le nœud d'attente ne sont pas montées tant qu'il n'y a pas de basculement, j'obtiens toujours des avertissements critiques pour celles-ci :

icnga2 monitoring output

C'est donc une fausse alerte. J'ai déjà rencontré DISABLE_SVC_CHECK et j'ai essayé de l'implémenter, voici un exemple :

echo "[`date +%s`] DISABLE_SVC_CHECK;$host_name;$service_name" >> "/var/run/icinga2/cmd/icinga2.cmd"

N'y a-t-il pas un moyen simple/meilleure pratique pour désactiver cette vérification pour DRBD sur le nœud d'attente dans Nagios ou Icinga2 ? Bien sûr, je veux que cette vérification entre en vigueur pour le nœud en attente après un basculement.

2voto

Sarvésh Biradar Points 41

Je conseillerais de ne pas surveiller cela directement sur l'hôte. Dans notre environnement, nous utilisons Pacemaker pour automatiser les basculements en cas de défaillance. L'une des choses que Pacemaker fait pour nous est de déplacer une adresse IP lors d'un basculement. Cela permet à nos clients de pointer en permanence vers le primaire et aide à rendre les basculements transparents du côté du client.

Pour Nagios, nous surveillons une multitude de services sur chaque hôte pour garder un œil sur les choses, mais nous avons également un "hôte" supplémentaire configuré pour l'adresse IP virtuelle/flottante afin de surveiller les périphériques et services DRBD qui ne fonctionnent que sur le primaire.

2voto

Robert Dedieu Points 51

Dans mon environnement, nous gérons plusieurs services fonctionnant sur des dispositifs drbd (traditionnels, conteneurs lxc, conteneurs docker, bases de données, ...). Nous utilisons le stack opensvc (https://www.opensvc.com) qui est gratuit et open source, et fournit des fonctionnalités de basculement automatique. Ci-dessous se trouve un service test avec drbd, et une application redis (désactivée dans l'exemple)

Tout d'abord au niveau du cluster, nous pouvons voir dans la sortie svcmon que :

  • Cluster opensvc de 2 nœuds (node-1-1 et node-1-2)
  • le service servdrbd est actif (O majuscule vert) sur node-1-1, et en attente (o minuscule vert) sur node-1-2
  • node-1-1 est le nœud maître préféré pour ce service (accent circonflexe proche de O majuscule)

Au niveau du service svcmgr -s servdrbd print status, nous pouvons voir :

  • sur le nœud primaire (à gauche) : nous pouvons voir que toutes les ressources sont actives (ou en attente active ; signifiant qu'elles doivent rester actives lorsque le service s'exécute sur l'autre nœud). Et en ce qui concerne le dispositif drbd, il est indiqué comme Primaire
  • sur le nœud secondaire (à droite) : nous pouvons voir que seules les ressources en attente sont actives, et le dispositif drbd est dans l'état Secondaire.

Pour simuler un problème, j'ai déconnecté le dispositif drbd sur le nœud secondaire, ce qui produit les avertissements suivants

Il est important de noter que le statut de disponibilité du service est toujours actif, mais le statut global du service est dégradé en avertissement, signifiant "ok, la production fonctionne toujours bien, mais quelque chose ne va pas, jetez un coup d'œil"

Dès que vous savez que toutes les commandes opensvc peuvent être utilisées avec le sélecteur de sortie json (nodemgr daemon status --format json ou svcmgr -s servdrbd print status --format json), il est facile de les intégrer dans un script NRPE, et simplement surveiller les états des services. Et comme vous l'avez vu, tout problème sur le primaire ou le secondaire est détecté.

Le nodemgr daemon status est préférable car c'est la même sortie sur tous les nœuds du cluster, et toutes les informations des services opensvc sont affichées en une seule commande.

Si vous êtes intéressé par le fichier de configuration du service pour cette configuration, je l'ai posté sur pastebin ici

1voto

Keith Points 4607

Vous pourriez utiliser check_multi pour exécuter à la fois les vérifications DRBD en tant que seule vérification Nagios, et le configurer pour renvoyer OK si exactement un des sous-vérifications est OK.

Cela devient compliqué quand il faut décider à quel hôte attacher la vérification, cependant. Vous pourriez l'attacher à un hôte en utilisant la VIP, ou attacher la vérification aux deux hôtes, et utiliser NRPE/ssh sur chacun pour vérifier l'autre, etc.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X