1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| #!/usr/bin/perl
## http://www.wtcs.org/snmp4tpc/FILES/Tools/SNMPUTIL/SNMPUTIL.zip
## http://ftp.sunet.se/pub/network/monitoring/rrdtool/rrdtool-1.0.40.x86distr.zip-5.8.zip
## gemaakt door: Erik de Mare
## email Erik@oezie.org
@hosts = ("10.0.11.3","10.0.11.2","10.0.11.7","10.0.11.1");
while(true){
foreach (@hosts){
$host = $_;
$tijd = localtime(time);
print "$tijd\n";
$walk = `snmputil walk $host public .1.3.6.1.2.1.2.2.1.1`;
while($walk =~ /Integer32 (\d+)/g){
$if = $1;
$status = `snmputil get $host public .1.3.6.1.2.1.2.2.1.7.$if`;
$status =~ /Integer32 (\d)/g;
$up = $1;
if ($up == 1){
$rrdfile = "traffic-$host-$if.rrd";
$image = "traffic-$host-$if";
if (!-e $rrdfile){
`rrdtool.exe create $rrdfile --step 300 DS:in:COUNTER:600:0:U DS:out:COUNTER:600:0:U RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:6:700 RRA:AVERAGE:0.5:24:775 RRA:AVERAGE:0.5:288:797 RRA:MAX:0.5:1:600 RRA:MAX:0.5:6:700 RRA:MAX:0.5:24:775 RRA:MAX:0.5:288:797`;
}
$in = `snmputil get $host public .1.3.6.1.2.1.2.2.1.10.$if`;
$in =~ /Counter32 (\d+)/;
$in = $1;
print "$in\n";
$out = `snmputil get $host public .1.3.6.1.2.1.2.2.1.16.$if`;
$out =~ /Counter32 (\d+)/;
$out = $1;
print "$out\n";
`rrdtool.exe update $rrdfile N:$in:$out`;
`rrdtool.exe graph $image-day.png -s -1D --width=600 --height=200 --lazy --imgformat=PNG --vertical-label=Byte/s --title=Daily DEF:in=$rrdfile:in:AVERAGE DEF:out=$rrdfile:out:AVERAGE AREA:in#00CC00:\"Traffic in \" GPRINT:in:LAST:\"%5.2lf %sB/s\" GPRINT:in:AVERAGE:\"Average %6.2lf %sB/s\" GPRINT:in:MAX:\"Maximum %6.2lf %sB/s\" CDEF:totaalin=PREV,UN,in,300,*,PREV,in,300,*,+,IF GPRINT:totaalin:MAX:\"Totaal %6.2lf %sB\\n\" LINE1:out#0000FF:\"Traffic out\" GPRINT:out:LAST:\"%5.2lf %sB/s\" GPRINT:out:AVERAGE:\"Average %6.2lf %sB/s\" GPRINT:out:MAX:\"Maximum %6.2lf %sB/s\" CDEF:totaalout=PREV,UN,out,300,*,PREV,out,300,*,+,IF GPRINT:totaalout:MAX:\"Totaal %6.2lf %sB\\n\" COMMENT:\"$tijd\"`;
`rrdtool.exe graph $image-week.png -s -1W --width=600 --height=200 --lazy --imgformat=PNG --vertical-label=Byte/s --title=Weekly DEF:in=$rrdfile:in:AVERAGE DEF:out=$rrdfile:out:AVERAGE AREA:in#00CC00:\"Traffic in \" GPRINT:in:LAST:\"%5.2lf %sB/s\" GPRINT:in:AVERAGE:\"Average %6.2lf %sB/s\" GPRINT:in:MAX:\"Maximum %6.2lf %sB/s\" CDEF:totaalin=PREV,UN,in,1800,*,PREV,in,1800,*,+,IF GPRINT:totaalin:MAX:\"Totaal %6.2lf %sB\\n\" LINE1:out#0000FF:\"Traffic out\" GPRINT:out:LAST:\"%5.2lf %sB/s\" GPRINT:out:AVERAGE:\"Average %6.2lf %sB/s\" GPRINT:out:MAX:\"Maximum %6.2lf %sB/s\" CDEF:totaalout=PREV,UN,out,1800,*,PREV,out,1800,*,+,IF GPRINT:totaalout:MAX:\"Totaal %6.2lf %sB\\n\" COMMENT:\"$tijd\"`;
`rrdtool.exe graph $image-month.png -s -1M --width=600 --height=200 --lazy --imgformat=PNG --vertical-label=Byte/s --title=Monthly DEF:in=$rrdfile:in:AVERAGE DEF:out=$rrdfile:out:AVERAGE AREA:in#00CC00:\"Traffic in \" GPRINT:in:LAST:\"%5.2lf %sB/s\" GPRINT:in:AVERAGE:\"Average %6.2lf %sB/s\" GPRINT:in:MAX:\"Maximum %6.2lf %sB/s\" CDEF:totaalin=PREV,UN,in,7200,*,PREV,in,7200,*,+,IF GPRINT:totaalin:MAX:\"Totaal %6.2lf %sB\\n\" LINE1:out#0000FF:\"Traffic out\" GPRINT:out:LAST:\"%5.2lf %sB/s\" GPRINT:out:AVERAGE:\"Average %6.2lf %sB/s\" GPRINT:out:MAX:\"Maximum %6.2lf %sB/s\" CDEF:totaalout=PREV,UN,out,7200,*,PREV,out,7200,*,+,IF GPRINT:totaalout:MAX:\"Totaal %6.2lf %sB\\n\" COMMENT:\"$tijd\"`;
`rrdtool.exe graph $image-year.png -s -1Y --width=600 --height=200 --lazy --imgformat=PNG --vertical-label=Byte/s --title=Year DEF:in=$rrdfile:in:AVERAGE DEF:out=$rrdfile:out:AVERAGE AREA:in#00CC00:\"Traffic in \" GPRINT:in:LAST:\"%5.2lf %sB/s\" GPRINT:in:AVERAGE:\"Average %6.2lf %sB/s\" GPRINT:in:MAX:\"Maximum %6.2lf %sB/s\" CDEF:totaalin=PREV,UN,in,86400,*,PREV,in,86400,*,+,IF GPRINT:totaalin:MAX:\"Totaal %6.2lf %sB\\n\" LINE1:out#0000FF:\"Traffic out\" GPRINT:out:LAST:\"%5.2lf %sB/s\" GPRINT:out:AVERAGE:\"Average %6.2lf %sB/s\" GPRINT:out:MAX:\"Maximum %6.2lf %sB/s\" CDEF:totaalout=PREV,UN,out,86400,*,PREV,out,86400,*,+,IF GPRINT:totaalout:MAX:\"Totaal %6.2lf %sB\\n\" COMMENT:\"$tijd\"`;
}
}
}
sleep 300;
} |