Announcement

Collapse
No announcement yet.

Dépendance entre host et services

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dépendance entre host et services

    Bonjour,

    Je me trouve face à un problème qui semble simple, mais où j'ai bien du mal à trouver une solution correcte. Je m'explique. J'ai pas mal de sites distants, et certains on une connectivité réseau plutôt.. aléatoire on va dire.

    J'ai mis en place des notions de parents/enfants avec les routeurs des sites distants et les serveurs donc je ne reçoit que l'alerte comme quoi le routeur est tombé, pas les serveurs. Donc parfait du côté des hosts.

    Le problème vient des services : ils continuent à être monitoré et donc ils me crient dessus

    J'aimerai trouver un moyen simple et gérable sur un grand nombre de serveur, pour que si la machine est mise en unreachable, les check de services ne soient pas exécutés. Auriez vous une solution pour cela?

    Je ne trovue pas de moyen pour faire une dépendance entre un état de host et les services qui se trouvent dessus. Je pourrait très bien refaire le test de hostalive en tant que service mais c'est pas très joli comme méthode, et de plus il me faudrait faire une règle de dépendance entre tous les services du host et le check_host_alive en tant que service et ce pour tous mes serveurs,. Bref, ce n'est pas maintenable.

    Si quelqu'un a une solution plus simple, je suis preneur.

    Pour info je suis en Nagios 2 et Oreon 1.3.2.

    Merci,


    Nap
    Auteur de Shinken, outil de supervision compatible avec Nagios et orientée supervision distribuée hautement disponible et mulitplateforme.

  • #2
    Personne ne rencontre ce problème?

    Merci.
    Auteur de Shinken, outil de supervision compatible avec Nagios et orientée supervision distribuée hautement disponible et mulitplateforme.

    Comment


    • #3
      J'ai le même "problème". Quand un host est DOWN, j'ai toujours les services associés qui continuent à être checkés.

      Je regarde aussi comment résoudre le "problème"...

      Il doit y avoir une histoire de parent / enfant ou peut être de dépendance...
      Guigui

      > PAS DE SUPPORT VIA MP <

      "Ce n'est qu'en essayant continuellement que l'on finit par réussir. En d'autres termes, plus ça rate et plus on a de chances que ça marche !!" (Shadoks)

      Comment


      • #4
        J'ai le nez dans la doc Nagios.

        Y'a peut être une un début:
        http://nagios.manubulon.com/traducti...endencies.html

        Créer une dépendance de service sur un Hôte en liant le check_host_alive au service ?

        La définition d'une dépendance de service est définit:
        http://nagios.manubulon.com/traducti...vicedependency

        Ça peut peut être nous aiguiller...
        Guigui

        > PAS DE SUPPORT VIA MP <

        "Ce n'est qu'en essayant continuellement que l'on finit par réussir. En d'autres termes, plus ça rate et plus on a de chances que ça marche !!" (Shadoks)

        Comment


        • #5
          C'est ce que je pensais au départ, mais le problème c'est que le check_host_alive qu'on peut ajouter et celui dans la partie service, pas le check_host_alive qu'on a déjà défini au niveau du host. Donc on refait le boulot du check. En soit ce n'est pas si grave que ça.

          On peut donc rajouter un check_host_alive en tant que service, mais le hic c'est qu'il va falloir pour chaque service de chaque host créer une dépendance avec le check_host_alive du host. Donc Nmachines*Mnbcheckparhost= Beaucoup trop de dépendances à gérer à la main. Pour chaque nouveau service il faut penser à créer la dépendance, on perd l'intérêt des services appliqués sur des host groups par exemple car au lieu de faire un seul ajout, il faut en faire autant que tu as de serveurs. Ca marche, mais ce n'est pas maintenable à mon goût. On va forcément oublier des services à un moment ou un autre, et on va passer les 3/4 de notre temps dans la création de ces dépendances.

          Je demande sur la mailing list Nagios s'il y a une solution plus acceptable.

          Job in progress donc


          Nap
          Auteur de Shinken, outil de supervision compatible avec Nagios et orientée supervision distribuée hautement disponible et mulitplateforme.

          Comment


          • #6
            Effectivement le check_host_alive est définit sur le host.
            Donc pas bon... Désolé ops:

            A voir avec la mailling-list Nagios...
            Guigui

            > PAS DE SUPPORT VIA MP <

            "Ce n'est qu'en essayant continuellement que l'on finit par réussir. En d'autres termes, plus ça rate et plus on a de chances que ça marche !!" (Shadoks)

            Comment


            • #7
              Tu n'as pas a être désolé, je me suis planté de la même manière au début

              Dès que j'ai une solution, je la poste


              Nap
              Auteur de Shinken, outil de supervision compatible avec Nagios et orientée supervision distribuée hautement disponible et mulitplateforme.

              Comment


              • #8
                Je pensais avoir un début de solution... Tant pis !

                Je continue à chercher un peu... Mais on verra bien ce que te répondra la mailling list nagios...
                Guigui

                > PAS DE SUPPORT VIA MP <

                "Ce n'est qu'en essayant continuellement que l'on finit par réussir. En d'autres termes, plus ça rate et plus on a de chances que ça marche !!" (Shadoks)

                Comment


                • #9
                  Ta solution fonctionne très bien sur un petit nombre d'hosts et de service donc ca pourrait en intéresser certains.

                  J'ai pensé à une solution mais elle est bien lourde : parser à chaque lancement de service check le nagios.log pour voir si l'host est passé en UNREACHABLE, ca fait une surcouche pour chaque script de vérif, mais ca c'est pas la mort. Le truc c'est que ca fait une grosse charge pour pas grand chose au final (même si au bout d'un moment le fichier sera en cache disque ).

                  Bref, je cherche encore...
                  Auteur de Shinken, outil de supervision compatible avec Nagios et orientée supervision distribuée hautement disponible et mulitplateforme.

                  Comment


                  • #10
                    Il semble que si on enlève la notification Unknown sur les serveurs distants, on ne reçoit pas les notifications si un parent tombe. Le problème c'est que dans les logs Nagios on a toujours le problème et donc également sur l'interface d'Oreon.

                    J'utilise principalement l'interface et un petit plugin Firefox qui parse l'interface de Nagios pour me remonter les erreurs. Je ne pense pas que ce problème puisse se régler au niveau d'Oreon, c'est plus le fonctionnement interne de Nagios qui est en cause, car il check tout de même les services même si l'host est en Unreachable. Je vais voir avec les dev s'il y a un moyen de changer ce comportement, et au pire, passage par la case patch....

                    Job toujours in progress donc


                    Edit: je pense avoir trouvé l'endroit dans le code source de Nagios pour régler ce comportement. Je me monte un serveur de test pour voir ce que ca donne.
                    Last edited by naparuba; 27 September 2007, 11:30.
                    Auteur de Shinken, outil de supervision compatible avec Nagios et orientée supervision distribuée hautement disponible et mulitplateforme.

                    Comment


                    • #11
                      Bon, sur la liste on m'a confirmé que ce n'était pas prévu de base.

                      J'ai donc faire un petit patch pour Nagios 2.5:
                      Fichier /base/check.c, line 1115:

                      /* Ugly hack for service in a UNKNOWN state for UNREACHABLE host */
                      if(temp_host->current_state==HOST_UNREACHABLE){
                      temp_service->current_state = STATE_UNKNOWN;
                      temp_service->state_type = HARD_STATE;
                      }


                      C'est tout. En gros, si le host a été déclaré UNRECHABLE, les check passent en UNKNOWN quand ils sont testés et en non OK. Le point à finir c'est que si le service check est fait avant que le host soit passé en UNREACHABLE, on a l'erreur. Il faut donc ajouter une boucle pour faire ici le boulot qui est fait dans les check host, à savoir si le parent est down, on est unreachable. Je vais voir à rajouter cela.

                      Une autre solution serait de modifier l'interface d'Oreon pour qu'elle intercepte les erreurs sur les services de serveurs en UNREACHABLE. Y aurait-il un dev dans le coin pour nous dire ce qu'il en pense?

                      Merci,


                      Jean
                      Auteur de Shinken, outil de supervision compatible avec Nagios et orientée supervision distribuée hautement disponible et mulitplateforme.

                      Comment

                      Working...
                      X