Ad Widget

Collapse

Unification du parc GLPI et Zabbix

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

    #16
    Je cherchais juste à trouver les fichiers de l'API, je suis tombé sur ce dossier contenant les fichiers python en croyant que ça avait un lien. Si tu me dit que ce n'est pas ça, ok j'ai remis les fichiers à l'original.

    Je n'avais pas vu ton message concernant le serveur web, au temps pour moi.

    Le serveur web est sous apache2. Alléluia ! Les fichiers .php (dont api_jsonrpc.php) sont dans le dossier /usr/share/zabbix.

    L'adresse http://adresse.de.ton.serveur/zabbix/api_jsonrpc.php me retourne une erreur 404.
    Last edited by slap; 29-05-2017, 11:47.

    Comment

    • tiramiseb
      Senior Member
      • Sep 2012
      • 427

      #17
      Les fichiers .php (dont api_jsonrpc.php) sont dans le dossier /usr/share/zabbix.
      Donc a priori tu cherchais au mauvais endroit
      Pas grave, on avance.

      L'adresse http://adresse.de.ton.serveur/zabbix/api_jsonrpc.php me retourne une erreur 404.
      Rassure-moi, tu as remplacé « http://adresse.de.ton.serveur/zabbix/ » par l'adresse que tu utilises pour accéder à ton interface de Zabbix, n'est-ce pas ?

      Vu que le fichier api_jsonrpc.php est présent, ça ne devrait pas te donner d'erreur 404 : le fichier est là.

      Peux-tu confirmer que tu as fait une erreur en remplaçant « http://adresse.de.ton.serveur/zabbix/ » par l'adresse de ton interface de Zabbix ?
      Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

      Comment

      • slap
        Member
        • May 2017
        • 31

        #18
        Mon serveur zabbix est sur l'adresse : http://10.0.240.6/zabbix.php
        Quand je veux joindre l'adresse : http://10.0.240.6/zabbix/, il me retourne une erreur 404.

        Comment

        • tiramiseb
          Senior Member
          • Sep 2012
          • 427

          #19
          Originally posted by slap
          Mon serveur zabbix est sur l'adresse : http://10.0.240.6/zabbix.php
          Bah dans ce cas, l'adresse c'est http://10.0.240.6/, sans /zabbix/ !

          Donc → http://10.0.240.6/api_jsonrpc.php

          ... et là tu n'auras pas d'erreur 404.


          Du coup, on retourne tout au début de ton post, là où tu en étais le 19 mai, car côté serveur tout semble ok.


          C'est à dire que je suis un peu perdu en fait sur les étapes du code..
          Tu parles de la doc de Zabbix ?
          Oui je parle de la doc de Zabbix, là :


          Je n'arrives pas a visualiser les étapes du script à insérer.
          Je souhaiterai qu'on me mette sur la voie.
          La doc explique comment utiliser l'API "manuellement", en faisant les requêtes HTTP directement.

          Mais tu peux utiliser une bibliothèque cliente aussi, je te le conseille.
          Join the friendly and open Zabbix community on our forums and social media platforms.


          Si comme je l'ai compris tu utilises PHP pour développer la procédure sur laquelle tu bosses, il y a par exemple https://github.com/confirm/PhpZabbixApi
          Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

          Comment

          • slap
            Member
            • May 2017
            • 31

            #20
            En effet, l'adresse https://10.0.240.6/api_jsonrpc.php ne me retourne pas d'erreur 404 mais c'est une page vide.

            Pour le script PHP et les étapes du code j'ai un peu avancé en suivant la doc.
            J'ai une erreur quand je veux récupérer le token, voici mon code:

            Code:
            $zabbix_api_url="https://10.0.240.6/api_jsonrpc.php";
            $ZABBIX_ADMIN_LOGIN="Admin";
            $ZABBIX_ADMIN_PW="zabbix";
            
            
            $json2='{
                "jsonrpc": "2.0",
                "method": "user.login",
                "params": {
                    "user": "'.$ZABBIX_ADMIN_LOGIN.'",
                    "password":  "'.$ZABBIX_ADMIN_PW.'"
                },
                "id": 1,
                "auth": null
            }';
            
            
            
            /*-------Get PC - Zabbix-------*/
            $ch2 = curl_init();
            
            curl_setopt($ch2, CURLOPT_URL, $zabbix_api_url);
            curl_setopt($ch2, CURLOPT_POST, 1);
            curl_setopt($ch2, CURLOPT_POSTFIELDS, $json2);
            //Avec la ligne suivante curl, retournera la valeur resultat ou false si erreur
            curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
            
            $json2=curl_exec($ch2);
            curl_close ($ch2);
            
            echo "Resultat en JSON: ";
            var_dump($json2);
            
            $obj2 = json_decode($json2,true);
            
            echo "<br/>Resultat JSON converti en une variable PHP: ";
            var_dump($obj2);
            Resultat en JSON: bool(false)
            Resultat JSON converti en une variable PHP: NULL

            Je vais me renseigner sur la librairie.

            EDIT : j'ai téléchargé et extrait la librairie PHP dans le dossier /var/www/html/lib:
            >index.php
            >lib
            - ZabbixApiAbstract.class.php
            - ZabbixApi.class.php

            Est-ce le bon dossier ?
            Last edited by slap; 29-05-2017, 14:22.

            Comment

            • tiramiseb
              Senior Member
              • Sep 2012
              • 427

              #21
              Originally posted by slap
              Je vais me renseigner sur la librairie.
              Je pense que ce sera plus facile, oui.

              Par ailleurs, si tu dois bosser avec du JSON, utilise json_encode plutôt que d'écrire ça sous forme d'une string...

              Concernant l'erreur que tu rencontres, es-tu sûr que l'authentification est correcte (username/password) ?
              Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

              Comment

              • slap
                Member
                • May 2017
                • 31

                #22
                J'ai installé la librairie mais comment l'utiliser ? je ne sais pas si je l'ai installé dans le bon dossier.

                Je connais pas beaucoup json .. J'ai essayé de faire avec les renseignements que j'ai trouvé.

                Effectivement, les identifiants sont les bons.

                Comment

                • tiramiseb
                  Senior Member
                  • Sep 2012
                  • 427

                  #23
                  Pour l'utilisation, tout est exliqué dans la doc de la lib :
                  A PHP library for the Zabbix™ JSON-RPC API. Contribute to confirm/PhpZabbixApi development by creating an account on GitHub.


                  Lis les documentations !!!
                  Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

                  Comment

                  • slap
                    Member
                    • May 2017
                    • 31

                    #24
                    Ok je crois savoir d'ou viens mon problème.
                    En fait j'ai un script.php sur mon serveur GLPI (10.0.240.23) qui récupère la liste des PC.
                    Je fais appel à "ZabbixApi.class.php" dans mon script, qui est dans un dossier de mon serveur Zabbix (10.0.240.6) n'y aurait-il pas un souci à ce niveau la?

                    Je sais pas si c'est compréhensible, mais je suis aussi un peu confus ..

                    Comment

                    • tiramiseb
                      Senior Member
                      • Sep 2012
                      • 427

                      #25
                      Euh... la bibliothèque client API doit être sur la machine cliente (donc le serveur GLPI), pas sur le serveur Zabbix.
                      Ça ne sert à rien d'installer une bibliothèque client sur le serveur...
                      Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

                      Comment

                      • slap
                        Member
                        • May 2017
                        • 31

                        #26
                        La librairie est elle obligatoire ? Parce que j'ai l'impression de me compliquer la tâche ..

                        Comment

                        • tiramiseb
                          Senior Member
                          • Sep 2012
                          • 427

                          #27
                          Originally posted by slap
                          La librairie est elle obligatoire ? Parce que j'ai l'impression de me compliquer la tâche ..
                          La bibliothèque te permet de simplifier l'utilisation de l'API : plutôt que de "construire" toi-même le contenu des requêtes JSON, d'envoyer les requêtes avec curl et de traiter les différents retours possibles de l'API, elle permet d'appeler de simples méthodes sur un objet et d'obtenir une réponse prête à l'emploi, tout ce qui se passe derrière est géré automatiquement.

                          Je ne comprends pas en quoi elle te complique la tâche...

                          Mais si tu préfères tout faire "à la main", libre à toi...
                          Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

                          Comment

                          • slap
                            Member
                            • May 2017
                            • 31

                            #28
                            D'accord je vois.
                            Ca me complique la tâche puisque je ne sais absolument pas ou l'installer.. et que rien ne fonctionne dans tout ce que j'ai essayé.

                            Comment

                            • tiramiseb
                              Senior Member
                              • Sep 2012
                              • 427

                              #29
                              je ne sais absolument pas ou l'installer
                              Tu l'installes sur ton serveur GLPI, à côté de ton script, je sais pas... Là il s'agit de l'utilisation d'une bibliothèque PHP pour programmer en PHP, si tu as choisis ce langage c'est que tu le connais... pour ma part je ne connais quasiment pas PHP, ça doit faire plus de 10 ans que je n'ai pas touché à ce langage, je ne pourrais pas t'aider beaucoup sur ce sujet.

                              rien ne fonctionne dans tout ce que j'ai essayé
                              Eh bien au lieu d'essayer plein de choses à tâtons, tu peux te concentrer sur un truc particulier, comprendre ce qui se passe et résoudre tes problèmes.

                              J'ai l'impression que tu essaies un truc après l'autre, et si "ça marche pas" tu passes à autre chose sans essayer de comprendre pourquoi tu as des problèmes.


                              Dans tous les cas, dans la mesure où tu ne donnes absolument aucun détail technique, ici on est dans l'incapacité totale de t'aider...
                              Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

                              Comment

                              • slap
                                Member
                                • May 2017
                                • 31

                                #30
                                Voila j'ai installé la librairie sur mon serveur GLPI dans le même dossier de mon script. Je veux utiliser la librairie comme expliqué dans la documentation:
                                Code:
                                require_once 'PhpZabbixApi-2.4.5/build/ZabbixApi.class.php';
                                use ZabbixApi\ZabbixApi;
                                
                                try
                                {
                                    // connect to Zabbix API
                                    $api = new ZabbixApi('http://10.0.240.6/api_jsonrpc.php', 'admin', 'zabbix');
                                
                                    /* ... do your stuff here ... */
                                }
                                catch(Exception $e)
                                {
                                    // Exception in ZabbixApi catched
                                    echo $e->getMessage();
                                }
                                J'obtiens :
                                Code:
                                PHP Warning:  require_once(PhpZabbixApi-2.4.5/build/ZabbixApi.class.php): failed to open stream: No such file or directory
                                PHP Fatal error:  require_once(): Failed opening required 'PhpZabbixApi-2.4.5/build/ZabbixApi.class.php' (include_path='.:/usr/share/pear:/usr/share/php/php')

                                Comment

                                Working...