Nagios plugins for RAID monitoring

Проверим состояние дисков в RAID:

# yum -y install pciutils smartmontools unzip
# lspci -v | grep RAID
02:0e.0 RAID bus controller: Dell PowerEdge Expandable RAID controller 5
        Subsystem: Dell PERC 5/i Integrated RAID Controller

Скачиваем и распаковываем архив MegaCLI

# wget https://docs.broadcom.com/docs-and-downloads/raid-controllers/raid-controllers-common-files/8-07-14_MegaCLI.zip
# unzip 8-07-14_MegaCLI.zip
# cd MegaCli_Linux 
# rpm -i MegaCli-8.07.14-1.noarch.rpm

Создадим симлинк для удобной работы с утилитой MegaCli64:

# ln -sf /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/MegaCli

RAID Level:

MegaCli -ShowSummary -a0
MegaCli -ShowSummary -a0 | grep -i "RAID Level"

Nagios плагин для проверки состояния RAID массива https://github.com/glensc/nagios-plugin-check_raid

# wget https://github.com/glensc/nagios-plugin-check_raid/releases/download/4.0.10/check_raid.pl
# chmod +x check_raid.pl
# ./check_raid -S

Проверяем от какого пользователя работает nrpe:

# ps aux | grep nrpe
nrpe      /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
# grep user /etc/nagios/nrpe.cfg
nrpe_user=nrpe

Правим файл /etc/sudoers.d/check_raid

cat /etc/sudoers.d/check_raid
User_Alias CHECK_RAID=nagios, nrpe
Defaults:CHECK_RAID !requiretty
CHECK_RAID ALL=(root) NOPASSWD: /opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL -NoLog
CHECK_RAID ALL=(root) NOPASSWD: /opt/MegaRAID/MegaCli/MegaCli64 -LdInfo -Lall -aALL -NoLog
CHECK_RAID ALL=(root) NOPASSWD: /opt/MegaRAID/MegaCli/MegaCli64 -AdpBbuCmd -GetBbuStatus -aALL -NoLog

Проверяем:

# ./check_raid.pl --cache-fail=OK -p megacli
OK: megacli:[Volumes(2): DISK0.0:Optimal,WriteCache:DISABLED,Backup:Optimal,WriteCache:DISABLED; Devices(2): 00,01=Online]

Добавим проверку S.M.A.R.T параметров дисков в RAID массиве c помощью скрипта: https://github.com/Napsty/check_smart

# wget https://raw.githubusercontent.com/Napsty/check_smart/master/check_smart.pl
# chmod +x check_smart.pl

Так как у нас диски в RAID массиве то используем такие ключи:

# ./check_smart.pl -d /dev/sda -i sat+megaraid,0
OK: Drive  ST3000DM001-1CH166 S/N W1F29LPX: no SMART errors detected. 
# ./check_smart.pl -d /dev/sdb -i sat+megaraid,1
OK: Drive  WDC WD1002FAEX-00Y9A0 S/N WD-WCAW31047220: no SMART errors detected.

Полная проверка всех параметров c помощью smartctl:

# /usr/sbin/smartctl -a -d sat+megaraid,0  /dev/sda
# /usr/sbin/smartctl -a -d sat+megaraid,1  /dev/sda

Создаем файл /etc/sudoers.d/check_smart

nrpe   ALL = NOPASSWD: /usr/lib64/nagios/plugins/check_smart.pl
nrpe   ALL = NOPASSWD: /usr/sbin/smartctl

Добавляем в nrpe

command[check_raid]=/usr/lib64/nagios/plugins/check_raid.pl --cache-fail=OK -p megacli
command[check_smart0]=/usr/lib64/nagios/plugins/check_smart.pl -d /dev/sdb -i sat+megaraid,0
command[check_smart1]=/usr/lib64/nagios/plugins/check_smart.pl -d /dev/sdb -i sat+megaraid,1