Перейти к основному содержанию
 

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

Zabbix

Делюсь полезным шаблоном для мониторинга RAID контроллеров LSI (Broadcom, Avago). Мониторим с помощью утилиты storcli. Шаблон делал сам.

Скачать шаблон для Zabbix 5.0: zabbix_lsi.zip

Управление RAID контроллером LSI (Broadcom, Avago) с помощью StorCLI в Oracle Linux

Я проверял работу скриптов под Oracle Linux, но ничто не мешает это делать в Ubuntu и прочих ОС. Нужно только установить утилиту storcli и её возможности вывода данных в виде JSON. Если есть навыки программирования, то шаблон можно переписать и под Windows, но мне лень.

Шаблон использует низкоуровневое обнаружение LLD и находит:

  • controllers — контроллеры
  • logical disc — логические диски
  • physical discs — физические диски
  • cv — кэш с батарейкой
  • bbu — батарейки (не проверено)

Благодарности

Мой шаблон основан вот на этом шаблоне (автор Николай Куликов):

https://share.zabbix.com/cat-server-hardware/raid-cards/lsi-avago-broadcom-template-using-json-outputs-of-storcli

github.com/mykolq/zabbix_lsi_template

Однако, в этом шаблоне есть ряд досадных минусов:

  • Выводятся данные только для одного контроллера. Остальные контролеры не видятся.
  • Автор почему-то не стал мониторить температуру контроллеров и кэша.
  • В системах с большим количеством дисков данные по ним тупо не помещаются в zabbix, слишком большой JSON.

Судя по комментариям у автора есть исправленная версия с поддержкой второго контроллера, но на гитхабе её нет.

В общем, я полез копаться в код и переделал там всё по-другому. Часть функционала оставил как было, например по батарейкам bbu. Не смог проверить, потому что у меня контроллеры с кэшом cv. Добавил автообнаружение контроллеров. Данные по физическим дискам вывел из короткой версии JSON, чтобы влезло в Zabbix. Добавил мониторинг температуры и дополнительные элементы данных.

Установка шаблона в Linux

Качаем архив: zabbix_lsi.zip

Импортируем шаблон zbx_lsi_json_lld.xml.

В макросах шаблона можно отредактировать периодичность опроса данных:

  • {$ADAP_DISCOVERY_PERIOD} — 1h. Периодичность автообнаружения контроллеров.
  • {$ADAP_HISTORY_PERIOD} — 30d. Срок хранения истории контроллеров. У меня не работает, берётся значение из Zabbix. Оставил как в исходном шаблоне, вдруг в какй-то из версий будет работать.
  • {$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. Срок тротлинга физических дисков.

lsi

На сервере с контроллерами 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/. В ней у нас:

  • /etc/zabbix/scripts/lsistorcli_cvsinfo.sh
  • /etc/zabbix/scripts/lsistorcli_ldinfo.sh
  • /etc/zabbix/scripts/lsistorcli_pdinfo.sh
  • /etc/zabbix/scripts/lsistorcli_bbuinfo.sh
  • /etc/zabbix/scripts/lsistorcli_ctlinfo.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

Картинки