[[ Мониторинг LSI MegaRAID в Zabbix ]]

Zabbix

Мониторинг LSI MegaRAID в Zabbix

В моем варианте я рассчитываю мониторинг только Adapter #0 т.е. когда в система только одна плата raid контроллера (опция -a0)

MegaRAID SAS 9261-8i
sys-block/megacli-8.02.21
net-analyzer/zabbix-2.0.9

Примеры вывода команд megacli

Установка скрипта

Создание папки для скриптов:

mkdir /etc/zabbix/scripts/
chown root:zabbix -R /etc/zabbix/scripts/
chmod 750 /etc/zabbix/scripts/

Создадим сам скрипт:

Листинг

Скрипт поддерживает обнаружение (discovery) виртуальных дисков и физических в слотах.
Скрипт предусматривает кэш, что позволяет сократить количество реальных обращений к серверу. Время действия кэша в секундах должно устанавливается чуть меньше чем минимальный период опроса элементов.

Установка прав

chown root:zabbix /etc/zabbix/scripts/lsimegaraid.sh
chmod 550 /etc/zabbix/scripts/lsimegaraid.sh

Настройка прав пользователю zabbix в sudo

/etc/sudoers

...

##### CUSTOM #####
zabbix ALL=(ALL) NOPASSWD: /opt/bin/megacli -LDInfo -LAll -a0 -NoLog
zabbix ALL=(ALL) NOPASSWD: /opt/bin/megacli -PDlist -a0 -NoLog
Проверить работу скрипта для zabbix:

sudo -u zabbix /etc/zabbix/scripts/lsimegaraid.sh none virtdiskovery
sudo -u zabbix /etc/zabbix/scripts/lsimegaraid.sh none physdiskovery
sudo -u zabbix /etc/zabbix/scripts/lsimegaraid.sh none VirtualDrive0 state

Вы должны получить данные, если этого не произошло, то конфигурация выполнена не правильно.

Настройка Zabbix сервера

Вызов скрипта через zabbix-agent

Настройка

/etc/zabbix/zabbix_agentd.conf

...

UserParameter=lsimegaraid[*],/etc/zabbix/scripts/lsimegaraid.sh "none" $1 $2

Перезапустить

/etc/init.d/zabbix-agentd restart

Проверка

zabbix_get -s HOST -k "lsimegaraid[DriveSlot0, inquiry]"

Для контролируемых данных в Zabbix нужно создать соответствующее элементы с типом «Zabbix агент» и ключом типа:

lsimegaraid[disk, key]

где disk - имя виртуального диска VirtualDrive<X> или слота физического диска DriveSlot<X>
key - контролируемая метрика

Готовый Шаблон для мониторинга LSI MegaRAID (agent) с уже настроенными элементами и графиками.

Результат

Пример графиков:

Изображения не найдены

Обсуждение

Anton, 2014/02/01 12:41

Обнаружил, что не все megacli выдают megacli -LDInfo -LAll -a0 -NoLog|grep "Bad Blocks Exist" В результате этого, происходят алармы для некоторых хостов - LSIMegaRaid: VirtualDrive0 Bad Blocks Exist on hostname. Сможете сделать отдельную проверку на наличие строки в выхлопе megacli?

Anton, 2014/02/01 12:48

Заменил в проверке на - {MyTemplate_LSIMegaRaid_agent:lsimegaraid[{#VIRTNUM}, badblock].str(Yes)}=1

Aleksey, 2014/02/01 12:51

Уберите

        /Bad Blocks/     {badblock[drivecounter]=trim($2)}
printf ( "VirtualDrive%d badblock:%s\n", slot[i], badblock[i]);

и дезактивируйте элемент для таких хостов

Anton Kartashev, 2014/02/01 12:57

Второй вариант, который я предложил предпочтителен, серверов очень много, везде править это дикий костыль. Спасибо.

Andre, 2015/02/27 15:17

Спасибо за скрипт и шаблон !

Правда что то не хочет работать :(

Ошибка в заббиксе. Value should be a JSON object.

версия сервера 2.2.7, агента 2.2.1

Подскажите плз, как быть.

Andre, 2015/03/01 14:21

Все спасибо ! Разобрался.

Roman, 2016/07/11 15:44

Добрый день! Подскажите, в чем была проблема? Тоже самое, только версии агентов и сервера другие. 2.4.8

Andre, 2015/03/02 15:40, 2015/05/13 12:54

Маленькое дополнение !

Если в /etc/sudoers по умолчанию включена опция "Defaults requiretty", то ничего не заработает.

Нужно добавить еще такую строчку "Defaults:zabbix !requiretty"

Пример:

##### CUSTOM #####
Defaults:zabbix !requiretty
zabbix ALL=(ALL) NOPASSWD: /opt/bin/megacli -LDInfo -LAll -a0 -NoLog
zabbix ALL=(ALL) NOPASSWD: /opt/bin/megacli -PDlist -a0 -NoLog
Aleksey, 2015/03/03 13:06

Спасибо за дополнение

METAJIJI, 2015/03/16 11:19, 2016/07/07 12:01

Думаю так будет проще:

printf ("VirtualDrive%d badblock:%s\n", slot[i], badblock[i]?badblock[i]:"Unknown")

Если значение не было получено от megaCli, то будет присвоено Unknown.

Дмитрий, 2015/04/27 11:59

Антон, а можете уточнить, где именно Вы изменили проверку?

Если можно, максимально подробно: только начинаю с zabbix'ом знакомиться.

Александр, 2015/05/12 15:25, 2015/05/13 12:52

День добрый! Только начинаю пользовать заббикс и нашел этот сайт с инструкцией по мониторингу LSI. Сделал как здесь написано, начинаю смотреть логи на сервере и вижу

megaraid[0,62,0,"Media Error Count"]" became not supported: Unsupported item key

Сам ключ такой:

lsimegaraid[DriveSlot0, inquiry]

Подскажите куда копать

Aleksey, 2015/05/13 13:02, 2015/05/13 13:06
megaraid[0,62,0,"Media Error Count"]

Фигня какая-то, сверьте формат вывода команд megacli у вас с примером или выложите на pastbin.

Где результаты проверки работы скрипта при ручном запуске из примеров

Vasa, 2015/08/12 13:37

Ребята, а ни у кого не вешал контроллер?

Начинаю собирать информацию и через несколько часов вешается контроллер.

Сергей, 2019/02/06 11:45, 2019/02/08 18:05
chown root:zabbix /etc/zabbix/scripts/lsimegaraid.sh
chmod 700 /etc/zabbix/scripts/lsimegaraid.sh

Как при таких правах должно работать

sudo -u zabbix /etc/zabbix/scripts/lsimegaraid.sh none virtdiskovery

?

Aleksey, 2019/02/08 18:06

Верное замечание, исправил, спасибо.

Vladimir Zp, 2020/09/01 13:48

Спасибо за скрипт и шаблон. Актуализировал его для версии 4.4 - _yadi.sk/d/CWcjdUin6ve34Q

Виктор, 2021/04/01 11:34, 2021/04/01 20:40

Добрый день! RAID-контроллер LSI MegaRAID 9260-8i MegaCLI стоит и пашет Подсобите, проблема следующая. Проксмокс 6й стоит там где рейд воткнут 1 рейд контроллер. Силанукса нет. От рута запускается скрипт а от заббикса нет, всё что можно уже перепробовал! Файл кеша, с ним проблема!

На сервере зббикс

Invalid discovery rule value: cannot parse as a valid JSON object: invalid object format, expected opening character '{' or '[' at: 'sh: 1: /etc/zabbix/scripts/lsimegaraid.sh: Permission denied'

На тачке с рейд контроллером

root@pve1:~# sudo -u root /etc/zabbix/scripts/lsimegaraid.sh none physdiskovery
{ "data":[{"{#PHYSNUM}":"DriveSlot0"}, {"{#PHYSNUM}":"DriveSlot1"}, {"{#PHYSNUM}":"DriveSlot2"}, {"{#PHYSNUM}":"DriveSlot3"}]}
root@pve1:~# sudo -u zabbix /etc/zabbix/scripts/lsimegaraid.sh none physdiskovery
Aleksey, 2021/04/01 20:51

Похоже, где-то с правами ошиблись, попробуй

chmod 777 /etc/zabbix/scripts/lsimegaraid.sh
rm /tmp/zabbix.lsimegaraid.cache
Ваш комментарий. Вики-синтаксис разрешён:
150 +3 = 
 
howto/zabbix/zabbix_megaraid_monitoring.txt · Последнее изменение: 2022/08/31 14:53 — 127.0.0.1
Gentoo Linux Gentoo Linux Driven by DokuWiki