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

#51 2017-05-19 14:58:23

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

Re: Unification du parc GLPI et Zabbix

D'accord, merci.

Je vais regarder tout ça et je vais essayé de m'y retrouver..

Offline

#52 2017-05-22 11:47:42

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

Re: Unification du parc GLPI et Zabbix

Bonjour,

Je me suis penché sur la partie Zabbix du script et j'avoue que je suis un peu perdu..
Je ne connais pas non plus l'API Zabbix mais peut être pouvez-vous me renseigner sur différents points.
- Écrire du JSON dans un script PHP
- Comparer les liste GLPI avec celle de Zabbix
- Ajouter la machine manquante.

Je visualise mal le découpage et les différentes parties du script, et peu d'informations sont disponibles la dessus.
J'ai regardé la documentation Zabbix que vous m'avez fourni précédemment, mais rien de très concluant de mon côté..

Je suis désolé de vous déranger avec ça, mais une aide supplémentaire me ferai bien avancer.

Offline

#53 2017-05-22 11:57:26

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

Re: Unification du parc GLPI et Zabbix

Écrire du JSON dans un script PHP

$json='{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "'.$ZABBIX_ADMIN_LOGIN.'",
        "password":  "'.$ZABBIX_ADMIN_PW.'"
    },
    "id": 1,
    "auth": null
}';


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $zabbix_api_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);

curl_exec($ch);


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

#54 2017-05-22 14:03:46

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

Re: Unification du parc GLPI et Zabbix

Merci, il faut que je me renseigne sur curl.

Offline

#55 2017-05-24 09:05:05

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

Re: Unification du parc GLPI et Zabbix

Bonjour,
je bloque sur un point au niveau du json et des tokens.
Ils disent que le code est censé envoyer une réponse sous la forme :

{
    "jsonrpc": "2.0",
    "result": "0424bd59b807674191e7d77572075f33",
    "id": 1
}

Je ne comprend pas ou dois-je récupérer cette réponse et/ou comment l'appeler dans mon script PHP.
As-tu une idée ? smile

Offline

#56 2017-05-24 09:15:28

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

Re: Unification du parc GLPI et Zabbix

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $zabbix_api_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
//avec la ligne suivante curl retournera la valeur resultat ou false si erreur
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json=curl_exec($ch);
curl_close ($ch);
// returned json string will look like this: {"code":1,"data":"OK"}
echo "<br/>resultat en json<br/>";
print_r($json);

$obj = json_decode($json,true);

echo "<br/>resultat JSON converti en une variable PHP <br/>";
print_r($obj);


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

#57 2017-05-24 10:16:44

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

Re: Unification du parc GLPI et Zabbix

$zabbix_api_url="https://10.0.240.6/";
$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
}';



$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);

Il me retourne:

Resultat en JSON: bool(false)
Resultat JSON converti en une variable PHP: NULL

Offline

#58 2017-05-24 10:30:02

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

Re: Unification du parc GLPI et Zabbix

c'est l'url qui n'est pas bonne

$zabbix_api_url="https://10.0.240.6/api_jsonrpc.php";

essayez directement dans votre navigateur pour vois si vous avez une réponse


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

#59 2017-05-24 10:33:48

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

Re: Unification du parc GLPI et Zabbix

vous avez la doc zabbix ici
https://www.zabbix.com/documentation/2.2/manual/api

il est précisé qu'il faut aussi un header avec content type :


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

#60 2017-05-24 10:35:38

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

Re: Unification du parc GLPI et Zabbix

Dans mon navigateur, l'URL: https://10.0.240.6/api_jsonrpc.php me retourne une page vide.
Problème d'API ?

Offline

#61 2017-05-24 10:41:17

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

Re: Unification du parc GLPI et Zabbix

l'ip pointe vers la racine ou vers zabbix ?
l'url pourrait être comme ça mais je ne sais pas comment vous l'avez installé.

https://10.0.240.6/zabbix/api_jsonrpc.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

#62 2017-05-24 10:44:19

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

Re: Unification du parc GLPI et Zabbix

La première URL est la bonne mais c'est une page vide.
En ce qui concerne le header, comment l'intégrer au script?

POST https://10.0.240.6/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc

{"jsonrpc":"2.0","method":"apiinfo.version","id":1,"auth":null,"params":{}}

Offline

#63 2017-05-24 11:00:20

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

Re: Unification du parc GLPI et Zabbix

je le ferais dans un tableau $Zabbix_headers que je passerais curl_setopt($ch, CURLOPT_HTTPHEADER, $Zabbix_headers);

$Zabbix_headers=array('Content-Type: application/json-rpc');

mais vous n'avez pas réussi à le faire avec glpi...
vous pouvez tenter dans l'url, sur un malentendu ça pourrait peut être marcher:

https://10.0.240.6/api_jsonrpc.php?Content-Type=%20application/json-rpc

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

#64 2017-05-24 18:42:24

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

Re: Unification du parc GLPI et Zabbix

en admettant que l'url soit la bonne, ci dessous une page php pour tester votre API zabbix.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- la denree -2017-  -->
<head>
    <title>TEST API</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="generator" content="Bluefish 2.2.7" />
    <meta name="Keywords" content="zabbix test," />
    <meta name="Description" content="utilisation api zabbix" />
    <meta http-equiv="X-UA-Compatible" content="IE=8" />
    <meta http-equiv="pragma" content="no-cache" />
    <meta http-equiv="cache-control" content="no-cache" />


</head>
<body>
<h1>test api zabbix</h1>
<?php


$uri = "https://10.0.240.6/zabbix/api_jsonrpc.php";
$username = "admin";
$password= "zabbix";

function expand_arr($array) {    
    foreach ($array as $key => $value) {
        if (is_array($value)) {            
            echo "<i>".$key."</i>:<br>";
            expand_arr($value);
            echo "<br>\n";
        } else {            
            echo "<i>".$key."</i>: ".$value."<br>\n";
        }        
    }
}

function json_request($uri, $data) {
    $json_data = json_encode($data);    
    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, $uri);
    curl_setopt($c, CURLOPT_CUSTOMREQUEST, "POST");                                                  
    curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($c, CURLOPT_POST, $json_data);
    curl_setopt($c, CURLOPT_POSTFIELDS, $json_data);
    curl_setopt($c, CURLOPT_HTTPHEADER, array(                                                                          
        'Content-Type: application/json',                                                                                
        'Content-Length: ' . strlen($json_data))                                                                       
    );
    curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);    
    $result = curl_exec($c);
    
    /* Uncomment to see some debug info
    echo "<b>JSON Request:</b><br>\n";
    echo $json_data."<br><br>\n";

    echo "<b>JSON Answer:</b><br>\n";
    echo $result."<br><br>\n";

    echo "<b>CURL Debug Info:</b><br>\n";
    $debug = curl_getinfo($c);
    echo expand_arr($debug)."<br><hr>\n";
    */

    return json_decode($result, true);
}

function zabbix_auth($uri, $username, $password) {
    $data = array(
        'jsonrpc' => "2.0",
        'method' => "user.login",
        'params' => array(
            'user' => $username,
            'password' => $password
        ),
        'id' => "1"
        
    );    
    
    $response = json_request($uri, $data);    
    return $response['result'];
}

function zabbix_get_hostgroups($uri, $authtoken) {
    $data = array(
        'jsonrpc' => "2.0",
        'method' => "host.get",
        'params' => array(
            //'output' => "host",
            
        ),
        'id' => "2",
        'auth' => $authtoken
    );    
    $response = json_request($uri, $data);    
    print_r($response['host']);
    return $response['result'];
}

$authtoken = zabbix_auth($uri, $username, $password);
echo "<br/>le jeton de session zabbix est : ".$authtoken."<br/>";
expand_arr(zabbix_get_hostgroups($uri, $authtoken));

?>


</body>
</html>

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

#65 2017-05-26 09:40:43

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

Re: Unification du parc GLPI et Zabbix

J'ai un problème au niveau de l'API, je ne comprend pas, j'ai l'impression qu'elle n'est pas installée sur mon serveur Zabbix.. je ne trouve aucune trace de api_jsonrpc.php..
La page me renvoie uniquement le code html, l'URL ne doit pas être la bonne.
Je ne sais pas d'ou vient ce problème d'API.

Last edited by slap (2017-05-26 09:41:24)

Offline

#66 2017-05-26 09:45:58

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

Re: Unification du parc GLPI et Zabbix

voyez sur les forums 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

#67 2017-06-15 10:28:14

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

Re: Unification du parc GLPI et Zabbix

Salut,

je reviens vers toi après avoir avancé coté ZABBIX.
Il ne me manque plus que la partie d'ajout des machines a ZABBIX.
Cependant j'ai un souci quand je récupère les machines de GLPI.

Je voudrai récupérer les machines d'une seule entité et plusieurs paramètres de la machine GLPI comme:
- Le nom
- L'IP
Et si les machines n'ont pas d'ip, ne pas les ajouter à la liste.


Si tu as des informations la dessus je suis preneur smile

Last edited by slap (2017-06-16 10:03:37)

Offline

#68 2017-06-16 14:14:45

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

Re: Unification du parc GLPI et Zabbix

Up

Offline

#69 2017-06-17 14:20:32

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

Re: Unification du parc GLPI et Zabbix

pour récupérer la liste des ordinateurs d'une entité :

$url=$api_url . "/search/Computer/?is_deleted=0&criteria[0][field]=80&criteria[0][searchtype]=0&criteria[0][value]=".$my_entity_name;


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

#70 2017-06-19 09:27:41

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

Re: Unification du parc GLPI et Zabbix

Il ne me renvoi pas d'erreur mais la liste récupérée n'est pas bonne:
- 0
- 0
- 1
- ASC
- 0--1/0

As-tu une idée pour récupérer les PC avec une adresse IP ?

Offline

#71 2017-06-19 10:19:28

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

Re: Unification du parc GLPI et Zabbix

il n'y a aucun pc qui répond au critère. vois avec le libellé de l'entité qui ne doit pas correspondre.

pour  l'ip je ne me suis pas penché dessus, je n'ai pas trop le temps ( et comme je n'en ai pas besoin pour moi ....)
je n'ai pas trouvé les liens entre computer, networkdevices, ipdresses, networknames  etc...


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

#72 2017-06-19 10:35:29

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

Re: Unification du parc GLPI et Zabbix

J'ai essayé plusieurs libellé, je vais continuer a essayer.

D'accord, je vois.. il n'y a vraiment pas beaucoup d'infos pour l'IP ..

Last edited by slap (2017-06-19 10:41:44)

Offline

#73 2017-06-19 10:37:43

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

Re: Unification du parc GLPI et Zabbix

il faut bien sur ajouter : session_token, apptoken etc...


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

#74 2017-06-19 10:42:29

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

Re: Unification du parc GLPI et Zabbix

Quand je met un nom autre que le nom de l'entité, il me dit que le session token est manquant, alors que non.

$url=$glpi_api_url . "/search/Computer/?is_deleted=0&criteria[0][field]=80&criteria[0][searchtype]=0&criteria[0][value]=".$my_entity_name;
$url .= "&Content-Type=%20application/json&app_token=".$app_token ."&session_token=".$sess_token;

Last edited by slap (2017-06-19 10:43:21)

Offline

#75 2017-06-19 11:18:55

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

Re: Unification du parc GLPI et Zabbix

si vous faites un
echo "<br/> api url : ".$url."<br/> ";

l'url est bien complète avec vos jetons ?


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