Записки сисадмина

Или помойное ведро идей


Выделенные сервера от $130
VDS/VPS от $20

Удаленный мониторинг хардварного 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 как указано в начале статьи.

22.07.2009 Автор admin | HOWTO, Monitoring | one comment

1 комментарий »

  1. Есть еще такая штука, как Einarc – http://www.inquisitor.ru/doc/einarc – делает примерно то же самое, что описано, но полностью само и для всех контроллеров, а не только специфично для LSI.

    По сути, вызов для Nagios в этом случае превращается в

    einarc logical list | grep -v ‘normal$’ | cut -f1 || echo OK

    Эта команда выведет или список развалившихся массивов, или OK.

    Комментарий от Alex | 23 сентября 2009

Оставить комментарий