Шпаргалка сисадмина

Zabbix шаблон для мониторинга RAID контроллеров LSI в Linux

07.03.2025 | Категория: Zabbix

Zabbix шаблон для мониторинга RAID контроллеров LSI в Linux

Скачать шаблон для 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://share.zabbix.com/cat-server-hardware/raid-cards/lsi-avago-broadcom-template-using-json-outputs-of-storcli

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

 

Добавим в конфиг /etc/zabbix/zabbix_agent2.conf (после строчки "Include=/etc/zabbix/zabbix_agent2.d/*.conf") запись, которая включит нашу конфигурацию в состав основной конфигурации:

Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf

 

Перезапускаем агент:

systemctl restart zabbix-agent2

 

Всем у кого proxmox и вы видите ошибку в zabbix sh: 1: sudo: not found:
apt install sudo

 

Версии

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).

Картинки

 

Источник

Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.