Здесь можно узнать, как мониторить удаленно хардварный RAID DELL Perc 6/i (чип LSI) с помощью утилиты MegaCLI, самописных скриптов, SNMPd и Nagios в Linux (CentOS).
О том, как подготовить Nagios и SNMPd, рассказано в статье о . Туда добавить мне нечего, можно скопипастить инфу оттуда.
А вот скрипт raid_status.pl несколько изменился. Для его корректной работы нужно скачать утилитку . Так же я ставил симлинк /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\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 как указано в начале статьи.