Problema de aviso do Dell H700 Nagios

2

Eu usei o plugin nagios check_dell_omreport.pl. Tudo funcionou bem até recentemente. Agora há um problema e eu gostaria de me consultar. Talvez alguém possa ajudar. O problema é que a Dell foi adicionada ao Vendor Lock para controladores RAID, e não drives certificados por eles. Em particular, H700 H800. Eu verifiquei cuidadosamente as configurações no meu servidor, tudo é normal. Mas o plug-in verifica os alertas do log de alertas do OMSA. Veja aviso mensagens como esta:

Severity      : Non-Critical
ID            : 2335
Date and Time : Tue Feb 22 21:17:22 2011
Category      : Storage Service
Description   : Controller event log: PD 05(e0x20/s5) is not a
certified drive:  Controller 0 (PERC H700 Integrated)

Assim, apesar do fato de que tudo está OK, o plugin exibe OK e Aviso:

WARNING: 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 ] ]

Estou tentando resolver esse problema por vários dias. Eu rebaixaria o firmware do controlador. Não ajudou. Discos não é possível substituir.

Alguém tem uma ideia de como corrigir esses avisos? Suponho, por mim mesmo, que não há outras maneiras, como tentar editar o script Perl. Não é modificado e aqui está um link para ele:

link

Talvez haja um patch para isso, já escrito por alguém?

    
por Evgeniy 25.02.2011 / 12:48

4 respostas

3

Parece que o código é apenas falso.

a linha 194 do script perl diz:

    } elsif ( $state =~ /non-critical|degrad|charging|learning/i ) {
        $warn++;

Então, se ele detectar "não-crítico" no texto, ele será movido para um aviso.

mudar

    } elsif ( $state =~ /non-critical|degrad|charging|learning/i ) {

para

    } elsif ( $state =~ /degrad|charging|learning/i ) {
    
por 25.02.2011 / 13:08
0

Eu tentei esse plugin e decidi que preferia usar o SNMP diretamente com o check_snmp plugin.

Por exemplo, tenho alguns serviços como:

define service {
        service_description     Dell Controller State
        ...
        check_command           check_snmp!-o 1.3.6.1.4.1.674.10893.1.20.130.1.1.5.1 -s 1
}

define service {
        service_description     Dell Model and SVC Tag
        ...
        check_command           check_snmp!-m MIB-Dell-10892 -o chassisServiceTagName.1,chassisModelName.1

E o comando para referência é:

define command {
        command_name    check_snmp
        command_line    /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -C '$USER3$' $ARG1$
}

A resposta de Pablo para mudar o roteiro parece ser a coisa certa a fazer. Mas acho que vale a pena apenas pegar o MIB, acompanhá-lo e saber exatamente o que você está recebendo.

    
por 25.02.2011 / 14:12
0

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.

    
por 25.02.2011 / 17:03
0

Esta ajuda de patch:

    @@ -239,15 +239,15 @@
                                $progress = "";
                        }
                        $message .= " $an=$state$progress";
-                       if( $state =~ /^ok\/(ready|online)/i ) {
+                       if( $state =~ /^ok\/(ready|online)|non-critical/i ) {
                                $ok++;
-                       } elsif ($state =~ /(degrad|regen|rebuild|non-critical)/i ) {
+                       } elsif ($state =~ /(degrad|regen|rebuild)/i ) {
                                $warn++;
                        } else {
                                $crit++;
                                $message .= "**";
                        }
                        # print STDERR "adisk=$an Status=$adisk->[$adisk_ndx][$adisk_flds->{Status}] State=$adisk->[$adisk_ndx][$adisk_flds->{State}]\n";
                }
                $message .= " ]";
        }

    
por 21.02.2013 / 08:23