No GWOS Community Edition é chato configurar o RRDTool para cada AIC.
O gráfico de utilização de rede é extremamente chato de criar, tanto o comando de criação do gráfico quanto o de atualização. Então como solucionei: encapsulamento de plugin.
Estranho né? Mas vou explicar.
O plugin para Nagios que encontrei me dava a seguinte saída:
/usr/local/groundwork/nagios/libexec/check_snmp_int.pl -n eth0 -H 10.1.112.1 -C 'public' -k -Y --label -w 1850,1950 -c 1951,1990 -B
eth0:UP (in=1084.1Kbps/out=9.6Kbps):1 UP: OK
eth0:UP (in=1084.1Kbps/out=9.6Kbps):1 UP: OK
Mas isto não me dá saída de performance para a plotagem do gráfico.
Então, criei um outro plugin chamado 'check_interfaces_gwos.pl' e nele o seguinte conteúdo:
---
#!/usr/bin/perl
($opt_host,
$opt_comm, $opt_if, $opt_warn, $opt_crit) = @ARGV;
# ---
Variables prog --- #
our
$path="/usr/local/groundwork/nagios/libexec/";
#our
@DIV=();
our $cmd;
#our $input;
#our $output;
#our
$speed;
# --- Var test --- #
if($#ARGV<2){
print "ERROR - Check your parameters\n";
exit(3);
}
# --- Run command --- #
my
$cmd=`$path/check_snmp_int.pl -n $opt_if -H $opt_host -C '$opt_comm'
-k -Y --label -w $opt_warn -c $opt_crit -B`;
chomp($cmd);
#DEBUG:
eth0:UP (in=409.7Kbps/out=288.6Kbps):1 UP: OK
if($cmd
=~m/in=([\d\.]+)([K|M|G]bps).+out=([\d\.]+)[K|M|G]bps(.+)/){
my $status=$4;
print
"$cmd|in=$1Kbps;;;0; out=$3Kbps;;;0;\n";
if($status=~"CRITICAL"){
exit(2);
}
if($status=~"WARNING"){
exit(1);
}
if($status=~"OK"){
exit(0);
}
exit(3);
}
else {
print "$cmd\n";
exit(2);
}
---
Logo tinha a seguinte saída:
eth0:UP (in=1329.3Kbps/out=10.7Kbps):1 UP: OK|in=1329.3Kbps;;;0; out=10.7Kbps;;;0;
Então foi só criar o gráfico no GWOS, conforme segue:
Graph
Label:
|
Interface
Bandwidth in Kbps
|
Service:
|
IF-Bandwidth
|
Use
Service as a Regular Expression
|
OFF
|
Host:
|
*
|
Status
Text Parsing Regular Expression:
|
|
Use
Status Text Parsing instead of Performance Data
|
OFF
|
RRD
Name
|
/usr/local/groundwork/rrd/$HOST$_$SERVICE$.rrd
|
RRD
Create Command
|
$RRDTOOL$
create $RRDNAME$ --step 300 --start n-1yr
$LISTSTART$DS:$LABEL#$:GAUGE:900:U:U$LISTEND$
RRA:AVERAGE:0.5:1:8640 RRA:AVERAGE:0.5:12:9480
|
RRD
Update Command
|
$RRDTOOL$
update $RRDNAME$ -t $LABELLIST$ $LASTCHECK$:$VALUELIST$ 2>&1
|
Custom
RRDtool Graph Command
|
''
|
Enable
|
ON
|