Мониторинг за состоянием raid контроллера Adaptec на сервере IBM под debain

Aug 05, 2010 13:45


В предыдущей статье мы учились устанавливать консольную утилиту для работы с Adaptec raid контроллером под debian. К сожалению Adaptec официально поддерживает только несколько rpm-ориентированных дистрибутивов, поэтому статья была нужна. Но сейчас у нас команда

/usr/StorMan/arcconf getconfig 1

Выдаёт полную информацию о контроллере и его состоянии и мы можем научить debain писать нам письма о том, что с raid что-то не то.

cd /usr/StorMan
vim checkraid.pl

Разумеется, каталог в котором будет находиться скрипт у вас может быть другой (у меня такой, потому что я пока не знаю где хранить скрипты). И любимый редактор может быть не vim, а то, что вам ближе по духу, например, nano. Так или иначе, но в свежесозданный файл вы помещаете скрипт следующего содержания:

#!/usr/bin/perl
use Net::SMTP;
$opt=`/usr/StorMan/arcconf getconfig 1 ld | grep «Status of logical device» | grep «Optimal» -c`;
open (FH, «>> /var/log/raidcheck.log»);
if ($opt==0) {
$opt = `/usr/StorMan/arcconf getconfig 1`;
print (FH scalar(localtime));
print (FH » Problem with RAID!\n»);
$date=`exec /bin/date ‘+%F %T’`;
chomp($date);
$smtp = Net::SMTP->new(‘ВАШ СЕРВЕР SMTP’);
$smtp->mail(‘ user@example.com ‘);
$smtp->to(‘user\@example.com’);
$smtp->data();
$smtp->datasend(«To:user\@example.com \n»);
$smtp->datasend(«Subject: raid ТУТ СТОИТ УКАЗАТЬ ИМЯ СЕРВЕРА problem»);
$smtp->datasend(«\n»);
$smtp->datasend(«[$date]Problem with raid on СЕРВЕР ТАКОЙ-ТО!»);
$smtp->datasend(«\n»);
$smtp->datasend(«================== RAID status =================\n$opt\n»);
$smtp->dataend();
$smtp->quit;
print «Problem with raid!\n»;
} else {
print (FH scalar(localtime));
print (FH » Status of raid is optimal\n»);
print «Status of raid is optimal!\n»;
};
close(FH);

В этом скрипте прописать адрес smtp сервера, который без авторизации примет письмо, прописать свой адрес вместо user@example.com и названия хоста поменять на такое, что бы у вас не было сомнений кто пишет вам такие письма. Не забываем говорить Спасибо автору скрипта. Когда всё это редактирование закончено, то сохраняем файл и настраиваем запуск. Создаём файлик /usr/StorMan/checkraid с текстом:

#!/bin/bash
export LD_PRELOAD=»/usr/StorMan/libstdc++-libc6.2-2.so.3″
/usr/StorMan/checkraid.pl

Из этого файла будет вызываться скрипт. У меня пробел в знании bash, поэтому как грамотно в исходном файле укзать это export я не знаю.
chmod +x /usr/StorMan/checkraid.pl

chmod +x /usr/StorMan/checkraid
crontab -e

В появившемся редакторе добавляем строчку вида

1,16,31,46 * * * * /usr/StorMan/checkraid

Дословно это будет означать, что каждые 15 минут (в 1, 16, 31 и 36 минут каждого часа) будет выполняться наш скрипт. И если он обнаружит, что состояние контроллера не «Optimal», то напишет вам письмо на указанный вами адрес. И ещё в письме этом будет полная простыня состояния - что бы вы понимали где собака порылась.

Если всё настроено правильно, то можно смело выдёргивать диски и получать письма.
(c)

debian, perl, Сервер IBM, script, serveraid 8k, linux, crontab, adaptec, ibm, raid

Previous post Next post
Up