Obrigado, mas, infelizmente, não engana. Mas fiz outra mudança:
} elsif ($state =~ /(degrad|regen|rebuild)/i ) {
$warn++;
} elsif ($state =~ /(non-critical)/i ) {
$ok++;
Eu apago 'non-critical' em WARN e adiciono mais uma parte no ciclo, onde eu escrevi que para 'non-critical' deve haver $ ok ++.
Ele faz o truque. Mas o alerta dos nagios não se esconde. :( Mas isso mostra que tudo OK:
OK: Controller0=Ok/Ready [ Battery0=Ok/Ready Vdisk0=Ok/Ready 0 [ 0:0:0=Non-Critical/Online 0:0:1=Non-Critical/Online ] Vdisk1=Ok/Ready 1 [ 0:0:2=Non-Critical/Online 0:0:3=Non-Critical/Online 0:0:4=Non-Critical/Online 0:0:5=Non-Critical/Online ] ]
Eu corro o plugin com Devel :: Trace e o que eu vejo:
perl -T -d:Trace /usr/lib64/nagios/plugins/mon/check_dell_omreport.pl
......
some stdout
......
>> /usr/lib64/nagios/plugins/mon/check_dell_omreport.pl:205: for ( $vdisk_ndx=0; $vdisk_ndx < @{$vdisk} ; $vdisk_ndx++ ) {
>> /usr/lib64/nagios/plugins/mon/check_dell_omreport.pl:256: $message .= " ] ";
>> /usr/lib64/nagios/plugins/mon/check_dell_omreport.pl:163: for ( $ctrlr_ndx=0; $ctrlr_ndx < @{$controller} ; $ctrlr_ndx++ ) {
>> /usr/lib64/nagios/plugins/mon/check_dell_omreport.pl:259: if ( $crit != 0 ) {
>> /usr/lib64/nagios/plugins/mon/check_dell_omreport.pl:266: print "OK:$message\n";
OK: Controller0=Ok/Ready [ Battery0=Ok/Ready Vdisk0=Ok/Ready 0 [ 0:0:0=Non-Critical/Online 0:0:1=Non-Critical/Online ] Vdisk1=Ok/Ready 1 [ 0:0:2=Non-Critical/Online 0:0:3=Non-Critical/Online 0:0:4=Non-Critical/Online 0:0:5=Non-Critical/Online ] ]
>> /usr/lib64/nagios/plugins/mon/check_dell_omreport.pl:267: exit(0);
exit (0) está OK. Mas o alerta está aqui. :( E eu faço uma força para verificar isso.