Делюсь полезным шаблоном для мониторинга программных 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. В пакете есть следующие утилиты:
В зависимости от установленного в системе драйвера для 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.
Копируем 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 контроллеров. В некоторых случаях обработка регулярки уходила в бесконечный цикл, непонятно почему. И нагрузку на сервер снизили.
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:
Бонус где можно надыбать VROC:
https://www.supermicro.com/wdl/driver/VROC/