Объяснение плагина check_megaraid_sas nagios

Может ли кто-нибудь объяснить следующий кусок кода в https://github.com/simondeziel/custom-nagios-plugins/blob/master/plugins/check_megaraid_sas. (строка № 220-223) Почему этот код есть

} elsif ( $slotnumber != 255 ) {
            $pdbad++;
            $status = 'CRITICAL';
        }

1 ответ

Имеет смысл взглянуть на полный раздел:

PDISKS: while (<PDLIST>) {
        if ( m/Slot Number\s*:\s*(\d+)/ ) {
            $slotnumber = $1;
            $pdcount++;
        } elsif ( m/(\w+) Error Count\s*:\s*(\d+)/ ) {
            if ( $1 eq 'Media') {
                $mediaerrors += $2;
            } else {
                $othererrors += $2;
            }
        } elsif ( m/Predictive Failure Count\s*:\s*(\d+)/ ) {
            $prederrors += $1;
        } elsif ( m/Firmware state\s*:\s*(\w+)/ ) {
            $fwstate = $1;
            if ( $fwstate eq 'Hotspare' ) {
                $hotsparecount++;
            } elsif ( $fwstate eq 'Online' ) {
                # Do nothing
            } elsif ( $fwstate eq 'Unconfigured' ) {
                # A drive not in anything, or a non drive device
                $pdcount--;
            } elsif ( $slotnumber != 255 ) {
                $pdbad++;
                $status = 'CRITICAL';
            }
        }
} #PDISKS

Этот раздел перебирает список PD (первичных дисков?), И я предполагаю, что этот выходной файл / программа содержит читабельное состояние для каждого подключенного устройства. Код просматривает каждую строку и выполняет некоторые действия в зависимости от содержимого этой строки:

$slotnumber назначается всякий раз, когда есть Slot Number : ... в содержании PDLIST, Смотря на логику, если есть Firmware state линия, которая не Hotspare, Online или же Unconfiguredи $slotnumber не 255, то что-то пошло не так и статус считается CRITICAL, Количество плохих ПД ($pdbad) затем увеличивается на единицу.

Другие вопросы по тегам