Announcement

Collapse
No announcement yet.

Récupérer données dans un fichier texte

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

  • Récupérer données dans un fichier texte

    Bonjour !

    Voilà, j'aimerais récupérer les données d'un pc qui n'est pas dans le réseau. Apparement, Nagios n'est pas capable de le faire et je ne veux pas faire de VPN.

    J'ai donc pensé quelque chose comme ceci :

    Sur la machine cliente, un service écrit les informations que j'ai besoin de récupérer (exemple CPU, mémoire etc...) dans un fichier texte ou xml ou Base de données ou .... Le fichier (les données) est (sont) ensuite envoyé(s) par mail sur un serveur ftp en réseau avec le serveur Nagios ou par mail au serveur Nagios.

    Un plugin s'occupe ensuite de lire les données, et d'afficher les alertes d'après le fichier texte.

    Voici un schéma :



    Il y a t-il une solution plus simple (sans VPN) ? Mon "idée" est-elle réalisable ?

    Merci de m'aider !!

  • #2
    Comme service j'ai pensé à un truc comme NRPE pour éxécuter un plugin qui s'occuperais de récuperer les informations sur le CPU, la mémoire etc... et les écrierais dans un fichier texte et par la même occasion les enverraient par mail.

    Mais j'aimerais pouvoir faire mon propre service, juste pour excéuter un plugin et non pas ce service NRPE. Je vais donc commencer par faire le service.

    Comment


    • #3
      Quelqu'un pourrait me dire quels sont les variables "essentiels" dans un plugin pour que nagios reconnaisse les différents états : Warning, Ok, Critical etc... svp

      Quel variable renvoit le plugin pour que nagios/oreon change d'état ?

      Merci !

      --

      EDIT, ok c'est la valeur retournée par "exit"
      Last edited by seb974; 30 August 2007, 12:20.

      Comment


      • #4
        Je me suis inspiré de cette page

        C'est bien la sortie (exit) de ton script qui va donner l'état (OK, WARNING ou CRITICAL) à 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


        • #5
          J'ai créée 2 minis plugins pour lire dans un fichier texte (un en Bash et un en Perl). Quand je test la commande dans le terminal, ça fonctionne correctement.

          Voici mon fichier texte :

          Fichier config :
          Cpu CRITIQUE: Taux d.utilisation du CPU = 94,32 %:
          Mem OK: Taux d.utilisation de la memoire = 43,51 %:
          Voici mes plugins :

          Code:
          #! /bin/bash
           
          etat_cpu="$(awk -F ":" '{print $1}' config | grep Cpu)"
          details_cpu="$(awk -F ":" '{print $2}' config | grep CPU)"
           
          if [ "$etat_cpu" == "Cpu OK" ]; then
          echo "OK - $details_cpu";
          exit 0
          fi
           
          if [ "$etat_cpu" == "Cpu ATTENTION" ]; then
          echo "Attention - $details_cpu";
          exit 1
          fi
           
          if [ "$etat_cpu" ==  "Cpu CRITIQUE" ]; then
          echo "Critique - $details_cpu";
          exit 2
          fi
          Code:
          #!/usr/bin/perl
          use strict; use warnings;
          @ARGV = ('config');
          my ($etat_cpu, $details_cpu);
           
          while(<>) {
            last if ($etat_cpu, $details_cpu) = m/^Cpu (\w+): (.*)$/;
          }
           
          my %etat_exit = (OK => 0, ATTENTION => 1, CRITIQUE => 2);
          print "$etat_cpu - $details_cpu";
          exit $etat_exit{$etat_cpu};

          Voici ce que je vois dans le terminal avec le plugin PERL:

          CRITIQUE - Taux d.utilisation du CPU = 94,32 %

          Sous oreon je ne vois que le tiret entre les 2 variables avec le plugin PERL:

          -
          Pourquoi ça ne fonctionne pas ? :confused: :|

          Merci de m'aider.

          (Pour info :

          les droits sont bons sur les plugins, je peux exécuter avec l'utilisateur Nagios. J'ai mis le plugin et le fichier texte dans le même répertoire, à savoir : /usr/lib/nagios/plugins/
          Last edited by seb974; 31 August 2007, 12:40.

          Comment


          • #6
            Je ne sais pas du tout si ça t'aidera mais tu as testé en mettant des chemins absolus dans ton code plutôt que des chemins relatifs ?

            Comment


            • #7
              Ca fonctionne o_o

              Merci beaucoup, mais pourquoi ça fonctionnait pas avec les chemins relatifs ?

              Merci encore ! ^^

              Comment


              • #8
                Eh bien dis toi que les plugins n'étaient pas forcément exécutés depuis le répertoire /usr/lib/nagios/plugins/ .

                Comment

                Working...
                X