Оглавление
Имеем материнскую плату Supermicro H12SSL-C с установленным на нее Proxmox 6 (Debian 11). Хотим мониторить состояние встроенного RAID LSI Broadcom 3008 средствами Zabbix.
Предварительное
Узнаем версию нашей ОС:
cat /etc/release
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
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
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
А если у тебя RAID контроллер будет содержать несколько массивов? Один будет Optimal, а другой с ошибкой, например Degraded. При таком условии “grep ‘Volume state’ | grep ‘Optimal’ | wc -l” в Userparameter ты получишь все “ок”, а на деле будут проблемы.