Удаленный мониторинг хардварного RAID DELL Perc 6/i (LSI) с помощью Nagios и SNMPd
Здесь можно узнать, как мониторить удаленно хардварный RAID DELL Perc 6/i (чип LSI) с помощью утилиты MegaCLI, самописных скриптов, SNMPd и Nagios в Linux (CentOS).
О том, как подготовить Nagios и SNMPd, рассказано в статье о мониторинге софтварного RAID. Туда добавить мне нечего, можно скопипастить инфу оттуда.
А вот скрипт raid_status.pl несколько изменился. Для его корректной работы нужно скачать утилитку LSI MegaCLI for Linux. Так же я ставил симлинк /opt/MegaRAID/MegaCli/MegaCli64 -> /usr/sbin/MegaCLI:
# ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/sbin/MegaCli
Теперь надо подготовить два скрипта.
1. Скрипт AWK для приведения выдачи утилиты MegaCLI в удобочитаемый формат.
(С)одрал не помню откуда. Положить его в /root/scripts/analysis.awk:
# This is a little AWK program that interprets MegaCLI output
/Device Id/ { counter += 1; device[counter] = $3 }
/Firmware state/ { state_drive[counter] = $3 }
/Inquiry/ { name_drive[counter] = $3 » » $4 » » $5 » » $6 }
END {
for (i=1; i<=counter; i+=1) printf ( «Device %02d (%s) status is: %s <br/>\n», device[i], name_drive[i], state_drive[i]); }
2. Скрипт парсинга вывода предыдущего скрипта
Это уже писано лично ) Положить в /root/scripts/raid_status.pl
#!/usr/bin/perl
open $f,’/usr/sbin/MegaCli -PDList -aALL | /bin/awk -f /root/scripts/analysis.awk |’;
$numraid=0;
$ok=1;
%dev=();
while (<$f>) {
if (/^Device\s+(\d+)\s+\(([^)]+)\)\s+status is: (\w+)/) {
($d,$m,$s)=($1,$2,$3);
if ($s !~ /Online/i) {
$ok=0;
$dev{$d}=$s;
}
$numraid++;
}
}
close $f;
if ($numraid != 6) {
print «FAILURE: numraid !=6″;
exit;
}
if ($ok!=1) {
$s=»;
foreach (keys(%dev)) {
$s.=»$_ : «.$dev{$_}.’; ‘;
}
print «FAILURE: $s»;
exit;
}
print «OK»;
Убедиться что скрипт выдает ОК. Настроить nagios как указано в начале статьи.
Есть еще такая штука, как Einarc – http://www.inquisitor.ru/doc/einarc – делает примерно то же самое, что описано, но полностью само и для всех контроллеров, а не только специфично для LSI.
По сути, вызов для Nagios в этом случае превращается в
einarc logical list | grep -v ‘normal$’ | cut -f1 || echo OK
Эта команда выведет или список развалившихся массивов, или OK.
Комментарий от Alex | 23 сентября 2009