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

Zabbix шаблон для мониторинга RAID контроллеров Intel RSTe и VROC в Windows

Zabbix

Делюсь полезным шаблоном для мониторинга программных RAID контроллеров Intel RST (Rapid Storage Technology), Intel RSTe (Intel Rapid Enterprise), Intel VROC (Virtual RAID on CPU).

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

Мониторим с помощью утилит CLI. В пакете есть следующие утилиты:

zabbix

В зависимости от установленного в системе драйвера для RAID контроллера используется подходящая утилита CLI:

  • 13_16_rstcli64.exe — для драйвера версии ниже 1.7.0.
  • 4.6.0_rstcli64.exe — для драйвера версии ниже 5.0.0.
  • 5.0.0_rstcli64.exe — для драйвера версии ниже 5.0.3.
  • 5.0.3_rstcli64.exe — для драйвера версии ниже 5.3.0.
  • 5.3.0_rstcli64.exe — для драйвера версии ниже 5.6.0.
  • 5.6.0_rstcli64.exe — для драйвера версии ниже 6.1.0.
  • IntelVROCCli.exe — для драйвера версии ниже 6.2.0.
  • rstcli64.exe — для остальных случаев.

Не уверен в точности соответствия версий и утилит, возможно, в дальнейшем потребуется корректировка в BAT файле и препроцессинге элемента данных "RST cli path".

В папке old есть более старая утилита IntelVROCCli.exe, вдруг, кому-то пригодится.

Шаблон получает все данные от CLI, затем, используя JavaScript и регулярные выражения, с помощью низкоуровневого обнаружения LLD находит:

  • Контроллеры
  • Массивы
  • Логические диски
  • Физические диски

Можно было бы не заморачиваться с регулярными выражениями, если бы работало опция --xml, которая имеется в описании CLI IntelVROCCli.exe. Однако, вывод в XML не работает, о чём я нашёл подтверждение в документации к CLI.

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

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

https://github.com/mykolq/zabbix_intel_rst_template

Изначально предполагалось создание локального пользователя, который в автоматическом режиме прописывал в макрос путь к CLI. Мне это не понравилось, я сделал автоматическое определение CLI по версии драйвера в файле BAT, который при первом запуске определяет драйвер и записывает путь CLI в текстовый файл. Если драйвер изменится, то нужно на сервере вручную удалить файл RST.txt. Можно избавиться от этого текстового файла и модифицировать скрипт, но тогда каждый раз при запросе будет определяться версия драйвера, а эта процедура отрабатывает секунд пять, не очень быстро. Ещё можно сделать полную автоматизацию, как у Николая, написав скрипт для обновления RST.txt в планировщике. Но, поскольку, я не собираюсь обновлять версию драйвера RST без особых причин, то не буду делать автоматизацию. Для защиты от дурака сделал триггер, который сравнивает текущий путь CLI и определённый по версии драйвера в системе. Вдруг, кто-то полезет на сервер и начнёт всё бездумно обновлять.

Добавил к исходному шаблону функционал определения контроллеров и массивов. Ну и добавил все элементы данных, которые возвращает мой RST контроллер.

А за набор CLI утилит спасибо Николаю. Я там только заменил IntelVROCCli.exe на более новый.

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

Отдельный мониторинг Intel RST в Linux не требуется. Для мониторинга Intel RST, Intel RSTe, Intel VROC в Linux необходимо использовать утилиту mdadm:

Zabbix — мониторинг программных RAID массивов в Linux

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

Качаем архив zabbix_intel_rst_vroc.zip

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

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

  • {$ARRAY_HISTORY_PERIOD} — 30d. Срок хранения истории массивов.
  • {$ARRAY_THROTTLING_HB_PERIOD} — 6h. Срок тротлинга массивов.
  • {$CTRL_HISTORY_PERIOD} — 30d. Срок хранения истории контроллеров.
  • {$CTRL_THROTTLING_HB_PERIOD} — 6h. Срок тротлинга контроллеров.
  • {$INTERNAL_ITEMS_HISTORY_PERIOD} — 30d. Срок хранения истории внутренних элементов.
  • {$INTERNAL_ITEMS_NODATA} — 1h. Для триггеров. Интервал, в течение которого допускается отсутствие данных от RST.
  • {$INTERNAL_ITEMS_REQUEST_PERIOD} — 5m. Периодичность опроса RST. Основной интервал.
  • {$LD_HIGH_SEVERITY_STATES} — Degraded|Failed. Для триггеров. Критичные статусы локальных дисков.
  • {$LD_HISTORY_PERIOD} — 30d. Срок хранения истории локальных дисков.
  • {$LD_INFORMATION_SEVERITY_STATES} — Initializing. Для триггеров. Информационные статусы локальных дисков.
  • {$LD_RECOVERY_STATES} — Normal. Для триггеров. Нормальные статусы локальных дисков.
  • {$LD_THROTTLING_HB_PERIOD} — 3h. Срок тротлинга локальных дисков.
  • {$LD_WARNING_SEVERITY_STATES} — Rebuilding|Verify and Fix. Для триггеров. Предупреждающие статусы локальных дисков.
  • {$PD_HIGH_SEVERITY_STATES} — Missing|Failed|Degraded|Smart event triggered. Для триггеров. Критичные статусы физических дисков.
  • {$PD_HISTORY_PERIOD} — 30d. Срок хранения истории физических дисков.
  • {$PD_INFORMATION_SEVERITY_STATES} — Online|Initialize. Для триггеров. Информационные статусы физических дисков.
  • {$PD_RECOVERY_STATES} — Normal. Для триггеров. Нормальные статусы физических дисков.
  • {$PD_THROTTLING_HB_PERIOD} — 3h. Срок тротлинга физических дисков.
  • {$PD_WARNING_SEVERITY_STATES} — Verify|Rebuilding|Offline|Incompatible. Для триггеров. Предупреждающие статусы физических дисков.
  • {$RSTCLI_REQUEST_PERIOD} — 6h. Периодичность опроса версий драйвера RST.

zabbix

Копируем rst.conf в папку с пользовательскими переменными, у меня это C:\zabbix\zabbix_agent.conf.d\rst.conf. В конфигурации агента этот файл должен быть подключен.

Копируем папку со скриптами в C:\zabbix\scripts. В ней у нас:

  • rst — папка с утилитами RST
  • rst.bat — скрипт для получения данных RST
  • rstcurrent.bat — скрипт для получения текущей утилиты RST CLI

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

net stop "Zabbix Agent" && net start "Zabbix Agent"

Версии

v.1 от 03.07.2022

Начальная версия

v.2 от 05.12.2022

Упрощено регулярное выражение для LLD контроллеров. В некоторых случаях обработка регулярки уходила в бесконечный цикл, непонятно почему. И нагрузку на сервер снизили.

zabbix

v.3 от 07.10.2023

  • Изменена абсолютная ссылка между BAT файлами на относительную.
  • Добавлена возможность работы скриптов в путях с пробелом в имени.

v.4 от 07.10.2023

Добавлены версии rstcli64.exe:

  • 3.8.0
  • 4.3.0
  • 4.5.0
  • 5.5.0

v.5 от 11.10.2023

Изменено регулярное выражение для определения логического диска. Теперь имя логического диска может включать A-Za-z0-1, подчёркивание и пробел.

v.6 от 01.11.2023

  • Исправлены ошибки в шаблоне, допущенные в версии 4.
  • Полностью переписаны все регулярные выражения в шаблоне.
  • Добавлена поддержка нескольких контроллеров на сервере.
  • Добавлена поддержка контроллеров, у которых нет дисков и массивов без логических томов.

v.7 от 14.11.2023

  • Исправлены ошибки в BAT файлах.
  • Добавлена поддержка путей к RST.txt файлу с пробелами

v.8 от 22.11.2023

  • Драйвер контроллера какой-то код в конце выводил, из-за этого неправильно определялся ID диска. Предусмотрел игнорирование этого параметра.

v.9 от 19.02.2024

Добавлена поддержка драйверов:

  • 7.0.0
  • 7.5.0
  • 7.5.6
  • 7.6.0
  • 7.7.0
  • 7.8.0
  • 7.8.3
  • 8.0.0
  • 8.2.0
  • 8.5.0

Драйвер с утилитой 8.5.0.1592 добавлен в сборку для системного администратора.

Бонус, где можно надыбать VROC CLI:

https://support.hpe.com/connect/s/softwaredetails?language=en_US&softwareId=MTX_c075fea240b6497197e47bc22d

Бонус где можно надыбать VROC:

https://www.supermicro.com/wdl/driver/VROC/

Картинки

 

Похожие материалы

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

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

Windows — меняем NVMe диски динамического массива на лету

У нас имеется динамический зеркальный массив в Windows Server 2016, собранный из двух одинаковых NVMe дисков. Места стало не хватать.