You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#26 2017-05-18 10:55:31

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#27 2017-05-18 11:03:00

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

Il me retourne une page avec le session_token qui change a chaque actualisation.

Offline

#28 2017-05-18 11:07:50

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

c'est normal, et c'est ce qui devrait se passer dans le script.
le script fabrique la même url.

dans le script pouvez vous ajouter après

$url=$api_url . "/initSession?Content-Type=%20application/json&app_token=".$app_token ."&user_token=".$user_token;

echo "$api_url <br/>";
echo $url;

et vérifier que l'url est bien la même que la précédente qui vous donne un jeton de session


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#29 2017-05-18 11:11:52

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

Ok l'URL est correcte et le session_token est bien récupéré.

$ php C:/Users/USER/Desktop/script.php
session token<br/>http://DOMAINE/apirest.php <br/>http://DOMAINE/apirest.php/initSession?Content-Type=%20application/json&app_token=APPTOKEN&user_token=USERTOKEN
(
    [session_token] => SESSIONTOKEN
)
PHP Warning:  Illegal string offset 'name' in /home/USER/C:/Users/USER/Desktop/script.php on line 50
<br/>********E**********<br/>ERROR_APP_TOKEN_PARAMETERS_MISSING
PHP Warning:  Illegal string offset 'name' in /home/USER/C:/Users/USER/Desktop/script.php on line 50
<br/>********l**********<br/>le paramètre app_token est manquant; Afficher la documentation dans votre navigateur à https://DOMAINE/apirest.php/#ERROR_APP_TOKEN_PARAMETERS_MISSING

Offline

#30 2017-05-18 11:55:41

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

ce qui me surprend c'est que le script est sur le bureau.
avez vous essayé de le déposer dans /var/www/html/script.php et de lancer dans le navigateur localhost/spript.php ?


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#31 2017-05-18 14:03:21

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

Oui je travaille sous Windows.
J'ai créé un fichier texte sur le bureau que j'ai édité avec Notepad++ et changé l'extension en .php
J'exécute le script en utilisant Cygwin.

Last edited by slap (2017-05-18 14:05:45)

Offline

#32 2017-05-18 16:54:16

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

vous ne voulez vraiment pas le déposer sur le serveur web dans le même dossier que glpi par exemple et le lancer avec firefox?


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#33 2017-05-18 17:20:42

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

J'ai accès au serveur GLPI en SSH via Putty.
J'ai donc copié le script dans /var/www/html et j'ai copié le script.
Je l'ai ensuite exécuté et voici les erreurs ..
Logs:

session token<br/>http://10.0.240.23/apirest.php <br/>http://10.0.240.23/apirest.php/initSession?Content-Type=%20application/json&app_token=keielfrf5q5mtewqwg188n93f491ug0e6hmsndauz8&user_token=1agp3xl4qlarqh88h7es4eponwyxldhdtgsi2nzzfiArray
(
    [0] => ERROR_NOT_ALLOWED_IP
    [1] => Il n'y a aucun client de l'API dans la configuration qui vérifie votre adresse IP (10.0.240.23)
)
PHP Notice:  Undefined index: session_token in /var/www/html/script.php on line 21
PHP Warning:  Illegal string offset 'name' in /var/www/html/script.php on line 43
<br/>********E**********<br/>ERROR_NOT_ALLOWED_IP
PHP Warning:  Illegal string offset 'name' in /var/www/html/script.php on line 43
<br/>********I**********<br/>Il n'y a aucun client de l'API dans la configuration qui vérifie votre adresse IP (10.0.240.23)

J'ai pu l'exécuter uniquement sur la console, sur http://10.0.240.23/script.php la page renvoie une erreur

Edit: "apirest.php" est installé dans /var/www/glpi. J'ai donc copié le script dans le meme répertoire et je peux exécuter mon script via l'adresse http://10.0.240.23/script.php. Les erreurs du logs précédent sont toujours présentes.

Last edited by slap (2017-05-18 17:49:54)

Offline

#34 2017-05-18 17:57:52

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

Attention. Vous avez une autre ip à configurer dans glpi.


Ce n est plus la même erreur.
Et le apptoken va certainement changer.
Il faut mettre à jour


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#35 2017-05-18 18:02:04

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

Quelle est cette autre ip ?
Ok je vais m'assurer que le APPTOKEN soit le bon.

Offline

#36 2017-05-18 18:42:07

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

d'après le message c'est "10.0.240.23"

le scrpit est en 2 parties :

1ere partie : vous envoyez une requete :  "coucou c'est slap, est ce que je peux avoir un jeton svp" ( initsession) glpi vous renvoie un tableau et vous mettez le jeton dans une variable $session_token.

2) vous demandez la liste des ordinateurs : merci de m'envoyer la liste des ordinateurs, pour vous prouver que c'est moi je vous envoie le jeton $sessiontoken ;

comme on n'a pas encore réussi à mettre le jeton dans la variable, glpi ne vous renvoie pas la liste des pc mais un message : "je n'ai pas de jeton donc je renvoie un message d'alerte".


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#37 2017-05-19 09:08:08

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

Bonjour,

l'IP "10.0.240.23" est l'adresse de mon serveur GLPI. Ou dois-je la configurer dans GLPI ?

D'accord, merci pour cette explication, j'y vois un peu plus clair sur ce point.

Offline

#38 2017-05-19 09:18:46

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

l'IP "10.0.240.23" est l'adresse de mon serveur GLPI

c'est aussi l'adresse de votre client ( script.php).

dans glpi>configuration>generale>api>ajouter un client API> completez, ajouter la plage d'IP, generez un app-token et mettez à jour le script.

( en plus des jetons ( session et app), glpi vérifie l'ip du client qui fait la demande)


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#39 2017-05-19 09:35:59

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

Ok, j'ai ajouté l'ip à mon client API et regénéré le APPTOKEN que j'ai modifié dans le script.
Le script récupère bien le "sessiontoken". voici les logs:

session token
http://10.0.240.23/apirest.php 
http://10.0.240.23/apirest.php/initSession?Content-Type=%20application/json&app_token=txzhy8akt2g38zm3wtt8m6en7h881guu6v0lkiexrh&user_token=1agp3xl4qlarqhh7es884eponwyxldhdtgsi2nzzfiArray ( [session_token] => cb858n27pe3n64j88vnkb25h5i06 ) 
********E**********
ERROR_APP_TOKEN_PARAMETERS_MISSING
********l**********
le paramètre app_token est manquant; Afficher la documentation dans votre navigateur à https://10.0.240.23/apirest.php/#ERROR_APP_TOKEN_PARAMETERS_MISSING

Offline

#40 2017-05-19 09:44:37

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

la phase d'initialisation est terminée !

voyons maintenant la suite step by step: on va vérifier que les variables $sess_token et $header sont bien initialisées :

avant le /**********get pc********/
ajoutez
echo "<br/>".$sess_token;
echo "<br/>";
print_r($header);


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#41 2017-05-19 09:48:47

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

Voila qui est fait.

session token
http://10.0.240.23/apirest.php 
http://10.0.240.23/apirest.php/initSession?Content-Type=%20application/json&app_token=txzhy8akt2g38zm3wtt8m6en7h1guu6v0lkiexrh&user_token=1agp3xl4qlarqhh7es4eponwyxldhdtgsi2nzzfiArray ( [session_token] => j06i1jtvbieo774rdmq5n1p734 ) 
j06i1jtvbieo774rdmq5n1p734

********E**********
ERROR_APP_TOKEN_PARAMETERS_MISSING
********l**********
le paramètre app_token est manquant; Afficher la documentation dans votre navigateur à https://10.0.240.23/apirest.php/#ERROR_APP_TOKEN_PARAMETERS_MISSING

Offline

#42 2017-05-19 10:00:32

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

remplacer le code sous /****getpc***/ par

/*****get PC************/

$ch = curl_init();
$url=$api_url . "/User/";
$url .= "?Content-Type=%20application/json&app_token=".$app_token ."&session_token=".$sess_token;
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json,true);

print_r($obj);

die(" fin");


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#43 2017-05-19 10:03:52

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

Voila.

session token
http://10.0.240.23/apirest.php 
http://10.0.240.23/apirest.php/initSession?Content-Type=%20application/json&app_token=txzhy8akt2g38zm3wtt8m6en7h1g88uu6v0lkiexrh&user_token=1agp3xl4ql88arqhh7es4eponwyxldhdtgsi2nzzfiArray ( [session_token] => ohdulmcb08o88brc92r4fratn357 ) 
ohdulmcb08obrc92r4fratn357
Array ( [0] => ERROR_SESSION_TOKEN_MISSING [1] => le paramètre session_token est manquant ou vide; Afficher la documentation dans votre navigateur à https://10.0.240.23/apirest.php/#ERROR_SESSION_TOKEN_MISSING ) fin

Il semblerai qu'il n'arrive pas à réinjecter le session token ?

Last edited by slap (2017-05-19 10:05:10)

Offline

#44 2017-05-19 10:34:29

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

verifions l'url :

    /*****get PC************/

    $ch = curl_init();
    $url=$api_url . "/User/";
    $url .= "?Content-Type=%20application/json&app_token=".$app_token ."&session_token=".$sess_token;
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $json = curl_exec($ch);
    curl_close ($ch);
    $obj = json_decode($json,true);
echo "<br/> url : ".$url ."<br/>";
    print_r($obj);

    die(" fin");


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#45 2017-05-19 10:38:09

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

l'URL récupère bien les tokens

session token
http://10.0.240.23/apirest.php 
http://10.0.240.23/apirest.php/initSession?Content-Type=%20application/json&app_token=txzhy8akt2g38zm3wtt8m6en7h1guu6v0lkiexrh&user_token=1agp3xl4qlarqhh7es4eponwyxldhdtgsi2nzzfiArray ( [session_token] => a8tagqs48nsd0g57or0kv04046 ) 

a8tagqs48nsd0g57or0kv04046

url : http://10.0.240.23/apirest.php/User/?Content-Type=%20application/json&app_token=txzhy8akt2g38z3wtt8m6en7h1guu6v0lkiexrh&user_token=1agp3xl4qlarqhhes4eponwyxldhdtgsi2nzzfi

Array ( 
     [0] => ERROR_SESSION_TOKEN_MISSING 
     [1] => le paramètre session_token est manquant ou vide; 
Afficher la documentation dans votre navigateur à https://10.0.240.23/apirest.php/#ERROR_SESSION_TOKEN_MISSING ) 
fin

Last edited by slap (2017-05-19 10:59:29)

Offline

#46 2017-05-19 11:51:21

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

j'ai corrigé le code mais tu as du le copier avant....
dans l'url de demande c'est le session token  pas le user token.
désolé...

    /*****get PC************/

    $ch = curl_init();
    $url=$api_url . "/User/";
    $url .= "?Content-Type=%20application/json&app_token=".$app_token ."&session_token=".$sess_token;
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $json = curl_exec($ch);
    curl_close ($ch);
    $obj = json_decode($json,true);

    print_r($obj);

    die(" fin");


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#47 2017-05-19 11:54:31

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

Okay, ça fonctionne !
Par contre il me ressort un tableau conséquent et compliqué à lire.
Y a-t-il une possibilité pour trier tout ça ? Où ça a peu d'importance pour ajouter la nouvelle machine à Zabbix ?

Offline

#48 2017-05-19 14:00:21

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

pour lire plus facilement le tableau :


/*****get PC************/

$ch = curl_init();
$url=$api_url . "/User/";
$url .= "?Content-Type=%20application/json&app_token=".$app_token ."&session_token=".$sess_token;
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json,true);

//on fait une boucle pour tous les PC;
foreach ($obj as $computer)
{
    echo "<br/>********".$computer['name']."**********<br/>";
//pour du debug on affighe le contenu de chaque PC mais en fait il faut simplement l'ajouter dans zabbix s'il n'existe pas supprimer la ligne print_r($computer) pour un affichage plus light;

print_r($computer);
    // Il faut mettre la partie qui appelle ZABBIX ICI mais je ne connais pas zabbix et je ne sais pas faire....;

}
die("<br/>fin");

l'objectif était de recuperer la liste pour l'injecter dans zabbix, donc je n'ai pas mis en forme le tableau  $computer.


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

#49 2017-05-19 14:09:19

slap
Member
Registered: 2017-05-15
Posts: 46

Re: Unification du parc GLPI et Zabbix

D'accord merci !

Comment savoir si le pc existe déjà dans Zabbix ou pas ? est-ce que c'est du coté de Zabbix ?
Pour ce qui est du script d'ajout à Zabbix sais-tu si c'est aussi en PHP ?

En tout cas je te remercie grandement pour toute l'aide que tu m'as apporté.

Last edited by slap (2017-05-19 14:20:32)

Offline

#50 2017-05-19 14:56:14

LaDenrée
HELPER
Registered: 2012-11-19
Posts: 6,145

Re: Unification du parc GLPI et Zabbix

pour zabbix il y a l'info ici :
https://www.zabbix.com/documentation/2.2/manual/api

ça se passe dans meme script  au lieu d'afficher le PC : on s'authentifie sur zabbix avec le mot de passe et ID zabbix et on récupère un jeton zabbix ( attention de pas confondre avec celui de glpi ..!)

avec le jeton zabbix pour chaque pc de la liste glpi on demande à zabbix s'il existe , s'il n'existe pas on le cree

attention le code peut paraitre compliqué à cause des bascules d'une api à l'autre.


Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1  Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6

Offline

Board footer

Powered by FluxBB