Announcement

Collapse
No announcement yet.

Perfparse : ma petite pierre

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

  • Perfparse : ma petite pierre

    Bonjour,
    J'ai eu beaucoup de mal à comprendre comment faire fonctionner nagios/oreon et perfparse. Voici donc le recit de mon aventure, en espérant que cela pourra aider d'autres personnes en galère. Je ne m'attarde pas sur les package nécessaires : ils répertoriés dans les differentes doc sur le Wiki. Le contexte : je suis parti de 0.

    - debian 3.1
    J'ai suivi l'installation sur le wiki : InstallDebianFR

    - nagios 2.5
    J'ai installé tous les prérequis inclus dans le package d'installation via apt-get.
    J'ai compilé nagios 2.5 et nagios_plugins tout seul sans l'install automatique. Pour l'installation de nagios, il faut suivre la doc de nagios en ajoutant les prérequis pour perfparse lors du ./configure (adaptez les paramètres à votre système si nécessaire)
    Code:
    ./configure --prefix=/usr/local/nagios --with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagcmd --enable-embedded-perl --with-perlcache --disable-statuswrl --with-default-perfdata
    - Oreon 1.3.1
    J'ai suivi l'installation sur le wiki SetupOreon13FR

    - Perfparse
    L'installation en elle-même ne pose pas de problème. Elle est très bien expliquée là : SetupPerfParseFR
    C'est la configuration qui est plus complexe.
    Ne pas oublier de créer la base de données et le schéma de celle-ci pour perfparse. Creer une base perfparse et passer le srcipt sql mysql_create.sql qui se trouve dans le répertoire script des sources de perfparse.

    Voici comment j'ai configuré nagios via oreon.

    Enregistrement des données dans un fichier
    La première étape consiste à écrire les données issue de nagios dans un fichier. Pour ne pas tout mélanger, j'ai choisi d'enregistrer les données dans deux fichiers /usr/local/nagios/var/perfparse-host-perfdata.dat et /usr/local/nagios/var/perfparse-service-perfdata.dat. Pour ce faire, il faut créer deux commandes. Dans l'onglet Configuration -> Nagios, menu "commande de check".
    Pour les hosts, créer une commande process-host-perfdata
    Code:
    /usr/bin/printf "%b" "$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEOUTPUT$\t$SERVICESTATE$\t$SERVICEPERFDATA$\n" >> /usr/local/nagios/var/perfparse-host-perfdata.dat
    Pour le services, créer une commande process-service-perfdata
    Code:
    /usr/bin/printf "%b" "$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEOUTPUT$\t$SERVICESTATE$\t$SERVICEPERFDATA$\n" >> /usr/local/nagios/var/perfparse-service-perfdata.dat
    Maintenant que les commandes sont disponibles, il faut les exécuter après chaque check. Dans Oreon, editer le fichier nagios.cfg
    Deja, commençons par activer la gestion des données de performance :
    Performance Data Processing Option : oui
    Host Performance Data Processing Command : sélectionner process-host-perfdata
    Service Performance Data Processing Command : sélectionner process-service-perfdata
    en image :


    Import des données dans perfparse
    Maintenant que nous avons les données dans des fichiers, il faut les importer dans la base de données perfparse. Pour ce faire, il faut créer comme-ci dessus la commande suivante :

    process-service-perfdata-file
    Code:
    $USER1$/perfparse-import.sh
    Puis dans le répertoire de /usr/local/nagios/libexec/ il faut creer un script perfparse-import.sh (attention au proprietaire et au droits d'execution) contenant ce code :
    Code:
    #!/bin/sh
    NAGIOS_DIR=/usr/local/nagios
    TMP_FILE=/tmp/temp-perfparse-data.dat
    mv $NAGIOS_DIR/var/perfparse-service-perfdata.dat $TMP_FILE
    cat $TMP_FILE | $NAGIOS_DIR/bin/perfparse-log2mysql -c $NAGIOS_DIR/etc/perfparse.cfg
    rm $TMP_FILE
    Maintenant, il faut executer ces commandes régulièrement pour importer les données. Dans Oreon, éditer le fichier nagios.cfg
    Host Performance Data File Processing Interval : 120
    Service Performance Data File Processing Interval : 120
    Service Performance Data File Processing Command : process-service-perfdata-file
    en image :


    les performances par Host ne semble pas gérées par perfparse, je n'ai donc pas mis de commande correspondante. Si toutefois des données par host sont exploitable par votre perfparse, rien ne vous empèche de faire la meme configuration ou de modifier perfparse-import.sh pour qu'il importe les données des host.

    Quelques notes pour finir :
    - Il existe plusieurs facçon de configurer perfparse. Celle-ci presente l'avantage de pas toucher au méchanisme interne de gestion des données de performances de Nagios. C'est pour cela que dans la config de Nagios, je n'ai pas touché aux options Host Performance Data File, Service Performance Data File, Host Performance Data File Template, Service Performance Data File Template. Une autre solution, suggérée dans le wiki SetupPerfParseFR, est de configurer Nagios à l'aide de ces options pour qu'il enregistre les données dans les fichiers de données au bon format. L'import des données dans la base perfparse est alors identique à la méthode que j'ai choisi. On trouve sur le forum ici et des solutions important directement les données dans la base perfparse. Je ne sais pas si à terme ces solutions ne risquent de produire une charge de travail importante. Je préfère l'idée de logger dans un fichier les informations puis de les importer régulièrement.

    - La lecture de la documentation de Nagios et de Perfparse est instructive.

    - Ce post n'est certainement pas exhaustif et contient surement des erreurs. N'hésitez pas à me faire par de vos remarque et je ferais les mises à jour nécessaires.

  • #2
    Je sens qu'on va avoir de l'aide pour remplir bientot un nouveau wiki, principalement en anglais ! y a des la doc qiu sort de partout. Si vous voulez nous aider et monter la toiture (d'oreon), contacter moi par mail

    Vous rejoindrez inconnuflo et daniel Sloan dans la list des redacteurs
    Julien Mathis
    Centreon Project Leader
    www.merethis.com |

    Comment


    • #3
      Originally posted by julio
      Vous rejoindrez inconnuflo et daniel Sloan dans la list des redacteurs
      help us help us :lol:
      Ubuntu 8.04
      Nagios 3.2 + nagios-plugins-1.4.14
      ndoutils-1.4b9
      Centreon 2.1.8
      centreon-syslog-frontend-1.2.1 + centreon-syslog-server-1.1

      Comment


      • #4
        Je veux bien vous filer un coup de main dans la mesure de mes disponibilités. Pour mon taff, il faut que je me constitue une documentation d'install d'une machine de supervision nagios/oreon. Dans mon post, j'ai essayé de retranscrire à chaud mes notes pour ne pas oublier quelque chose (ca ne veut pas dire qu'il ne manque rien). Si il peut servir à alimenter le wiki et que tout le monde ne profite, tant mieux!

        Comment


        • #5
          Après quelques jours en service, le constat d'utilisation est plutôt amère. Je ai mis dans la config de nagios la config par défaut : localhost avec les services current load, current user, ping et root partition. En environ 5 jours, la base perfparse fait près de 830 Mo. Dès 2-3 jours l'affichage des graphs dans Oreon etaient lents. Mais depuis ce weekend, l'import des données dans la base perfparse ne se fait même plus. J'ai le message suivant dans les logs lors de chaque import :
          [1164027344] Warning: Service performance data file processing command 'cat /usr/local/nagios/var/perfparse-service-perfdata.dat | /usr/local/nagios/bin/perfparse-log2mysql -c /usr/local/nagios/etc/perfparse.cfg' timed out after 5 seconds
          Bref, entre la taille des données et les ressources nécessaires pour mettre en oeuvre perfparse je ne suis pas sûr que ce plugin soit la solution adaptée pour les graphs.

          Comment


          • #6
            Perfparse est mal pensé d'apprès l'avis de quelqu'un qui maitrise son sujet apparement.

            Voici un perfparse tuné :

            http://cedrictemple.info/Supervision...rformances.php

            Par contre il ne sera probablement plus compatible Oreon.

            J'attend toujours le moteur de stockage en base de Julio :wink:

            cf : http://forum.oreon-project.org/viewt...ight=perfparse
            Intel(R) Xeon(TM) CPU 3.4GHz - MemTotal : 1034476 kB
            Centreon 2.4.1 - Nagios 3.2.1 - Nagios Plugins 1.4.15 - Manubulon Plugins tuné
            Fedora Core 5 - 2.6.20-1.2320

            Comment


            • #7
              ca arrive... ca marche pas mal pour le moment.

              je gere deja 2 options : on peut choisir de mettre les données dans une base RRD ou dans une base mysql service par service...

              la actuellement sur mes tests, ma base prend 1/3 de celle de perfparse. Donc je trouve ca pas mal. Je pense encoe pouvoir faire mieux. a voir.

              bientot dispo en beta.
              Julien Mathis
              Centreon Project Leader
              www.merethis.com |

              Comment


              • #8
                J'ai réussi à améliorer un peu les choses en faisant ces deux choses :
                - Ajoutant des index sur les colonnes de la table perfdata_service_bin: host_name et ctime. Cela semble améliorer la vitesse d'affichage.
                - Alongeant le timeout des commandes Performance Data Processor Command Timeout de 5 à 120 secondes. Cela permettra de laisser l'import se dérouler correctement.

                Il doit bien y avoir un moyen de purger les fichiers d'import de perfparse après traitement?
                [EDIT] : Après relecture de la doc perfparse, il est prévu de vider le fichier après import. Je vais tester ca et je ferais une mise à jour dans le post initial.

                Comment


                • #9
                  Voila, j'ai remplacé cette section
                  Originally posted by thoms
                  Import des données dans perfparse
                  Maintenant que nous avons les données dans des fichiers, il faut les importer dans la base de données perfparse. Pour ce faire, il faut créer comme-ci dessus les deux commandes suivantes :
                  process-host-perfdata-file
                  Code:
                   cat $USER2$/var/perfparse-host-perfdata.dat | $USER2$/bin/perfparse-log2mysql -c $USER2$/etc/perfparse.cfg
                  process-service-perfdata-file
                  Code:
                   cat $USER2$/var/perfparse-service-perfdata.dat | $USER2$/bin/perfparse-log2mysql -c $USER2$/etc/perfparse.cfg
                  Maintenant, il faut executer ces commandes régulièrement pour importer les données. Dans Oreon, éditer le fichier nagios.cfg
                  Host Performance Data File Processing Interval : 120
                  Service Performance Data File Processing Interval : 120
                  Host Performance Data File Processing Command : process-host-perfdata-file
                  Service Performance Data File Processing Command : process-service-perfdata-file
                  en image :
                  par celle-ci :
                  Originally posted by thoms
                  Import des données dans perfparse
                  Maintenant que nous avons les données dans des fichiers, il faut les importer dans la base de données perfparse. Pour ce faire, il faut créer comme-ci dessus la commande suivante :

                  process-service-perfdata-file
                  Code:
                  $USER1$/perfparse-import.sh
                  Puis dans le répertoire de /usr/local/nagios/libexec/ il faut creer un script perfparse-import.sh (attention au proprietaire et au droits d'execution) contenant ce code :
                  Code:
                  #!/bin/sh
                  NAGIOS_DIR=/usr/local/nagios
                  TMP_FILE=/tmp/temp-perfparse-data.dat
                  mv $NAGIOS_DIR/var/perfparse-service-perfdata.dat $TMP_FILE
                  cat $TMP_FILE | $NAGIOS_DIR/bin/perfparse-log2mysql -c $NAGIOS_DIR/etc/perfparse.cfg
                  rm $TMP_FILE
                  Maintenant, il faut executer ces commandes régulièrement pour importer les données. Dans Oreon, éditer le fichier nagios.cfg
                  Host Performance Data File Processing Interval : 120
                  Service Performance Data File Processing Interval : 120
                  Service Performance Data File Processing Command : process-service-perfdata-file
                  en image :


                  les performances par Host ne semble pas gérées par perfparse, je n'ai donc pas mis de commande correspondante. Si toutefois des données par host sont exploitable par votre perfparse, rien ne vous empèche de faire la meme configuration ou de modifier perfparse-import.sh pour qu'il importe les données des host.

                  Comment


                  • #10
                    merci pour cette explication détaillée, qui m'a aidée à mieux comprendre comment fonctionner parfparse, cependant ça ne marche pas chez moi, pourrais tu m'indiquer se que tu as dans ton fichier perfparse.cfg s'il te plait ?

                    Si j'active les logs de perfparse, j'ai cette erreur :
                    Code:
                    2006/11/28 14:24:58 [   storage.c:95    20287 ] Initialisation du module storage_mysql effectuée avec succès
                    2006/11/28 14:24:58 [log_reader.c:160   20287 ] Le chemin pour la marque de position n'est pas spécifié. Desactivez la sauvegarde de la position  ou spécifiez un chemin
                    as tu une idée ?

                    Merci

                    Comment


                    • #11
                      Bonjour, problème similaire, as-tu eu une solution ? Et pourtant mes fichiers se remplissent régulièrement (service-perfdata.out)

                      Comment


                      • #12
                        J'ai eu le meme genre de problemes. Le fichier perfdata-service.dat était reparsé à chaque fois... d'ou la taille de la BD. Le timeout vient probablement du fait que le fichier devient bien trop gros pour etre parcouru en 5 secondes.

                        J'ai laissé tombé les fichiers, et utilisé la méthode du pipe : deux commandes :

                        process-host-perfdata
                        /usr/bin/printf "%b" "$TIMET$\t$HOSTNAME$\t$HOSTCHECKCOMMAND$\t$HOSTOUT PUT$\t$HOSTSTATE$\t$HOSTPERFDATA$\n" | /usr/local/nagios/bin/perfparse-log2mysql -c /usr/local/nagios/etc/perfparse.cfg -r

                        process-service-perfdata
                        /usr/bin/printf "%b" "$TIMET$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICEOUTPU T$\t$SERVICESTATE$\t$SERVICEPERFDATA$\n" | /usr/local/nagios/bin/perfparse-log2mysql -c /usr/local/nagios/etc/perfparse.cfg -r


                        Avec les axx à la base correctement renseignés dans perfparse.cfg et le toutim.

                        Dans Nagios CFG :

                        Performance Data Processing Option : (x) Oui () Non () Vide
                        Et dans les deux "listbox" qui suivent, les deux commandes définies plus haut.

                        LAISSER TOUS LES AUTRES CHAMPS CONCERNANT PERFPARSE VIDES !!

                        Puis dans la déclaration d'un host et d'un service : Onglet "Traitement des Donées" --> Activer "Controle de validité de données", "Traitement des données de perf", et Mémorisation des données liées et non liées au service.

                        Laisser tourner, ca marche, ca graphe, c'est doux et ca fait du bien.

                        Perfparse, c'est facile.

                        Comment


                        • #13
                          Merci

                          Je vais essayer ça dès lundi matin, en tout cas merci !
                          Bon week end !

                          Comment


                          • #14
                            Bonjour à tous !!

                            Après le week end, ça va un peu mieux, mes fichiers avec les infos sont corrects mais la base ne se remplit pas :
                            [[email protected] var]# cat /usr/local/nagios/var/perfdata-service.log | /usr/local/bin/perfparse-log2mysql -c /usr/local/nagios/etc/perfparse.cfg
                            00:00:00 lu 2 @ 0,0 l/sec. Met 0 @ 0,00 Met/l. Rej 2.
                            +-----------------------------+ +-----------------------------+
                            | Generic statistics | | Nb Log Lines : 1 |
                            | Nb lines parsed : 2 | | Nb lines dropped : 2 |
                            | Start date : 2007-03-05 | | Elapsed time : 00:00:00 |
                            | Start time : 11:08:21 | | Rate : (line/sec) 0,00 |
                            +-----------------------------+ +-----------------------------+

                            +-----------------------------+ +-----------------------------+
                            | MySQL storage statistics | | |
                            | New Hosts : 0 | | Metric/line : 0,00 |
                            | New Metrics : 0 | | Metrics Recorded : 0 |
                            | New Services : 0 | | Summary Rec Added : 0 |
                            | New Summary Group : 0 | | SQL Queries : 19 |
                            +-----------------------------+ +-----------------------------+
                            [[email protected] var]# ll
                            Et je ne comprends pas pourquoi ...
                            Mon fichier service-perfdata.out comprend les lignes suivantes
                            8859;0;9844
                            1173089886 localhost Current Users OK 1 HARD 0.009 0.115 USERS OK - 1 users currently logged in users=1;20;50;0
                            1173089946 localhost PING OK 1 HARD 4.016 0.167 PING OK - Packet loss = 0%, RTA = 0.04 ms
                            1173090066 localhost Total Processes OK 1 HARD 0.018 0.224 PROCS OK: 82 processes with STATE = RSZDT
                            1173090126 localhost Current Load OK 1 HARD 0.005 0.259 OK - load average: 0.00, 0.00, 0.00 load1=0.000;5.000;10.000;0; lo
                            ad5=0.000;4.000;6.000;0; load15=0.000;3.000;4.000;0;
                            1173090186 localhost Root Partition WARNING 4 HARD 0.007 0.294 DISK WARNING - free space: / 1950 MB (20% inode=85%): /=7393MB;7875;
                            8859;0;9844
                            1173090186 localhost Current Users OK 1 HARD 0.009 0.297 USERS OK - 1 users currently logged in users=1;20;50;0
                            1173090246 localhost PING OK 1 HARD 4.006 0.097 PING OK - Packet loss = 0%, RTA = 0.03 ms
                            Et le fichier perfdata-service.log se remplit puis se vide ...

                            Ca va finir par marcher j'espère. pour l'instant, toujours pas d'oreon, je fais tout en nagios pur et quand ça marche, j'installe oreon

                            Comment

                            Working...
                            X