Bonjour,

Je ne sais pas si je suis dans le bon forum dans ce cas merci de me modérer

Tous les plugins pour avoir la température des CPU ne me donne pas une bonne mise en forme du résultat.
exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
snmpget -v2c -c public host .1.3.6.1.4.1.2021.13.16.5.1.3.1
UCD-SNMP-MIB::ucdExperimental.16.5.1.3.1 = Gauge32: 42000
J'ai trouvé un script perl déjà tout fait mais je n'ai pas rèeussi à le faire fonctionner j'ai toujours l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
check_snmp_temperature.pl -H host -2 -C public   -D .1.3.6.1.4.1.2021.13.16.2.1.3  -i 1000C -w 60 -c 80
Specify system type (-T) OR base SNMP OIDs for names (-N) and data (-D) tables OR exact list of sensor names (-n) and data OIDs (-d) !
J'ai donc pris mon courage après avoir lu la doc de djibril merci à lui : http://djibril.developpez.com/tutori...n-nagios-perl/

Voici mon script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl -w
use strict;
use Net::SNMP;
 
my $host= "host" ;
my $community = "public" ;
# requires a hostname and a community string as its arguments
(my $session, my $error) = Net::SNMP->session(Hostname => $host,
                                       Community => $community);
 
die "session error: $error" unless ($session);
 
# Check OID temp CPU
#  1.3.6.1.4.1.2021.13.16.5.1.3.1
my $result = $session->get_request("1.3.6.1.4.1.2021.13.16.5.1.3.1");
print "Flag Result $result\n";
die "request error: ".$session->error unless (defined $result);
 
$session->close;
print "CPU Temp : ".$result->{"1.3.6.1.4.1.2021.13.16.5.1.3.1"}."\n"
Voici ce que j'obtiens :
Flag Result HASH(0x8081d70)
CPU Temp : 45000

Mon soucis était prévisible car je pointe sur l'OID. Je ne comprend comment obtenir la valeur lisible de $result afin de la mettre en forme de style "SNMP OK CPU TEMP 45 C"


Merci de votre aide.