Projet

Général

Profil

Révision 4f432c59

ID4f432c597c8040a92a8e0a0a0951dc674fa8b633
Enfant 23eac3fd

Ajouté par Benjamin Ryzman il y a plus de 13 ans

SNMP plugin to graph Brocade NetIron temperatures per module

Voir les différences:

plugins/network/snmp__brocade_temp_module_
1
#!/usr/bin/perl -w
2

  
3
=head1 MAGIC MARKERS
4

  
5
  #%# family=snmpauto
6
  #%# capabilities=snmpconf
7

  
8
=cut
9

  
10
use strict;
11
use Munin::Plugin;
12
use Munin::Plugin::SNMP;
13

  
14
my $DEBUG=$ENV{'MUNIN_DEBUG'};
15

  
16
# This is the snmpwalk:
17
# snAgentTempSensorDescr.1.1 = STRING: "Line module 1, sensor 1 temperature"
18
# snAgentTempSensorDescr.1.2 = STRING: "Line module 1, sensor 2 temperature"
19
# snAgentTempSensorDescr.1.3 = STRING: "Line module 1, sensor 3 temperature"
20
# snAgentTempSensorDescr.1.4 = STRING: "Line module 1, sensor 4 temperature"
21
# snAgentTempSensorDescr.2.1 = STRING: "Line module 2, sensor 1 temperature"
22
# snAgentTempSensorDescr.2.2 = STRING: "Line module 2, sensor 2 temperature"
23
# snAgentTempSensorDescr.2.3 = STRING: "Line module 2, sensor 3 temperature"
24
# snAgentTempSensorDescr.2.4 = STRING: "Line module 2, sensor 4 temperature"
25
# snAgentTempSensorDescr.3.1 = STRING: "Active management module temperature"
26
# snAgentTempSensorDescr.3.2 = STRING: "Active management module temperature"
27
# snAgentTempValue.1.1 = INTEGER: 100
28
# snAgentTempValue.1.2 = INTEGER: 106
29
# snAgentTempValue.1.3 = INTEGER: 82
30
# snAgentTempValue.1.4 = INTEGER: 72
31
# snAgentTempValue.2.1 = INTEGER: 74
32
# snAgentTempValue.2.2 = INTEGER: 102
33
# snAgentTempValue.2.3 = INTEGER: 70
34
# snAgentTempValue.2.4 = INTEGER: 74
35
# snAgentTempValue.3.1 = INTEGER: 78
36
# snAgentTempValue.3.2 = INTEGER: 84
37

  
38
my $brcdIp = '1.3.6.1.4.1.1991';
39
my $snAgentTempTable = "$brcdIp.1.1.2.13.1";
40
my $snAgentTempSensorDescr = "$snAgentTempTable.1.3";
41
my $snAgentTempValue = "$snAgentTempTable.1.4";
42

  
43

  
44
if (defined $ARGV[0] and $ARGV[0] eq "snmpconf") {
45
    print "index   $snAgentTempTable.1.3.\n";
46
    print "require $snAgentTempSensorDescr. [1-9]\n";
47
    print "require $snAgentTempValue. [1-9]\n";
48
    exit 0;
49
}
50

  
51
my $module = 0;
52

  
53
if ($Munin::Plugin::me =~ /_module_(\d+)$/) {
54
    $module = $1;
55
} else {
56
    die "Could not determine module number from ".$Munin::Plugin::me."\n";
57
}
58

  
59
my ($session,$error);
60

  
61
$session = Munin::Plugin::SNMP->session(-translate => [ -nosuchinstance => undef ]);
62

  
63
my $sensor = 1;
64
if ($ARGV[0] and $ARGV[0] eq "config") {
65
    my ($host,undef,$version) = Munin::Plugin::SNMP->config_session();
66

  
67
    print "host_name $host\n" unless $host eq 'localhost';
68
    print "graph_title Module $module
69
graph_args --base 1000 --lower-limit 0
70
graph_vlabel °C
71
graph_category system
72
graph_scale no\n";
73

  
74
    my $descr = undef;
75
    while (defined ($descr = $session->get_single("$snAgentTempSensorDescr.$module.$sensor"))) {
76
        print "sensor$sensor.label $descr\n";
77
        $sensor ++;
78
    }
79
    exit 0;
80
}
81

  
82
my $value = undef;
83
while (defined ($value = $session->get_single("$snAgentTempValue.$module.$sensor"))) {
84
    $value /= 2;
85
    print "sensor$sensor.value $value\n";
86
    $sensor++;
87
}
88
# vim:ft=perl

Formats disponibles : Unified diff