Встала необходимость организовать мониторинг исправной работы контроллеров семейства LSI MegaRAID на серверах, работающих под управлением гипервизора VMware vSphere ESXi v5.5. И соответственно автоматически получать уведомления при наличии какого-либо сбоя, например отказе одного из HDD. В процессе проработки оказалось, что найденное решение не ограничивается только хранилищами данных гипервизора.
В моем распоряжении был тестовый сервер на базе материнской платы Supermicro X9DR3/i-F с контроллером LSI MegaRAID SAS 9260-4i, к которому было подключено два HDD и настроен RAID1.
Не смотря на то, что LSI MegaRAID SAS 9260-4i официально поддерживается в ESXi, зайдя в раздел «Health Status» клиента VMware vSphere, вы не сможете получить какой-либо информации о состоянии RAID:
К счастью, это поправимо. Отправляемся на сайт lsi.com и находим там архив со «SMIS Provider» для нужного контроллера:
Скачиваем, распаковываем и находим файл с расширением «vib». Это пакет, обеспечивающий мониторинг состояния контроллера с помощью встроенного механизма сенсоров ESXi. Копируем этот vib на сервер, подключаемся к нему по SSH и устанавливаем:
esxcli software vib install -v /vmfs/volumes/datastore1/500.04.V0.53-0003.vib
Перегружаем сервер, снова подключаемся к нему по SSH и удостоверяемся, что пакет установился:
esxcli software vib list | grep -i lsi
Теперь в разделе «Health Status» мы можем наблюдать состояние контроллера LSI MegaRAID:
Но, конечно, для автоматического мониторинга этого недостаточно. Поскольку мы не узнаем о сбое до тех пор, пока не запустим клиент VMware vSphere. Необходимо автоматизировать процедуру опроса сенсоров. Для этого используем скрипт «check_esxi_hardware.py», доступный на http://www.claudiokuenzler.com/nagios-plugins/check_esxi_hardware.php Изначально он является расширением для Nagios. Однако весьма универсален, и подключить его к любой другой системе мониторинга не составит особого труда.
Скрипт написан на языке программирования Python, требует библиотеку PyWBEM. Под ОС Linux Debian и Ubuntu она устанавливается через стандартные системные репозитории:
apt-get install python-pywbem
Синтаксис запуска «check_esxi_hardware.py» весьма прост:
check_esxi_hardware.py -H XXX.YYY.WWW.ZZZ -U root -P XXXXXXXX
В ответ вы получите краткий отчет о состоянии здоровья сервера:
OK - Server: Supermicro X9DR3-F s/n: 0123456789 System BIOS: 3.0a 2013-07-31
Убедиться в том, что скрипт опрашивает состояние всех сенсоров, в том числе контроллера LSI MegaRAID, можно, включив детальный вывод информации:
check_esxi_hardware.py -H XXX.YYY.WWW.ZZZ -U root -P XXXXXXXX -v
Недостатком скрипта является то, что для опроса сенсоров, ему необходимо предоставить авторизационные данные администратора гипервизора. Необязательно это может быть root, однако он должен обладать соответствующими правами, иначе опросить сенсоры не получится.
Попробуем сымитировать сбой одного из HDD. Перегружаем сервер и заходим в WebBIOS контроллера. Выбираем один из жестких дисков:
Заходим в его свойства:
И отключаем:
Загружаем гипервизор и в клиенте VMware vSphere видим, что действительно имеет место сбой:
А вот, что выдает «check_esxi_hardware.py»:
Автор: simnetworks