Announcement

Collapse
No announcement yet.

[CONTRIB] Inclusion de nagios dans oreon

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

  • [CONTRIB] Inclusion de nagios dans oreon

    bonjour,

    Je trouvais dommage que Oreon ne fasse pas comme Nagios pourcertains trucs, notamment l'affichage des statuts sous Nagios c agréable grace aux filtres. Donc j'ai bosser un peu (un tout ptit peu, g pas trop le temps ^^)
    pour inclure les cgi de Nagios dans Oreon et don je vous fais partager tout ceci.

    Ca va pas bien loin mais bon si vous en voulez plus ... a vos claviers ^^

    Il y a trois fichiers a modifier :
    tout d'abord un fichier à créer dans de le dossier d'Oreon, que j'ai appelé chez moi test.php (comme quoi c super évolué ^^), c pas bien gros mais ca suffit

    Code:
    <?
            if (!isset($oreon))
    		exit();
    
    	if($_SERVER['QUERY_STRING'] != "p=309")
    	 $options = substr($_SERVER['REQUEST_URI'],strpos($_SERVER['REQUEST_URI'],"p=309"));
    	else $options = "hostgroup=all";
    	
    	$url = "http://127.0.0.1/nagios/cgi-bin/status.cgi?".$options;
    	$cgi = file_get_contents($url); //récupération du cgi
    	
    	$cgi = substr($cgi,strpos($cgi,"<table")); //suppression de l'en-tête
    	$cgi= '<LINK REL="stylesheet" TYPE="text/css" HREF="/nagios/stylesheets/status.css"><td valign="top" align="center">'.$cgi;
    	
    	$cgi = str_replace("status.cgi?","oreon.php?p=309&",$cgi); //modification les liens
    	echo $cgi;
    	
    ?>
    Ensuite il vous faut modifier menu.php, pour ajouter votre petit lien ^^
    Code:
    <tr>
    	<td style="white-space: nowrap;">[img]img/picto1.gif[/img]<? echo "Résumé" ?></td>
    </tr>
    j'ai pris le numero 309 car il est noté comme FREE ^^

    et enfin dans oreon.php

    Code:
    case 309: if (check_law($p, $oreon->user->get_status())) include ("./test.php"); else include ("./alt_error.php"); break ;
    c'est pas une ligne a rajouter, c'est à modifier ^^

    Voila, bon évidemment pour que ce soit parfait y a pas mal de taff, mais moi j'ai fait juste pour mes besoins

    Merci
    Florent.

    Redhat / Nagios 3.4.1 / Centreon 2.3.9

  • #2
    Hello,

    merci pour ta contrib

    on va étudier ça de près :wink:
    StatusMap Module - NDO Tools Module - ImportCSV Module - SNMP-UI Module - PDFReports Module
    Dons Paypal

    Comment


    • #3
      j'ai encore bidouillé un peu je posterai demain
      Florent.

      Redhat / Nagios 3.4.1 / Centreon 2.3.9

      Comment


      • #4
        Bonjour,

        Très bonne idée. Cependant, il ne faut pas mettre en l'authentification pour les CGIs Je l'avais mise en place et cela ne fonctionnait pas mais, après l'avoir enlevé, c'est bon!

        Comment


        • #5
          moi aussi je l'ai viré mais pas parce ke ca marchait pas, c juste parce ke s'authentifie 2 fois .... un ptit peu la flemme ^^
          Florent.

          Redhat / Nagios 3.4.1 / Centreon 2.3.9

          Comment


          • #6
            Bon voial les modif apportées, ca permet d'utiliser quasiment tout les pages de nagios

            Code:
            <?
            	if (!isset($oreon))
            		exit();
            	
            	
            	$options = substr($_SERVER['REQUEST_URI'],strpos($_SERVER['REQUEST_URI'],"p=309"));
            	
            	$page=$_GET['page'];
            	
            	$url = "http://127.0.0.1/nagios/cgi-bin/".$page.".cgi?".$options;
            	$cgi = file_get_contents($url); //récupération du cgi
            	
            	
            	if($page=="trends") //récupération des fonctions javascript
            	{
            		$javascript = substr($cgi,strpos($cgi,"<SCRIPT"),strpos($cgi,"</head>")-strpos($cgi,"<SCRIPT")); 
            		$cgi = substr($cgi,strpos($cgi,"<table border=0")); //suppression de l'en-tête
            		$cgi=$javascript.$cgi; //rajout des fonctions javascripts
            	}
            	else	
            		$cgi = substr($cgi,strpos($cgi,"<table")); //suppression de l'en-tête	
            	
            	$cgi =  substr($cgi,0,strpos($cgi,"</body>")); //suppression de la fin
            			
            	$cgi = '<LINK REL="stylesheet" TYPE="text/css" HREF="/nagios/stylesheets/'.$page.'.css"><td valign="top" align="center">'.$cgi;
            	
            	$cgi = str_replace("status.cgi?","oreon.php?page=status&p=309&",$cgi); //modification les liens
            	$cgi = str_replace("extinfo.cgi?","oreon.php?page=extinfo&p=309&",$cgi);
            	$cgi = str_replace("history.cgi?","oreon.php?page=history&p=309&",$cgi);
            	$cgi = str_replace("histogram.cgi?","oreon.php?page=histogram&p=309&",$cgi);
            	$cgi = str_replace("avail.cgi?","oreon.php?page=avail&p=309&",$cgi);
            	$cgi = str_replace("notifications.cgi?","oreon.php?page=notifications&p=309&",$cgi);
            	$cgi = str_replace("href='trends.cgi?","href='oreon.php?page=trends&p=309&",$cgi);
            	$cgi = str_replace("HREF='trends.cgi?","href='oreon.php?page=trends&p=309&",$cgi);
            	$cgi = str_replace("SRC='trends.cgi?","src='/nagios/cgi-bin/trends.cgi?",$cgi);
            	$cgi = str_replace("src='trends.cgi?","src='/nagios/cgi-bin/trends.cgi?",$cgi);
            	
            	
            	echo $cgi;
            	
            ?>
            Florent.

            Redhat / Nagios 3.4.1 / Centreon 2.3.9

            Comment


            • #7
              Bonjour,

              Note: il faut changer la ligne dans menu.php:
              Code:
              <td style="white-space: nowrap;">[img]img/picto1.gif[/img]&nbsp ;<? echo "Nagios Resume" ?></td>

              Comment


              • #8
                oui merci j'avais oublier de préciser ^^

                Je précise qu'il y a certains trucs ki ne fonctionnent pas comme dans la pages des trends avec les formulaires (bouton Update)
                Florent.

                Redhat / Nagios 3.4.1 / Centreon 2.3.9

                Comment


                • #9
                  Ne fonctionne pas

                  Salut Florentmair,

                  merci pour ta contribution, elle correspond à ce que je recherche.
                  J'ai mis en place tes modifications, et malheuresement, je n'arrive pas à faire fonctionne le tout.

                  Apparemment, tout est ok au niveau du fichier menu.php et oreon.php car si je fais référence à l'appel d'un tools tel que downtime.php, l'appel à cette fonction depuis le nouveau menu Oreon fonctionne bien.

                  Par contre, si je fais référence au fichier test.php qu j'ai appelé integration_nagios.php, rien ne s'affiche.

                  le fichier est au bon endroit à a apparemment les bon droits:

                  -rwxrwxr-x 1 apache apache 1791 Aug 17 08:45 integration_nagios.php
                  As-tu une idée ?

                  Merci d'avance

                  Thierry

                  Comment


                  • #10
                    Bonjour,

                    Ton fichier integration_nagios.php doit se trouver à la racine d'oréon.
                    Ensuite si tu n'as pas modifié ce que j'ai fait, il te suffit juste de modifier dans le fichier oreon.php le cas 309 en remplacant test.php par ton nom de fichier

                    Si cela ne fonctionne, donne les détails de tes modifs

                    a+
                    Florent.

                    Redhat / Nagios 3.4.1 / Centreon 2.3.9

                    Comment


                    • #11
                      Salut,

                      c'est ce qu'il me semble avoir fait.

                      1) voici l'entrée dans le fichier oreon.php

                      Code:
                      [[email protected] oreon]# grep 309 oreon.php
                                              case 309: if (check_law($p, $oreon->user->get_status())) include ('./integration_nagios.php'); else include ("./alt_error.php"); break ;
                      [[email protected] oreon]#
                      A noter que cette entrée à été placée en ligne 167 sur les 201 que comporte le fichier.

                      2) contenu du fichier integration_nagios.php

                      le fichier se trouve à la racine d'oreon, soit /usr/local/oreon dans mon cas.
                      Son contenu est le suivant:

                      Code:
                      <?
                         if (!isset($oreon))
                            exit();
                         
                         
                         $options = substr($_SERVER['REQUEST_URI'],strpos($_SERVER['REQUEST_URI'],"p=309"));
                         
                         $page=$_GET['page'];
                         
                         $url = "http://127.0.0.1/nagios/cgi-bin/".$page.".cgi?".$options;
                         $cgi = file_get_contents($url); //répétion du cgi
                         
                         
                         if($page=="trends") //répétion des fonctions javascript
                         {
                            $javascript = substr($cgi,strpos($cgi,"<SCRIPT"),strpos($cgi,"</head>")-strpos($cgi,"<SCRIPT"));
                            $cgi = substr($cgi,strpos($cgi,"<table border=0")); //suppression de l'en-tê
                            $cgi=$javascript.$cgi; //rajout des fonctions javascripts
                         }
                         else   
                            $cgi = substr($cgi,strpos($cgi,"<table")); //suppression de l'en-tê   
                         
                         $cgi =  substr($cgi,0,strpos($cgi,"</body>")); //suppression de la fin
                               
                         $cgi = '<LINK REL="stylesheet" TYPE="text/css" HREF="/nagios/stylesheets/'.$page.'.css"><td valign="top" align="center">'.$cgi;
                         
                         $cgi = str_replace("status.cgi?","oreon.php?page=status&p=309&",$cgi); //modification les liens
                         $cgi = str_replace("extinfo.cgi?","oreon.php?page=extinfo&p=309&",$cgi);
                         $cgi = str_replace("history.cgi?","oreon.php?page=history&p=309&",$cgi);
                         $cgi = str_replace("histogram.cgi?","oreon.php?page=histogram&p=309&",$cgi);
                         $cgi = str_replace("avail.cgi?","oreon.php?page=avail&p=309&",$cgi);
                         $cgi = str_replace("notifications.cgi?","oreon.php?page=notifications&p=309&",$cgi);
                         $cgi = str_replace("href='trends.cgi?","href='oreon.php?page=trends&p=309&",$cgi);
                         $cgi = str_replace("HREF='trends.cgi?","href='oreon.php?page=trends&p=309&",$cgi);
                         $cgi = str_replace("SRC='trends.cgi?","src='/nagios/cgi-bin/trends.cgi?",$cgi);
                         $cgi = str_replace("src='trends.cgi?","src='/nagios/cgi-bin/trends.cgi?",$cgi);
                         
                         
                         echo $cgi;
                         
                      ?>
                      Vois-tu qqch qui cloche ?

                      Merci d'avance

                      Thierry

                      Comment


                      • #12
                        Je ne vois rien qui cloche

                        tu demandes une authentification sous Nagios?

                        As tu regardé la source de la page ?
                        Florent.

                        Redhat / Nagios 3.4.1 / Centreon 2.3.9

                        Comment


                        • #13
                          OUI, pour accéder à nagios, je demande une authentification.
                          Par contre, je ne comprens pas bien ta remaque concernant la visualisation de la page source.

                          Peux-tu développer ?

                          Merci

                          Comment


                          • #14
                            Bon pour l'authentification en théorie il doit te demander de t'authentifier quand tu appelles les pages de Ngios, mais j'en suis pas certain! Fais en test en désactivant "use_authentification" dans cgi.cfg.

                            Tu fais clik droit sur ta page "afficher le code source", ca te permet de debugger tes pages, et éventuellemnt de voir des messages qui ne sont pas affichés sur la page web.
                            Florent.

                            Redhat / Nagios 3.4.1 / Centreon 2.3.9

                            Comment


                            • #15
                              Resalut,

                              j'ai fait en sorte que Nagios ne demande plus d'authentification, mais cela ne change rien.

                              Dans la page source, je ne vois rien qui puisse me mettre la puce à l'oreille.

                              Par contre, afin de mieux comprende ton code (dans le fichier test.php), est-il possible de le simplifier au max afin que lorsque j'appel ce fichier qqch s'affiche sur la page web afin de vérifier que l'appel à la fonction fonctionne convenablement ?

                              Je ne comprend pas bien ton code qui permet l'affichage des cgi Nagios, peux-tu me le décrire ?

                              Merci d'avance

                              Thierry

                              Comment

                              Working...
                              X