Ad Widget

Collapse

Unification du parc GLPI et Zabbix

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • slap
    Member
    • May 2017
    • 31

    #46
    D'accord.
    Attend parce que la plus rien ne marche sans aucune raison apparente, j'ai simplement supprimé des commentaires pour y voir plus clair et je n'accède plus à la page..
    Je règle ça, j'essaye le code que tu m'as donné et je reviens vers toi.
    Je surchauffe

    Comment

    • slap
      Member
      • May 2017
      • 31

      #47
      Ok j'ai réglé mon petit souci précédent.

      Alors voila le bout de code:
      PHP Code:
      /*==================================================*/
      /*                     ZABBIX                       */
      /*==================================================*/
      $zabbix_api_url="https://10.0.240.6/api_jsonrpc.php";
      $ZABBIX_ADMIN_LOGIN="Admin";
      $ZABBIX_ADMIN_PW="zabbix";
      $zabbix_context = array(
          
      'verify_peer' => FALSE,
          
      'verify_peer_name' => FALSE
      );

      require_once 
      'lib/ZabbixApi.class.php';
      use 
      ZabbixApi\ZabbixApi;

      try
      {
          
      // connect to Zabbix API
      $api = new ZabbixApi($zabbix_api_url$ZABBIX_ADMIN_LOGIN$ZABBIX_ADMIN_PW''''''$zabbix_context);
      }
      catch(
      Exception $e)
      {
          
      // Exception in ZabbixApi catched
          
      echo $e->getMessage();
      };
      // get all graphs
      $graphs $api->graphGet();

      // print all graph IDs
      foreach($graphs as $graph)
        echo 
      $graph->graphid."\n"
      J'obtiens:
      387 392 404 406 410 433 436 439 450 451 452 453 454 455 456 457 458 459 462 463 464 465 469 471 474 475 480 481 482 483 487 494 495 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 517 518 519 520 523 524 525 526 527 528 529 530 531 532 533 534 540 541 542 543 544 545 546

      fin
      Ca à l'air de fonctionner
      Mais à quoi correspond ce résultat ? Et si je comprend bien, la partie de récupération de token etc. se fait avec la librairie ?

      Comment

      • tiramiseb
        Senior Member
        • Sep 2012
        • 427

        #48
        Originally posted by slap
        Ca à l'air de fonctionner
        Mais à quoi correspond ce résultat ?
        Bah c'est un exemple que j'ai pris du README, il me semble pourtant assez clair :
        Code:
        $graphs = $api->graphGet(); 
        foreach($graphs as $graph) 
          echo $graph->graphid."\n";
        1. tu mets dans $graphs les infos de tous les graphiques (retour de l'appel api "graph.get" sans argument)
        2. tu fais un foreach sur $graphs (donc tu prends les graphiques un par un)
        3. tu imprimes l'id de chacun des graphiques


        Originally posted by slap
        Et si je comprend bien, la partie de récupération de token etc. se fait avec la librairie ?
        Tous ces trucs-là sont gérés de manière transparente par la bibliothèque, oui. Toi tu te concentres uniquement sur ce qui t'intéresse : les données que tu récupères et que tu traites.

        Tu as encore l'impression que ça va te compliquer la tâche ?
        Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

        Comment

        • slap
          Member
          • May 2017
          • 31

          #49
          Ah oui d'accord !
          Non c'est bien plus simple comme ça ahah merci !
          Je vais me concentrer sur la récupération des Hosts zabbix et le comparatif avec GLPI maintenant

          Comment

          • slap
            Member
            • May 2017
            • 31

            #50
            En fait j'aimerai lister les hosts de Zabbix mais je ne sais pas quelle (type de) variable mettre dans le array_push(); de Zabbix..

            PHP Code:
            /*-------On liste les PC dans un tableau-------*/
            $computers = array();
            foreach (
            $obj as $computer){
                
            //GLPI    
                
            array_push($computers$computer['name']);
                
            //Zabbix
                
            array_push();
            }
            var_dump($computers); 

            Comment

            • tiramiseb
              Senior Member
              • Sep 2012
              • 427

              #51
              T'as pas montré la ligne où tu assignes à $obj...
              Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

              Comment

              • slap
                Member
                • May 2017
                • 31

                #52
                C'est dans la partie GLPI, j'avais utilisé curl:

                Code:
                $obj = json_decode($json,true);

                Comment

                • tiramiseb
                  Senior Member
                  • Sep 2012
                  • 427

                  #53
                  Je n'arrive pas à comprendre ce que tu veux faire.

                  Tu fais une boucle sur les hôtes provenant de GLPI, pour l'instant tu n'as rien provenant de Zabbix. Tu ne peux pas alimenter deux variables différentes avec deux sources différentes dans une seule boucle.

                  Je pense qu'il faut que tu réfléchisses + à ton algo. D'autant plus que dans ton premier message tu parlais d'utilisateurs, pas d'hôtes.
                  Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

                  Comment

                  • slap
                    Member
                    • May 2017
                    • 31

                    #54
                    Je souhaite récupérer la liste des machines présente sur zabbix..

                    Comment

                    • tiramiseb
                      Senior Member
                      • Sep 2012
                      • 427

                      #55
                      Au pifomètre, ça doit certainement être ça :
                      Code:
                      $zabbix_hosts = $api->hostGet();
                      (comme expliqué dans le README de la bibliothèque et en utilisant les infos lues sur la doc officielle de Zabbix (https://www.zabbix.com/documentation...rence/host/get))
                      Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

                      Comment

                      • slap
                        Member
                        • May 2017
                        • 31

                        #56
                        Ok c'est bon ça fonctionne !
                        Un grand merci pour ton aide !
                        Je vais me pencher sur l'étape suivante maintenant tu m'as bien aidé à avancer

                        Comment

                        • slap
                          Member
                          • May 2017
                          • 31

                          #57
                          Salut,
                          je reviens vers toi pour quelques renseignements supplémentaires.

                          Actuellement mon script récupère 2 listes:
                          • Liste des machines GLPI
                          • Liste des machines ZABBIX

                          J'effectue ensuite un comparatif de ces 2 listes pour connaitre les machines manquantes sur ZABBIX.
                          Je récuèpère donc une 3ème liste avec les machines manquantes.

                          J'aimerai pouvoir ajouter, via l'API, toutes les machines qui sont présentes dan cette 3ème liste, sur ZABBIX.

                          J'ai trouvé quelques infos sur la documentation ZABBIX mais c'est du Json et je ne comprend pas la construction.

                          Pourrais-tu m'aiguiller sur ce point ?
                          Last edited by slap; 01-06-2017, 09:55.

                          Comment

                          • tiramiseb
                            Senior Member
                            • Sep 2012
                            • 427

                            #58
                            Tu ne comprends pas la construction ? Ça veut dire quoi, "ne pas comprendre la construction" ?
                            Le JSON c'est le bas niveau des requêtes, c'est géré par la bibliothèque, toi t'as pas à faire de JSON.

                            La façon de donner des paramètres aux requêtes est documenté dans le README de la bibliothèque :
                            A PHP library for the Zabbix™ JSON-RPC API. Contribute to confirm/PhpZabbixApi development by creating an account on GitHub.
                            Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

                            Comment

                            • slap
                              Member
                              • May 2017
                              • 31

                              #59
                              La construction du code PHP.
                              Justement, comme tu l'as dit, le json est géré par l'API et les infos que j'ai trouvé pour créé un host c'est uniquement du code Json..
                              Je ne comprend pas comment le faire en PHP.

                              Comment

                              • tiramiseb
                                Senior Member
                                • Sep 2012
                                • 427

                                #60
                                Les infos que tu as dans la doc, c'est un tableau qui t'explique chaque paramètre.

                                Et en-dessous, il y a un exemple qui te dit comment utiliser ces paramètres si tu fais une requête à la main, auquel cas tu dois faire du JSON.

                                Toi tu t'en fous de cet exemple : tu passes les paramètres à la bibliothèque, comme indiqué dans la documentation de la bibliothèque ; en l'occurrence, tu passes une array indexée comme argument de la fonction que tu appelles.


                                Rappel : je suis très mauvais en PHP, tout ce que je te dis là c'est ce que je lis dans les documentations que je t'ai déjà données. Ça devient un peu pénible de lire les docs à ta place.
                                Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

                                Comment

                                Working...