Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


icinga:icinga-monitoring-of-hp-smart-array-and-msa-storage-raid-controllers-via-check_raid-plug-in-with-cciss_vol_status-tool

Это старая версия документа!


Мониторинг RAID-контроллеров HP Smart Array (и Compaq MSA) в Icinga с плагином check_raid

Среди ряда публично доступных плагинов мониторинга RAID-контроллеров HP Smart Array, совместимых с Icinga, по функциональным возможностям можно выделить лишь пару: check_raid и check_cciss. Все прочие Nagios-совместимые плагины, которые попадались мне на глаза по данной тематике, не выдерживают никакой критики.

В этой статье мы рассмотрим пример установки и простейшей настройки плагинов check_raid и check_cciss.



Установка плагина check_raid

Плагин check_raid по своей сути - большой скрипт, написанный на Perl. Плагин является универсальным, так как поддерживает мониторинг множества разных типов RAID-контроллеров. Основная информация о плагине доступна на странице проекта: nagios-plugin-check_raid

Если заглянем в releases, то увидим, что стабильной версией на данный момент признаётся прошлогодняя версия 4.0.8 (2017-09-01).

Загружать плагин нужно на тот сервер, где нам требуется выполнять проверку контроллеров HP Smart Array.

Но для начала определимся с каталогом размещения плагинов Icinga и закинем путь к нему в переменную окружения с удобным нам именем, например ICINGA_PLUGIN_DIR на Debian 64-bit это будет выглядеть так:

# export ICINGA_PLUGIN_DIR="/usr/lib/nagios/plugins/"

на CentOS 64-bit это будет выглядеть так:

# export ICINGA_PLUGIN_DIR="/usr/lib64/nagios/plugins/"

Скачиваем плагин в каталог плагинов:

# wget https://github.com/glensc/nagios-plugin-check_raid/releases/download/4.0.8/check_raid.pl \
 --directory-prefix=$ICINGA_PLUGIN_DIR

Переходим в этот каталог и делаем плагин исполняемым

# cd $ICINGA_PLUGIN_DIR
# chmod +x ./check_raid.pl

Выполняем проверку запуска плагина с выводом поддерживаемых сриптом проверок для данной системы

# ./check_raid.pl --list-plugins

hp_msa hpacucli mdstat 3 active plugins

Как видим, скрипт на нашей системе поддерживает 3 типа проверок, так называемых «плагинов» (не путать с самим плагинами Icinga), то есть написанных внутри него модулей проверок разных типов.

  • Тип проверки hp_msa доступен на нашем сервере по той причине, что к серверу через контроллеры FC HBA из SAN подключено старое дисковое хранилище HP MSA 1000. Тип мониторинга hp_msa для своей работы предполагает прямое Telnet-подключение к СХД.
  • Тип проверки hpacucli тоже доступен, так как на сервер ранее была установлена утилита hpacucli (пример для Debian | пример для CentOS).
  • Тип проверки mdstat доступен, так как на сервере имеются программные RAID-массивы Linux mdraid.

Попробуем выполнить проверку типа hpacucli

# ./check_raid.pl --plugin hpacucli --bbu-monitoring
OK: hpacucli:[Smart Array P400[OK]: Array A(OK)[LUN1:OK], Array B(OK)[LUN2:OK]]

Как видим, плагин успешно опознал имеющийся в системе RAID-контроллер HP Smart Array P400 и выдал информацию о его состоянии и состоянии RAID-массивов, созданных на этом контроллере.

Однако в нашем примере через контроллеры FC HBA из SAN к серверу подключено старое дисковое хранилище HP MSA 1000.

Установим в систему дополнительно утилиту cciss_vol_status, чтобы с помощью этой утилиты скрипт смог дополнительно проверять старые контроллеры Smart Array/MSA:

# apt-get install cciss-vol-status

Проверим список доступных «плагинов» снова:

# ./check_raid.pl --list-plugins
cciss hp_msa hpacucli mdstat 4 active plugins

Как видим, нам стал доступен ещё один тип проверки - cciss

Для начала убедимся в том, что утилита cciss_vol_status работает сама по себе:

# /usr/bin/cciss_vol_status -V /dev/sg1 /dev/sg26
/dev/sda: (MSA1000) RAID 0 Volume 0 status: OK. /dev/sdb: (MSA1000) RAID 0 Volume 1 status: OK. ... /dev/sdat: (MSA1000) RAID 0 Volume 21 status: OK. /dev/sdau: (MSA1000) RAID 0 Volume 22 status: OK. /dev/sdav: (MSA1000) RAID 0 Volume 23 status: OK.

В моём случае выведен список RAID-дисков, транслированных через SAN на сервере.

Теперь проверим то, как отработает скрипт мониторинга:

# ./check_raid.pl --plugin cciss
OK: cciss:[/dev/sda(MSA1000): Volume 0 (RAID 0): OK, ... /dev/sdav(MSA1000): Volume 23 (RAID 0): OK]

Как видим, скрипт успешно отрабатывает.

Теперь нам потребуется дополнительно выдать права пользователю, от имени которого работает служба Icinga для возможности выполнения утилит диагностики HP без необходимости повышения уровня прав через sudo.

Создать файл с нужными настройками в системном каталоге /etc/sudoers.d/ можно с помощью самого скрипта, вызвав его с ключом –sudoers

# ./check_raid.pl --sudoers
Updating file /etc/sudoers.d/check_raid /etc/sudoers.d/check_raid.new.9550: parsed OK /etc/sudoers.d/check_raid file updated. check_raid OK - sudoers updated

В итоге мы получим примерно следующее содержимое файла /etc/sudoers.d/check_raid

check_raid
# Lines matching CHECK_RAID added by /usr/lib/nagios/plugins/check_raid.pl -S on...
User_Alias CHECK_RAID=nagios, icinga
Defaults:CHECK_RAID !requiretty
CHECK_RAID ALL=(root) NOPASSWD: /usr/bin/cciss_vol_status -V /dev/sg1 /dev/sg26
CHECK_RAID ALL=(root) NOPASSWD: /usr/sbin/hpacucli controller all show status
CHECK_RAID ALL=(root) NOPASSWD: /usr/sbin/hpacucli controller * logicaldrive all show

Можно конечно и самостоятельно создать данный файл, но при этом будьте внимательны.

Некорректные манипуляции с настройками sudo могут сломать возможность штатного повышения уровня прав для всех пользователей системы. В результате этого можно полностью потерять административный доступ к системе. В таком случае помогут только отдельные восстановительные меры, использование которых потребует на некоторое время вывести сервер в offline.



Настройка Icinga Director

Теперь на стороне сервера Icinga в веб-консоли Icinga Director создаём команду, например «check_raid_cciss» (с фактической командой вызова check_raid.pl –plugin cciss)

Затем на основе созданной ранее команды «check_raid_cciss» создаём шаблон службы, например «Disk array HP Compaq RAID»

Назначаем любым удобным способом шаблон службы на хосты, которые необходимо мониторить данной службой (разумеется на всех соответствующих хостах в каталоге $ICINGA_PLUGIN_DIR предварительно должен быть установлен плагин check_raid.pl). В нашем упрощённом примере создано правило Apply Rule с нацеливанием на имя конкретного сервера.

В конечном итоге получаем желаемый результат:

По аналогии можно создать и другие команды, например «check_raid_hpacucli» (с фактической командой вызова check_raid.pl hpacucli –bbu-monitoring) и затем использовать эту команду при создании шаблона службы, которая так же будет в последующем назначена на хосты.

Однако в некоторых случаях для мониторинга контроллеров HP Smart Array более удобным может показаться и другой плагин check_cciss, установка которого описана в отдельной статье.



Установка плагина check_cciss

Плагин



Проверено на следующих конфигурациях:

Версия ОС на стороне клиента Icinga Версия клиента Icinga Версия скрипта check_raid
Debian GNU/Linux 9.4 (Stretch) r2.7.0-1 4.0.8 (2017-09-01)

Автор первичной редакции:
Виталий Якоб
Время публикации: 14.06.2018 15:22

Обсуждение

Ваш комментарий:
 
icinga/icinga-monitoring-of-hp-smart-array-and-msa-storage-raid-controllers-via-check_raid-plug-in-with-cciss_vol_status-tool.1528984250.txt.gz · Последнее изменение: 14.06.2018 16:50 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki