Делюсь полезным шаблоном для мониторинга RAID контроллеров LSI (Broadcom, Avago). Мониторим с помощью утилиты storcli. Шаблон делал сам.
Скачать шаблон для Zabbix 5.0: zabbix_lsi.zip
Управление RAID контроллером LSI (Broadcom, Avago) с помощью StorCLI в Oracle Linux
Я проверял работу скриптов под Windows Server 2016 и Oracle Linux, но ничто не мешает это делать в прочих ОС. Нужно только установить утилиту storcli и использовать её возможности вывода данных в виде JSON.
Шаблон использует низкоуровневое обнаружение LLD и находит:
- controllers — контроллеры
- logical disc — логические диски
- physical discs — физические диски в Enclosure и Backplane
- physical discs ne — физические диски без Enclosure и Backplane
- cv — кэш с батарейкой
- bbu — батарейки (не проверено)
Благодарности
Мой шаблон основан вот на этом шаблоне (автор Николай Куликов):
https://github.com/mykolq/zabbix_lsi_template
Однако, в этом шаблоне есть ряд досадных минусов:
- Выводятся данные только для одного контроллера. Остальные контролеры не видятся.
- Автор почему-то не стал мониторить температуру контроллеров и кэша.
- В системах с большим количеством дисков данные по ним тупо не помещаются в zabbix, слишком большой JSON.
Судя по комментариям у автора есть исправленная версия с поддержкой второго контроллера, но на гитхабе её нет.
В общем, я полез копаться в код и переделал там всё по-другому. Часть функционала оставил как было, например по батарейкам bbu. Не смог проверить, потому что у меня контроллеры с кэшом cv. Добавил автообнаружение контроллеров. Данные по физическим дискам вывел из короткой версии JSON, чтобы влезло в Zabbix. Добавил мониторинг температуры и дополнительные элементы данных.
В четвёртой версии шаблона придумал как обойти ограничение на размер JSON и добавил данные по физическим дискам из полной версии.
Установка шаблона в Windows
Zabbix шаблон для мониторинга RAID контроллеров LSI в Windows
Установка шаблона в Linux
Качаем архив: zabbix_lsi_v5.zip
Импортируем шаблон zbx_lsi_json_lld.xml.
В макросах шаблона можно отредактировать периодичность опроса данных:
- {$ADAP_DISCOVERY_PERIOD} — 1h. Периодичность автообнаружения контроллеров.
- {$ADAP_HISTORY_PERIOD} — 30d. Срок хранения истории контроллеров.
- {$ADAP_REQUEST_PERIOD} — 10m. Периодичность опроса контроллеров, кэша, батареек.
- {$ADAP_THROTTLING_HB_PERIOD} — 3h. Срок тротлинга контроллера.
- {$ADAP_TREND_PERIOD} — 180d. Срок хранения трендов контроллера.
- {$BATTERY_HISTORY_PERIOD} — 30d. Срок хранения истории батареек и кэша.
- {$BATTERY_REQUEST_PERIOD} — 10m. Периодичность опроса батареек и кэша.
- {$BATTERY_TREND_PERIOD} — 180d. Срок хранения трендов батареек и кэша.
- {$INTERNAL_ITEMS_HISTORY_PERIOD} — 30d. Срок хранения истории JSON логических и физических дисков.
- {$LD_DISCOVERY_PERIOD} — 10m. Периодичность автообнаружения и опроса логических дисков.
- {$LD_HISTORY_PERIOD} — 30d. Срок хранения истории логических дисков.
- {$LD_REQUEST_PERIOD} — 10m. Периодичность опроса JSON логических дисков. Для просмотра всех параметров, которых нет в элементах данных.
- {$LD_THROTTLING_HB_PERIOD} — 3h. Срок тротлинга логических дисков.
- {$PD_DISCOVERY_PERIOD} — 10m. Периодичность автообнаружения и опроса физических дисков.
- {$PD_HISTORY_PERIOD} — 30d. Срок хранения истории физических дисков.
- {$PD_REQUEST_PERIOD} — 10m. Периодичность опроса JSON физических дисков. Для просмотра всех параметров, которых нет в элементах данных.
- {$PD_THROTTLING_HB_PERIOD} — 3h. Срок тротлинга физических дисков.
- {$PD_TREND_PERIOD} — 180d. Срок хранения трендов физических дисков.
А также настроить граничные значения температур в градусах Цельсия:
- {$ADAP_CACHE_TEMP_CRIT} — 55. Критическая температура кэша.
- {$ADAP_CACHE_TEMP_AVERAGE} — 45. Высокая температура кэша.
- {$ADAP_CACHE_TEMP_WARNING} — 40. Повышенная температура кэша.
- {$ADAP_ROC_TEMP_CRIT} — 90. Критическая температура чипа.
- {$ADAP_ROC_TEMP_AVERAGE} — 80. Высокая температура чипа.
- {$ADAP_ROC_TEMP_WARNING} — 70. Повышенная температура чипа.
- {$PD_TEMP_CRIT} — 55. Критическая температура физического диска.
- {$PD_TEMP_AVERAGE} — 50. Высокая температура физического диска.
- {$PD_TEMP_WARNING} — 45. Повышенная температура физического диска.
На сервере с контроллерами LSI устанавливаем утилиту storcli. Для удобства в архиве есть DEB (storcli_007.0916.0000.0000_all.deb) и RPM (storcli-007.0916.0000.0000-1.noarch.rpm) пакеты. Утилита устанавливается в /opt/MegaRAID/storcli/storcli64.
Копируем lsi_raid_linux.conf в папку с пользовательскими переменными, у меня это /etc/zabbix/zabbix_agentd.conf.d/lsi_raid_linux.conf. Не забываем про владельца и права:
chown root\: /etc/zabbix/zabbix_agentd.conf.d/lsi_raid_linux.conf
chmod 644 /etc/zabbix/zabbix_agentd.conf.d/lsi_raid_linux.conf
Копируем папку со скриптами в /etc/zabbix/scripts/. Есть два варианта скриптов, на bash и на sh. В ней у нас:
- /etc/zabbix/scripts/lsistorcli_bbuinfo.sh
- /etc/zabbix/scripts/lsistorcli_ctlinfo.sh
- /etc/zabbix/scripts/lsistorcli_cvsinfo.sh
- /etc/zabbix/scripts/lsistorcli_ldinfo.sh
- /etc/zabbix/scripts/lsistorcli_pdinfo.sh
- /etc/zabbix/scripts/lsistorcli_pdinfo_all.sh
- /etc/zabbix/scripts/lsistorcli_pdinfo_ne.sh
Не забываем про владельца и права:
chown -R root\: /etc/zabbix/scripts
chmod a+x /etc/zabbix/scripts/*
Копируем sudoers_zabbix_lsistorcli в /etc/sudoers.d. Не забываем про владельца и права:
chown root\: /etc/sudoers.d/sudoers_zabbix_lsistorcli
chmod 644 /etc/sudoers.d/sudoers_zabbix_lsistorcli
Перезапускаем агент:
service zabbix-agent restart
Версии
v9
Исправлены скрипты для sh.
v8
Добавлены элементы данных для контроллеров с BBU (Battery Backup Unit) вместо CV (Cache Vault).
Добавлен датчик температуры BBU и график к нему.
Добавлены графики заряда BBU.
Добавлены макросы для BBU.
Исправлен парсинг данных BBU и CV.
Добавлены элементы данных для контроллеров с CV (Cache Vault).
Внесены исправления в скрипты для Linux и ESXi.
Включено игнорирование данных если нет BBU или CV, ошибка подавлена.
v7
Добавлена версия для ESXi 7.
v6
Добавлена версия скриптов для sh. Ранее был вариант только для bash. Скрипты версии sh можно использовать в ESXi 7.
v5
Вышла пятая версия шаблона. Исправлен триггер:
{HOST.NAME}: LSI controller {#CTLID} physical disk "{#PDID}" [{#EID}] state is "{ITEM.LASTVALUE}" (HW)
В Problem expression убрана проверка на "Unconfigured-Good", это ж не баг.
В Recovery expression добавлены статусы Optimal и Spare (должно сработать и на Dedicated Hot Spare и на Global Hot Spare).