Проверяем какой RAID установлен на сервере
# lspci -v | grep RAID 04:08.1 RAID bus controller: Dell PowerEdge Expandable RAID Controller 3/Di (rev 01)
Мониторить Perc 3/Di будем с помощью afacli
A configuration utility for PERC2, PERC2/Si, PERC3/Si, and PERC3/Di controllers. This application allows you to perform storage management tasks on the above listed controllers, attached disks, and containers by providing many commands.
Скачиваем aacraid-util-rh8.0-i386.tar.gz с сайта Dell
Распаковываем и устанавливаем
# tar xvf aacraid-util-rh8.0-i386.tar.gz # rpm -ivh afaapps-2.7-2.i386.rpm
Информация о пакете
# rpm -qi afaapps Name : afaapps Relocations: (not relocatable) Version : 2.7 Vendor: Adaptec, Inc. Release : 2 Build Date: Wed Oct 23 16:55:16 2002 Install Date: Wed Sep 26 14:22:55 2012 Build Host: localhost.localdomain Group : Utilities/System Source RPM: afaapps-2.7-2.src.rpm Size : 1246034 License: 2000, Adaptec Inc. Signature : (none) Packager : DELL Linux Solutions Group Summary : DELL PowerEdge Raid Controller 2 (apps) Description : The afacli application consists of a command line interface (CLI) that lets you perform storage management tasks related to managing controllers, disks, containers, and enclosure devices by providing a variety of commands.
Файлы которые входят в пакет
# rpm -ql afaapps /dev/MAKEDEV.afa /usr/sbin/afacli /usr/sbin/afacli.bin /usr/sbin/getcfg.afa
Работа с утилитой afacli
# afacli -------------------------------------------------------------------------------------------------- DELL PowerEdge Expandable RAID Controller 2 Command Line Interface Copyright 1998-2002 Adaptec, Inc. All rights reserved -------------------------------------------------------------------------------------------------- FASTCMD>
FASTCMD> open afa0 Executing: open "afa0"
Посмотреть информации о контроллере
AFA0> controller details
Executing: controller details
Controller Information
----------------------
         Remote Computer: .
             Device Name: AFA0
         Controller Type: PERC 3/Di
             Access Mode: READ-WRITE
Controller Serial Number: Last Six Digits = C861D3
         Number of Buses: 2
         Devices per Bus: 15
          Controller CPU: i960 R series
    Controller CPU Speed: 100 Mhz
       Controller Memory: 128 Mbytes
           Battery State: Ok
Component Revisions
-------------------
                CLI: 2.7-1 (Build #4944)
                API: 2.7-1 (Build #4944)
    Miniport Driver: 1.1-5 (Build #24702)
Controller Software: 2.8-1 (Build #7692)
    Controller BIOS: 2.8-1 (Build #7692)
Controller Firmware: (Build #7692)
Изучаем состояние дисков
AFA0> enclosure show slot Executing: enclosure show slot Enclosure ID (B:ID:L) Slot scsiId Insert Status ----------- ---- ------ ------- ------------------------------------------ 0 0:06:0 0 0:00:0 1 OK ACTIVATE 0 0:06:0 1 0:01:0 1 OK ACTIVATE 0 0:06:0 2 0:02:0 1 OK ACTIVATE 0 0:06:0 3 0:03:0 1 OK ACTIVATE 0 0:06:0 4 0:04:0 1 OK ACTIVATE
Посмотреть интересующую нас информацию
 enclosure show - Shows enclosure configuration information.
        enclosure show fan         - Displays the enclosure fan status.
        enclosure show power       - Displays the enclosure power supply status.
        enclosure show slot        - Displays the enclosure device slot status.
        enclosure show status      - Displays the enclosure general status.
        enclosure show temperature - Displays the enclosure temperature sensor status.
Закрываем консоль и выходим
AFA0> close Executing: close FASTCMD> exit
Добавим в Nagios проверку RAID при помощи nrpe и вот этого скрипта check_afacli
В этом скрипте обращаем внимание на следующие параметры
use lib "/usr/lib/nagios/plugins"; # если у вас 32 битная система; # use lib "/usr/lib64/nagios/plugins"; # если у вас 64 битная система; my $SUDO = '/usr/bin/sudo'; # путь к sudo my $AFACLI = '/usr/sbin/afacli'; # путь к afacli my $AFASCRIPT = '/etc/nagios/afascript'; my $AFALOG = '/tmp/afacli.log';
Что из себя представляет /etc/nagios/afascript. Это набор команд которое необходимо проделать скрипту
# vi /etc/nagios/afascript logfile start '/tmp/afacli.log' open afa0 controller details container list /all /full enclosure show slot close logfile end exit
Сделаем файл исполняемым и перенесем в папку
/usr/lib/nagios/plugins для 32-битных систем /usr/lib64/nagios/plugins"для 64-битных систем
# chmod +x check_afacli # mv check_afacli /usr/lib/nagios/plugins
Проверим скрипт
# /usr/lib/nagios/plugins/check_afacli OK: Battery:Ok 0:RAID-5:546GB:OK
Добавим на хост машине в /etc/nagios/nrpe.cfg
command[check_afacli]=/usr/lib/nagios/plugins/check_afacli
Перестартуем nrpe
# service nrpe restart Shutting down Nagios NRPE daemon (nrpe): [ OK ] Starting Nagios NRPE daemon (nrpe): [ OK ]
На сервере Nagios в /etc/nagios/hosts/TEST.cfg пропишем проверку сервиса
define service{
               use                           generic-service
               host_name                     TEST
               service_description           RAID
               is_volatile                   0
               check_period                  24x7
               max_check_attempts            3
               normal_check_interval         1
               retry_check_interval          1
               contact_groups                admins
               notification_interval         120
               notification_period           24x7
               notification_options          c,r
               check_command                 check_nrpe!check_afacli
}
Перестартуем Nagios
# service nagios reload nagios (pid 26186 7947 7937) is running... Reloading nagios: [ OK ]
Результат
