Как стать автором
Обновить

Мониторинг дисков и программных RAID-массивов с помощью Zabbix

Время на прочтение14 мин
Количество просмотров23K
Всего голосов 9: ↑8 и ↓1+7
Комментарии13

Комментарии 13

С одной стороны Zabbix хорош, а с другой всё приходится допиливать и дописывать.

Вроде такая базовая вещь, как мониторинг состояния дисков, а не реализована в Zabbix из коробки.

Единственный шаблон SMART от Zabbix только работает со smartmontools 7.1, т.е. еще поддерживаемая Ubuntu 18 до свиданья. Но чуть приятно, что иногда может пролезть за некоторые типы аппаратных raid.

Для mdadm свой костыль приходится писать.

А что с нормальными аппаратными RAID ? Их поддержки нет вообще! Как такую базовую вещь не реализовали?!

Приведите, пожалуйста, 3-4 примера «нормальных аппаратных RAID»? И, если не затруднит, интерфейсы, через которые эти устройства можно мониторить.

3ware + megacli

Обычно у таких рейдов есть cli утилита, вывод которой приходится парсить. Решение не огонь, зато можно подстроиться под любую железку

Дак в этом и проблема Zabbix, что нет многих очевидно базовых вещей. И каждый велосипедит как может. Вот хороший пример с mdadm, тут навелосипедили своё, ниже вон ссылка на более безопасное решение.
mdadm вроде как стандарт программных рейдов, почему это в агента нельзя добавить? Шаблон правильный написать.

А эти cli утилиты еще и выхлоп одинаковый имеют, напиши zabbix парсинг в агенте, в конфиг просто путь к этой утилите указать, шаблон правильный сделать. Базовая же вещь.

О да, базовая вещь.

Представьте себя разработчиком Zabbix. Вы решаете осчастливить сообщество и добавить бортовую поддержку mdadm и MegaRAID в дистрибутив. Проходит неделя, и Вам заводят четырнадцать тикетов типа:

  • почему только mdadm, у нас вот ещё есть geom во FreeBSD, и ZFS

  • где Adaptec или NearestBasementTec, почему MegaRAID добавили а его нет

  • у меня mdadm/ядро/контроллер тысяча девятьсот мохнатого года, и у меня не работает

  • у меня mdadm/ядро/контроллер вчерашний, и у меня не работает

  • зачем вы принесли sudo, я не хочу

  • я включил мониторинг и он ругается на отсутствие megacli, что это такое и где это взять

Через полгода Вы обнаруживаете себя владельцем десятка экзотических контроллеров, специалистом по регулярным выражениям, и либо седым, либо лысым от парсинга восхитительного вывода чудесных вендорских утилит управления массивами (спойлер: вывод json в smartmontools появился всего 4 года назад). И с тех пор, разумеется, Вы ни разу не притронулись к разработке всего остального Zabbix. При этом ввиду существования виртуализации количество систем вообще без RAID-контроллеров значительно выше, чем систем с ними.

Вам дали возможности расширения, пользуйтесь ими. Не можете воспользоваться сами - наймите кого-то способного.

Можно создать базовый шаблон со стандартными сущностями LLD. Controller, Battery, VD, PD, Корзины. Добавить несколько разных (самых популярных) имплементаций использующих этот шаблон, остальное проще уже адаптировать. Шаблон поддерживается, обновляется с релизами. Мохнатые контроллеры можно уже добавлять руками, json скриптом генерировать, хотя бы шаблон писать не надо.

я включил мониторинг и он ругается на отсутствие megacli, что это такое и где это взять

Их это вообще не парит, ищите сами, например угадайте какие права нужны токену для этого шаблона? https://www.zabbix.com/ru/integrations/hashicorp_vault

Или я повешал шаблон Windows by Zabbix agent active на хост, а почему он не сообщает о том что время неправильное? Триггер же есть, почему? https://support.zabbix.com/browse/ZBX-15624
Won't Fix

При этом ввиду существования виртуализации количество систем вообще без RAID-контроллеров значительно выше, чем систем с ними.

Да, только если навернется RAID массив, то умрет куча виртуальных машин. Не хватает мониторинга критических вещей, без которого всё остальное работать не будет.

Раз уж виртуализация такая популярная, нет мониторинга Hyper-V например.

Приведите, пожалуйста, 3-4 примера «нормальных аппаратных RAID»?

Все PCIe карточки LSI/Broadcom MegaRAID SAS и их брендовые клоны Dell PERC, Intel RMS, HP SmartArray

И, если не затруднит, интерфейсы, через которые эти устройства можно мониторить.

Понятия не имею

Универсальный шаблон с LLD: array, battery, VD, PD, а на стороне агента обертка для парсинга выхлопа megacli, perccli и т.д.

Парсят же smartmontools

Гора родила мышь. Причем дефективную. Зато не bash, и не pyton.

Стал переходить для дисковых массивов на ZFS. Масса возможностей и тьма параметров под всевозможные нагрузки и случаи. Псевдопрожорливость ZFS до ОЗУ это из-за слишком большого размера ARC кеша по умолчанию или включение дедупликации и не более того. Zabbix имеет отличные шаблоны для мониторинга ZFS и SMART.

Скрипты для мониторинга, создающие временный файл в /tmp/, использующие sudo для "cat /proc/mdstat", не фильтрующие передаваемые аргументы со стороны server или proxy - это жесть.

Достаточно работнику из отдела "техподдержки" переконфигурировать item на сервере, и получаем root-доступ на хосте.
Куча лишних подпроцессов.
Отсутствие логики проверки наличия файла в /tmp и его "свежести".
Отсутствие логики и уведомления об отвалившихся items на сервере.

Вы опубликовали статью из серии "антипэттернов" - как не надо мониторить рейд при помощи небезопасных костылей.

Даже вот это - уже во много раз лучше и безопасней: https://codeberg.org/zabbix-deb/zabbix-check-mdadm3/src/branch/master
Использует sysfs, не требует sudo, не создает временных файлов и лишних подпроцессов итд, не вызывает бинарники mdadm.

Присмотритесь (настоятельно рекомендую выкинуть упомянутые в статье скрипты zabbix_mdraid на помойку).

Техподдержка у нас не занимается переконфигурированием чего-либо на серверах, на это есть отдельные сотрудники. С наличием файлов и отвалившихся items никаких проблем никогда не возникало.

Как бы работает много лет и почему-то никаких проблем.

Но за другой вариант спасибо, изучу обязательно.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий