2 |
|
|
3 |
|
# |
4 |
|
# i-scream central monitoring system |
5 |
< |
# http://www.i-scream.org.uk |
5 |
> |
# http://www.i-scream.org |
6 |
|
# Copyright (C) 2000-2002 i-scream |
7 |
|
# |
8 |
|
# This program is free software; you can redistribute it and/or |
22 |
|
|
23 |
|
# ----------------------------------------------------------- |
24 |
|
# i-scream graph generation scripts |
25 |
< |
# http://www.i-scream.org.uk |
25 |
> |
# http://www.i-scream.org |
26 |
|
# |
27 |
|
# Generates rrd databases for i-scream data by connecting to |
28 |
|
# the i-scream server and collecting data. |
43 |
|
|
44 |
|
# define variables that will be read from the config |
45 |
|
# nb. keep this insync with the config file! |
46 |
< |
use vars qw{ |
47 |
< |
$imgdir $rrddir |
46 |
> |
use vars qw{ |
47 |
> |
$imgdir $rrddir |
48 |
|
$maxrrdage $maximgage $deleterrds $deleteimgs |
49 |
< |
$hex_slash $hex_underscore |
49 |
> |
$hex_slash $hex_underscore $hex_space $hex_colon $hex_bslash $hex_rbracket |
50 |
> |
$hex_lbracket $hex_plus $hex_hash |
51 |
|
$rrdstep $retry_wait |
52 |
|
$verbose $quiet |
53 |
|
}; |
257 |
|
); |
258 |
|
&updaterrd($machine, "cpu", $date, $rrdstep, \%xmlhash, @data); |
259 |
|
|
260 |
+ |
# uptime |
261 |
+ |
@data = ( "packet.os.uptime:uptime:GAUGE" ); |
262 |
+ |
&updaterrd($machine, "uptime", $date, $rrdstep, \%xmlhash, @data); |
263 |
+ |
|
264 |
|
# mem |
265 |
|
@data = ( "packet.memory.free:free:GAUGE", |
266 |
|
"packet.memory.total:total:GAUGE", |
267 |
+ |
"packet.memory.cache:cache:GAUGE", |
268 |
|
); |
269 |
|
&updaterrd($machine, "mem", $date, $rrdstep, \%xmlhash, @data); |
270 |
|
|
307 |
|
my($mount) = $xmlhash{"packet.disk.p$i.attributes.mount"}; |
308 |
|
$mount =~ s/_/$hex_underscore/g; |
309 |
|
$mount =~ s/\//$hex_slash/g; |
310 |
+ |
$mount =~ s/\\/$hex_bslash/g; |
311 |
+ |
$mount =~ s/ /$hex_space/g; |
312 |
+ |
$mount =~ s/:/$hex_colon/g; |
313 |
|
@data = ( "packet.disk.p$i.attributes.total:total:GAUGE", |
314 |
|
"packet.disk.p$i.attributes.used:used:GAUGE", |
315 |
|
"packet.disk.p$i.attributes.totalinodes:totalinodes:GAUGE", |
323 |
|
$i = 0; |
324 |
|
while(defined $xmlhash{"packet.diskio.p$i.attributes.name"}) { |
325 |
|
my($name) = $xmlhash{"packet.diskio.p$i.attributes.name"}; |
326 |
+ |
$name =~ s/_/$hex_underscore/g; |
327 |
+ |
$name =~ s/\//$hex_slash/g; |
328 |
+ |
$name =~ s/\\/$hex_bslash/g; |
329 |
+ |
$name =~ s/ /$hex_space/g; |
330 |
+ |
$name =~ s/:/$hex_colon/g; |
331 |
|
@data = ( "packet.diskio.p$i.attributes.rbytes:rbytes:GAUGE", |
332 |
|
"packet.diskio.p$i.attributes.wbytes:wbytes:GAUGE", |
333 |
|
); |
339 |
|
$i = 0; |
340 |
|
while(defined $xmlhash{"packet.net.p$i.attributes.name"}) { |
341 |
|
my($name) = $xmlhash{"packet.net.p$i.attributes.name"}; |
342 |
+ |
$name =~ s/_/$hex_underscore/g; |
343 |
+ |
$name =~ s/\//$hex_slash/g; |
344 |
+ |
$name =~ s/\\/$hex_bslash/g; |
345 |
+ |
$name =~ s/ /$hex_space/g; |
346 |
+ |
$name =~ s/:/$hex_colon/g; |
347 |
+ |
$name =~ s/\(/$hex_lbracket/g; |
348 |
+ |
$name =~ s/\)/$hex_rbracket/g; |
349 |
+ |
$name =~ s/\+/$hex_plus/g; |
350 |
+ |
$name =~ s/#/$hex_hash/g; |
351 |
|
@data = ( "packet.net.p$i.attributes.rx:rx:GAUGE", |
352 |
|
"packet.net.p$i.attributes.tx:tx:GAUGE", |
353 |
|
); |
354 |
< |
&updaterrd($machine, "net-$name", $date, $rrdstep, \%xmlhash, |
355 |
< |
@data); |
354 |
> |
&updaterrd($machine, "net-$name", $date, $rrdstep, \%xmlhash, @data); |
355 |
> |
++$i |
356 |
> |
} |
357 |
> |
|
358 |
> |
# mailq |
359 |
> |
$i = 0; |
360 |
> |
while(defined $xmlhash{"packet.mailq.p$i.attributes.name"}) { |
361 |
> |
my($name) = $xmlhash{"packet.mailq.p$i.attributes.name"}; |
362 |
> |
$name =~ s/\s+//g; |
363 |
> |
@data = ( "packet.mailq.p$i.attributes.size:size:GAUGE", |
364 |
> |
); |
365 |
> |
&updaterrd($machine, "mailq-$name", $date, $rrdstep, \%xmlhash, @data); |
366 |
|
++$i |
367 |
|
} |
368 |
|
} |