Страницы

Сохранить статью у себя в соцсети:

пятница, 24 августа 2012 г.

§ HP Smart Array monitoring via Zabbix.

Настройка мониторинга контроллеров HP Smart Array в Zabbix.

Для работы с контроллерами HP существует утилита hpacucli. Ее возможности очень хорошо подходят для задач мониторинга. Процесс настройки проводится в Gentoo Linux. Вообще говоря процедура настройки универсальная, отличие между настройкой в разных дистрибутивах, сводится только к отличиям в установке программы пакетным менеджером. В моем случае не стандартный emerge, а paludis.
Процесс настройки выглядит следующим образом:
  • установка hpacucli;
  • написание скрипта сбора данных;
  • правка конфигурации zabbix-agentd;
  • импорт шаблона.
Перед установкой, нужно размаскировать пакет. После установки, дать возможность запускать утилиту пользователю zabbix, т.к. от его имени будет выполняться скрипт осуществляющий сбор данных.
# echo 'sys-block/hpacucli ~amd64' >> /etc/paludis/keywords.conf
# cave resolve sys-block/hpacucli app-admin/sudo -x
# vi /etc/sudoers
zabbix ALL=(ALL) NOPASSWD: /usr/sbin/hpacucli, /opt/hp/hpacucli

Теперь основная конфигурация в которой описываются ключи и команды по сбору данных.
# vi /etc/zabbix/hparray.conf
# Проверка статус контроллера.
# $1 - номер слота в котором установлен контроллер. целое число от 1 до X.
# $2 - запрос статуса. одно из трех значение controller, cache или battery.
UserParameter=raid.status[*],sudo /usr/sbin/hpacucli ctrl slot=$1 show status |grep -i $2 |tail -n1 |cut -d' ' -f6
# Проверка состояния RAID-тома.
# $1 - номер слота в котором установлен контроллер. целое число от 1 до X.
# $2 - номер RAID тома. целое число от 1 до Х.
UserParameter=raid.volume[*],sudo /usr/sbin/hpacucli ctrl slot=$1 ld $2 show |grep -i status |cut -d' ' -f11
# Проверка состояния физического диска.
# $1 - номер слота в котором установлен контроллер. целое число от 1 до Х.
# $2 - номер диска. целочисленное значение от 1 до Х.
UserParameter=raid.drive.status[*],sudo /usr/sbin/hpacucli ctrl slot=$1 pd 1I:1:$2 show |grep Status |cut -d' ' -f11
UserParameter=raid.drive.temperature[*],sudo /usr/sbin/hpacucli ctrl slot=$1 pd 1I:1:$2 show |grep "Current Temperature" |cut -d' ' -f13
UserParameter=raid.ssd.free[*],sudo /usr/sbin/hpacucli ctrl slot=$1 pd 1I:1:$2 show |grep Usage |cut -d' ' -f12- |tr -d \%

Немного о информации о параметрах hpacucli используемых в процессе сбора данных. В качестве входящих аргументов скрипту нужно передать номер слота где размещен контроллер и в некоторых параметрах нудно передать порядковый номер устройства.
Выполняем оставшуюся правку конфигурации zabbix_agentd.
# echo 'Include=/etc/zabbix/hparray.conf' >> /etc/zabbix/zabbix_agentd.conf
# /etc/init.d/zabbix-agentd restart

Теперь переходим в веб-интерфейс в раздел с шаблонами и выполняем импорт шаблона HP Smart Array. После импорта можно назначать шаблон на хосты. Несколько замечаний по шаблону:
  • большинство триггеров в шаблоне установлены с важностью Disaster;
  • во всех параметрах, номер слота в котором установлен контроллер, указано 4;
  • шаблон сделан из расчета что собран 1 RAID и подключено 4 диска;
  • мониторинг свободных ячеек у SSD дисков сделан для 3 и 4 диска.
После настройки будет доступен сбор следующей информации:
  • controller status - состояние контроллера;
  • battery status - состояние BBU;
  • cache status - состояние Write Cache;
  • RAID volume status - состояние собранного RAID;
  • drive status - состояние физических дисков;
  • drive temperature - температура дисков;
  • SSD drive free cells - количество свободных ячеек.
Это всё.
На главную "Virtualizing Linux"

12 комментариев:

  1. Алексей, спасибо, статья очень помогла! Правда есть один вопрос. Например, значение статуса контроллера регулярно приходит "ОК", а вот для кэша или логического диска оно приходит через раз, то есть может прийти несколько раз подряд пустое значение, потом несколько раз "ОК" и т.д., хотя мы знаем, что с RAID'ом все в порядке. Это происходит как при интервале обновления равном 60 секунд, так и при интервале 1 час. Как вы думаете, с чем это может быть связано?

    ОтветитьУдалить
  2. Сложно сказать,
    1) я бы попробовал в цикле, вручную запускать сбор параметра через zabbix_get, посмотрел бы на возможные ошибки,
    2) еще бы попробовал запустить hpacucli вручную от рута и от заббикса, нужно посмотреть как они отрабатывают и есть ли там вывод необходимой информации для передачи заббикс_серверу.
    3) Ну и как вариант, еще логи агента остаются.
    И еще, эти параметры что у вас так странно работают... не меняет ли он свой статус на Not supported?

    ОтветитьУдалить
  3. Спасибо, попробую. Запускала вручную пока только от рута, всегда отвечает "ОК". Как ни странно, эти параметры в Заббиксе постоянно в статусе Активировано

    ОтветитьУдалить
  4. Если выясните причину, напишите плз, а то мне тоже любопытно)))

    ОтветитьУдалить
  5. Анонимный17 июля 2013 г., 18:01

    Есть один большой минус: утилита hpacucli допускает запуск только в единственном экземпляре. Поэтому когда произойдет запрос данных в короткий промежуток времени, возникнет ситуация, требующая запуска второго экземпляра утилиты, что будет запрещено. Поэтому проверка, запущенная второй, выдаст пустое значение. Что Вы и наблюдаете у себя в системе.
    Как обойти это ограничение - как раз ломаю голову. ))))

    ОтветитьУдалить
    Ответы
    1. я решил это таким образом... ))) приготовтесь изменить сознание =)))
      1. есть скрипт который последовательно выполняет ряд hpacucli команд, а вывод сохраняет в один файл.
      2. второй скрипт проходит по этому файлу и формирует набор ключей, затем отправляет через zabbix_sender на сервер мониторинга
      работает только для zabbix2.

      доступно здесь https://github.com/lesovsky/zabbix-extensions/tree/master/files/hwraid-smartarray

      Удалить
    2. В принципе, так и сделал )))
      Причем работает и для автообнаружения.
      Схема такова:
      скрипт на perl формирует .log файлы, в которые прописывает все получаемые значения от hpacucli. zabbix_sender в данной схеме не используется, идет простая проверка заббикс-агентом через метод zabbix_get, в настройках которого есть пользовательские параметры, отвечающие за считываение данных из сформированных .log файлов.
      Сам же основной скрипт perl запускается через cron по желаемому расписанию.
      В заббиксе дополнительно добавлена проверка на время последнего изменения формируемого файла, чтобы получать оповещения об устаревании данных в случае сбоя или подвисания скрипта.
      Главное, поставленная задача - выполнена. ))

      Удалить
  6. К сожалению файл шаблона теперь не доступен

    ОтветитьУдалить
  7. Неужели ссылку сложно обновить?

    ОтветитьУдалить
    Ответы
    1. Если автор читает то мог бы все отправить на lpetr2@mail.ru . Заранее спс

      Удалить

Популярные сообщения

Профиль в Google+ Яндекс цитирования Яндекс.Метрика