Мониторинг RAID LSI Broadcom 3008 в Zabbix

Имеем материнскую плату Supermicro H12SSL-C с установленным на нее Proxmox 6 (Debian 11). Хотим мониторить состояние встроенного RAID LSI Broadcom 3008 средствами Zabbix.

Предварительное

Узнаем версию нашей ОС:

cat /etc/release
PRETTY_NAME=”Debian GNU/Linux 11 (bullseye)”
NAME=”Debian GNU/Linux”
VERSION_ID=”11″
VERSION=”11 (bullseye)”
VERSION_CODENAME=bullseye

С сайта производителя материнской платы узнаем, что у нас RAID контроллер Broadcom 3008:

То есть, мы хотим настраивать и мониторить RAID контроллер Broadcom 3008 в ОС Debian 11.

Сделать сходу по статье: https://www.dmosk.ru/miniinstruktions.php?mini=megaraid-linux-zabbix не получилось. Сначала не хотел устанавливаться megacli, не хватало ключа репозитория, пришлось воспользоваться альтернативной статьей, http://uraganltd.blogspot.com/2017/06/megacli.html (только изменить версию Debian на свою, в нашем случае Bullseye). Затем, megacli все же установился, но работать с LSI 3008 не захотел, выдавал ошибку 0x00. Нагуглилось, что с этим контроллером может работать утилита sas3ircu, которую можно скачать здесь: https://www.ibm.com/support/pages/sas3ircu-command-line-utility-storage-management-v17000000-linux-ibm-system-x.

Скачивание утилиты sas3ircu

Установка утилиты sas3ircu

Качаем файл по ссылке в папку /tmp:

cd /tmp/
wget https://download2.boulder.ibm.com/sar/CMA/XSA/087lj/0/ibm_utl_mpt3sas_sas3ircu-17.00.00.00_linux_x86-64.tgz

Разархивируем архив:

tar -xvf ibm_utl_mpt3sas_sas3ircu-17.00.00.00_linux_x86-64.tgz

Создаем папку /sas3ircu и переносим нужный нам файл утилиты в нее:

mkdir /sas3ircu
cp sas3ircu_linux_x64_rel/sas3ircu /sas3ircu/

Делаем файл исполняемым и можем с ним работать:

cd /sas3ircu/
chmod +x sas3ircu

Работа с утилитой sas3ircu

В итоге, для управления LSI 3008 установлена утилита sas3ircu, основные команды по работе с которой можно найти здесь: https://docs.broadcom.com/doc/12353382

Сначала смотрим номер нашего RAID массива:

./sas3ircu LIST
Avago Technologies SAS3 IR Configuration Utility.
Version 17.00.00.00 (2018.04.02)
Copyright (c) 2009-2018 Avago Technologies. All rights reserved.
Adapter Vendor Device SubSys SubSys
Index Type ID ID Pci Address Ven ID Dev ID
—– ———— —— —— —————– —— ——
0 SAS3008 1000h 97h 00h:41h:00h:00h 15d9h 0808h
SAS3IRCU: Utility Completed Successfully.

Обычно первый массив, который нас и интересует, будет под цифрой 0. У нас массив в принципе один. Данные о нем получаем командой:

./sas3ircu 0 STATUS
Avago Technologies SAS3 IR Configuration Utility.
Version 17.00.00.00 (2018.04.02)
Copyright (c) 2009-2018 Avago Technologies. All rights reserved.
Background command progress status for controller 0…
IR Volume 1
Volume ID : 323
PI Supported : No
Current operation : None
Volume status : Enabled
Volume state : Optimal

Physical disk I/Os : Not quiesced
SAS3IRCU: Command STATUS Completed Successfully.
SAS3IRCU: Utility Completed Successfully.

Нас интересует строка “Volume state : Optimal“.

Настройка мониторинга sas3ircu в Zabbix

Поскольку утилита sas3ircu для своей работы требует привилегией суперпользователя необходимо разрешить пользователю, под которым работает zabbix-агент, запускать sas3ircu с помощью sudo. Так как пакет по умолчанию не установлен, его пришлось установить:

apt install sudo

А затем, добавить в файл /etc/sudoers строку:

zabbix ALL=(ALL) NOPASSWD: /sas3ircu/sas3ircu

Далее создадим новый элемент данных в zabbix-агент, для этого нужно добавить в файл /etc/zabbix/zabbix_agentd.conf строку:

UserParameter=raid.sas3ircu[*],sudo zabbix ALL=(ALL) NOPASSWD: /sas3ircu/sas3ircu
 $1 STATUS | grep 'Volume state' | grep 'Optimal' | wc -l

В случае оптимального состояния контроллера значение элемента данных будет “1”, а в случае проблемы – “0”.

И уже на этот параметр следует нацеливать элемент и триггер Zabbix, в 6 версии системы мониторинга вот так:

Не забудьте рестартануть агента Zabbix:

systemctl restart zabbix-agent.service

Ссылки

https://www.ylsoftware.com/news/677

Один комментарий

  1. А если у тебя RAID контроллер будет содержать несколько массивов? Один будет Optimal, а другой с ошибкой, например Degraded. При таком условии “grep ‘Volume state’ | grep ‘Optimal’ | wc -l” в Userparameter ты получишь все “ок”, а на деле будут проблемы.

Оставьте ответ

Ваш адрес email не будет опубликован.

77 ÷ 11 =