Quantcast
Channel: Ocsinventory Q&A - Recent questions without answers
Viewing all articles
Browse latest Browse all 4599

V2.8, XML avec des réponses en octetstring

$
0
0

Bonjour !

Lors d'un inventaire SNMP d'une imprimante HP, j'ai observé des problèmes d'encodage des réponses SNMP dans le fichier XML envoyé au serveur ( formatage des réponses au format octetstring dans les balises XML ) et retour d'un code 500 du serveur OCS

Mon serveur ( V2.8 sur Centos 7.8 2003 ) est configuré avec le modèle d'équipement SNMP suivant :

label + OID suivant :

Imprimante HPDescription1.3.6.1.2.1.1.1.0
Imprimante HPuptime1.3.6.1.2.1.1.3.0
Imprimante HPModel Name1.3.6.1.4.1.11.2.3.9.4.2.1.1.3.1.0
Imprimante HPSerial Number1.3.6.1.4.1.11.2.3.9.4.2.1.1.3.3.0Yes

Les traces ci-dessous sont issues des logs d'un agent ocs inventory V2.8 sur une Centos 7.8 2003 , version de perl  v5.16.3

La MiB HP (HP-LASERJET-COMMON-MIB.mib) est bien le répertoire "/usr/share/snmp/mibs", les droits d'accès sont OK ( similaire au autre mibs )

On peut voir que les balises XML Model Name et Serial Number sont au format OctetString et donc probablement dans le format attendu

On peut observer à la fin des log que le serveur OCS renvoie un code  "500 Internal Server Error"

Les logs :

[Fri Nov 13 22:45:38 2020][debug] sending: <?xml version="1.0" encoding="UTF-8"?>
<REQUEST>
  <CONTENT>
    <snmp_imprimante_hp>
      <Description>HP ETHERNET MULTI-ENVIRONMENT,SN:VNC3S88888,FN:8G44X2Z,SVCID:30157,PID:HP LaserJet MFP M28w</Description>
      <Model Name>01:15:57:32:47:35:35:41</Model Name>
      <Serial Number>01:15:56:4E:43:33:53:38:38:38:38:38</Serial Number>
      <uptime>8 days, 03:58:42.74</uptime>
    </snmp_imprimante_hp>
  </CONTENT>
  <DEVICEID>agentocs-2020-11-13-18-50-24</DEVICEID>
  <QUERY>SNMP</QUERY>
</REQUEST>

[Fri Nov 13 22:45:38 2020][error] Cannot establish communication : 500 Internal Server Error
[Fri Nov 13 22:45:38 2020][debug] [snmpscan] End snmp_end_handler :)
 

Proposition de modification du code des modules

j'ai testé une modification du code perl de  la configuration du paramètre "-translate" de l'objet  Net::SNMP avec la configuration suivante dans les modules SnmpScan.pm et Snmp.pm

-translate   => [-nosuchinstance => 0, -nosuchobject => 0, -octetstring => 0]

code d'origine :

-translate   => [-nosuchinstance => 0, -nosuchobject => 0, ]

voici un exemple :

                # We have an older version v2c ou v1
                ($session, $error) = Net::SNMP->session(
                    -retries     => 1 ,
                    -timeout     => 3,
                    -version     => 'snmpv'.$comm->{VERSION},
                    -hostname    => $device->{IPADDR},
                    -community   => $comm->{NAME},
                    -translate   => [-nosuchinstance => 0, -nosuchobject => 0, -octetstring => 0],
 

j'ai réalise les modifications 2 fois ( fonction snmp V1/V2 et snmp V3 ) dans les modules SnmpScan.pm et Snmp.pm

Après la modification ,le résultats est le suivant dans le fichier de log :

le formatage des réponses SNMP dans les balises XML est correcte ...Toutefois, la réponse du serveur est toujours "Cannot establish communication : 500 Internal Server"

<REQUEST>

  <CONTENT>
    <snmp_imprimante_hp>
      <Description>HP ETHERNET MULTI-ENVIRONMENT,SN:VNC3S88888,FN:8G44X2Z,SVCID:30157,PID:HP LaserJet MFP M28w</Description>
      <Model Name>W2G55A</Model Name>
      <Serial Number>VNC3S88888</Serial Number>
      <uptime>8 days, 06:06:36.83</uptime>
    </snmp_imprimante_hp>
  </CONTENT>
  <DEVICEID>agentocs-2020-11-13-18-50-24</DEVICEID>
  <QUERY>SNMP</QUERY>
</REQUEST>

[Sat Nov 14 00:53:33 2020][error] Cannot establish communication : 500 Internal Server Error
[Sat Nov 14 00:53:33 2020][debug] [snmpscan] End snmp_end_handler :

Les logs sur le serveur OCS

[Sat Nov 14 00:53:33.029221 2020] [perl:error] [pid 1837] [client 192.168.0.26:44192] \nnot well-formed (invalid token) at line 6, column 17, byte 228 at /usr/lib64/perl5/vendor_perl/XML/Parser.pm line 187.\n

Pouvez-vous regarder le problème d'encodage des réponses SNMP dans le fichier XML du client OCS et l'erreur 500 du serveur, et peut être aussi ma proposition de modification du code ! smiley

Cordialement !


Viewing all articles
Browse latest Browse all 4599

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>