Объяснение плагина 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
) затем увеличивается на единицу.