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

#1 2010-05-19 15:54:25

xew
Member
Registered: 2010-03-18
Posts: 1

Pas de communauté avec l'ID 1 sur le serveur => Bug Agent Tracker

Bonjour,

J'ai eu un souci avec l'agent Tracker. Voici ce que j'ai pu identifier jusqu'ici.

Contexte :
GLPI 0.72.3
Plugin tracker (server) : 2.1.3
Agent tracker : 1.5.3

Description :
Lors de l'exécution manuelle de l'agent :

perl tracker_agent.pl

On a en sortie :

Threads version: 1.67
== Discovery devices ==
Use of uninitialized value $_[1] in string eq at
        /home/user/glpi/agent_tracker/inc/tracker_snmp.pm line 167 (#1)
    (W uninitialized) An undefined value was used as if it were already
    defined.  It was interpreted as a "" or a 0, but maybe it was a mistake.
    To suppress this warning assign a defined value to your variables.

    To help you figure out what was undefined, perl will try to tell you the
    name of the variable (if any) that was undefined. In some cases it cannot
    do this, so it also tells you what operation you used the undefined value
    in.  Note, however, that perl optimizes your program and the operation
    displayed in the warning may not necessarily appear literally in your
    program.  For example, "that $foo" is usually optimized into "that "
    . $foo, and the warning will refer to the concatenation (.) operator,
    even though there is no . in your program.

SNMP ERROR: %s.
Use of uninitialized value $error in print at
        /home/user/glpi/agent_tracker/inc/tracker_discovery.pm line 362 (#1)
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
SNMP ERROR: %s.
The file has been successfully uploaded
== Query devices ==
The file has been successfully uploaded

Débug :
L'agent tracker va chercher sur le serveur la liste des communautés SNMP à scanner.
Dans tracker_agent.pl, ligne 158 :

my $xml_file = get_snmp_http($PID,$config);

Puis pour la discovery, lecture du xml, ligne 165 :

my $data = $xml->XMLin($xml_file);

Qui est confié à la fonction discovery_auth, ligne 225 :

$authSNMP_discovery = discovery_auth($data);

Si je comprends bien, cette fonction s'attend à ce qu'il y ait une communauté avec 1 comme ID dans le cas où il y a plusieurs communautés. Dans le fichier inc/tracker_discovery.pm, ligne 95 :

if (ref($data->{discovery}->{authentification}->{1}) eq "HASH") {

Dans mon cas, je n'avais pas de communauté avec l'ID 1 (à cause d'une suppression). Voici le contenu de $data :

$VAR1 = { 
          'agent' => {
                     'threads_query' => '1',
                     'PID' => '01381515002',
                     'fragment' => '50',
                     'core_query' => '1',
                     'logs' => '2',
                     'key' => 'QC2yELnIdAt2DfT4OZGEwYdNQqAuya',
                     'id' => '2',
                     'threads_discovery' => '1',
                     'core_discovery' => '1'
                   },
          'discovery' => {
                         'rangeip' => {
                                      'entity' => '0',
                                      'id' => '2',
                                      'ipend' => '10.XXX.XXX.XXX',
                                      'ipstart' => '10.XXX.XXX.XXX'
                                    },
                         'authentification' => {
                                               '4' => {
                                                      'version' => '1',
                                                      'sec_name' => {},
                                                      'auth_passphrase' => {},
                                                      'community' => 'snmpcommunaute ',
                                                      'sec_level' => {},
                                                      'priv_protocol' => {},
                                                      'priv_passphrase' => {},
                                                      'auth_protocol' => {}
                                                    },
                                               '3' => {
                                                      'version' => '1',
                                                      'sec_name' => {},
                                                      'auth_passphrase' => {},
                                                      'community' => 'public',
                                                      'sec_level' => {},
                                                      'priv_protocol' => {},
                                                      'priv_passphrase' => {},
                                                      'auth_protocol' => {}
                                                    }
                                             }
                       }
        };

La lecture de la liste échoue alors et l'agent se lance dans le scan des plages IP sans connaître les communautés, comme on peut le voir sur la sortie du script ci-dessus.

Solution :
J'ai, pour l'instant mis 3 comme ID dans la fonction discovery_auth, ça fonctionne mais ce n'est pas la bonne solution.

Le redmine du plugin Tracker n'étant plus (il pointe vers Fusion Inventory), je me tourne vers le forum pour savoir quoi faire, et pour laisser une trace du problème. Si quelqu'un pouvait confirmer l'origine du bug et/ou proposer un patch, ce serait sympa.

Merci

Offline

#2 2010-05-19 16:11:41

goneri
Member
Registered: 2007-02-20
Posts: 27
Website

Re: Pas de communauté avec l'ID 1 sur le serveur => Bug Agent Tracker

Salut,

Tracker est maintenant dans le projet FusionInventory. L'agent que tu utilises n'est plus maintenu, il faut switcher sur l'agent FusionInventory.

Offline

Board footer

Powered by FluxBB