Инструменты пользователя

Инструменты сайта


zabbix_raid

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

zabbix_raid [2021/04/27 11:40]
metallic [Adaptec]
zabbix_raid [2022/03/25 17:00]
Строка 1: Строка 1:
-====== Введение ====== 
-Есть у меня в парке серверов множество различных рейд-контроллеров, в том числе софтовых(mdadm). У каждого из них имеются различные средства мониторинга, но хотелось бы все это отслеживать централизовано, например через zabbix, а в случае изменения состояния любого из массивов - получать уведомления, например по почте. Данная статья не является пошаговым руководством, а представляет из себя набор заметок на память для различных контроллеров. В каждом подразделе описана техника получения информации о состоянии массивов zabbix-агентом. 
  
-===== Sudoers ===== 
- 
-Большинство утилит управления рейд-контроллером требуют root-привелегий, создаем файл /etc/sudoers.d/zabbix: 
- 
-  Defaults:zabbix !requiretty 
-  Cmnd_Alias ZABBIX_CMD = /usr/sbin/tw_cli, /usr/sbin/MegaCli64, /usr/sbin/arcconf 
-  zabbix ALL = (other_user) NOPASSWD: ALL 
-  zabbix ALL = (root) NOPASSWD: ZABBIX_CMD 
- 
-===== mdadm ===== 
- 
-В Linux mdadm есть файл /proc/mdstat, в котором содержится информаци о всех массивах и их состоянии. У каждого массива есть вот такое текстовое обозначение: [UU] (кол-во букв U зависит от кол-ва дисков в массиве). Если один или более дисков выходит из строя, то вместо буквы U появляется знак подчеркивания: _ Соответственно ищем подобные массивы и подсчитываем их кол-во, если их больше 0, то поднимаем панику. В конфиге агента добавляем такой пользовательский параметр: 
- 
-  UserParameter=custom.softraid.status,egrep -c "\[.*_.*\]" /proc/mdstat 
-   
-И тестируем: 
- 
-  # zabbix_agentd -t custom.softraid.status 
-  custom.softraid.status[egrep -c "\[.*_.*\]" /proc/mdstat] [t|0] 
-   
-Как видно, параметр вернул ноль( [t|0] ), все нормально. 
- 
-===== 3Ware ===== 
- 
-Для мониторинга контроллеров 3ware (теперь уже LSI) понадобится утилита 3w_cli, скачать ее можно с оф. сайта производителя контроллера, либо поставить из стороннего репозитория(в случае с debian): [[http://hwraid.le-vert.net|hwraid]]. 
-  
-Теперь добавляем в конфиг забикса пользовательский параметр: 
- 
-  UserParameter=custom.3ware.status,sudo tw_cli /c0 show allunitstatus | grep "Not Optimal" | awk '{print $6}' 
- 
-Этот параметр аналогичным образом подсчитывает кол-во массивов(на первом контроллере), которое имеет статус "Not Optimal". Если в сервере установлено несколько контроллеров, то можно будет сделать скрипт с несколькими подобными командами и в конце сумировать результат. 
- 
-Проверяем работоспособность: 
- 
-  # zabbix_agentd -t custom.3ware.status 
-  custom.3ware.status[sudo /opt/3ware/CLI/tw_cli /c0 show allunitstatus | grep "Not Optimal" | awk '{print $6}'] [t|0] 
-   
-Все массивы в норме ([t|0]). 
-===== Adaptec ===== 
- 
-Для мониторинга контроллеров Adaptec понадобится утилита arcconf, скачать ее можно с оф. сайта производителя контроллера, либо поставить из стороннего репозитория(в случае с debian): [[http://hwraid.le-vert.net|hwraid]]. Делаем симлинк на arcconf в /usr/sbin/arcconf. 
- 
-В конфиг zabbix-агента добавляем следующий пользовательский параметр: 
- 
-  UserParameter=custom.adaptec.status,sudo arcconf GETCONFIG 1 | grep -i "Status of logical device" | grep -cv Optimal 
-   
-Этот параметр производит подсчет кол-ва массивов первого контроллера, статус которых отличается от "Optimal". Если в системе более одного контроллера, то нужно создать скрипт, который будет выполнять подобную команду для каждого контроллера и суммировать результат. 
- 
-Проверяем: 
- 
-  # zabbix_agentd -t custom.adaptec.status 
-  custom.adaptec.status[/opt/adaptec/arcconf GETCONFIG 1 | grep "Status of logical device" | grep -cv Optimal] [t|0] 
- 
-Все нормально, кол-во отказавших массивов ноль ([t|0]). 
-   
-Со стороны сервера: 
-  # zabbix_get -s X.X.X.X -k "custom.adaptec.status" 
-  0 
-   
- 
-===== LSI ===== 
- 
-Контроллеры LSI можно мониторить с помощью утилиты MegaCLI, в том числе контроллеры, которые установлены в серверах IBM серии X, например x3650 ставят контроллеры LSI. Скачать ее можно с сайта IBM(например ibm_utl_sraidmr_megacli-8.04.10_linux_32-64.zip), но проще [[https://docs.broadcom.com/docs-and-downloads/raid-controllers/raid-controllers-common-files/3DM2_CLI-linux_10-2-2-1_9-5-5-1.zip|с сайта производителя последнюю версию]], это универсальный установщик для любого дистрибутива. 
- 
-На сайте IBM есть пакеты только для redhat и suse, но не составляет труда конвертировать их в deb с поомщью alien. Делается это командой: 
- 
-  # alien --scripts _pakage_name_.rpm 
-   
-После конвертирования устанавливаем пакеты и добавляем пользовательский параметр в zabbix-агент: 
- 
-  UserParameter=custom.lsi.status,sudo MegaCli64 -LDInfo -Lall -aAll | grep State | grep -vc Optimal 
-   
-Этот параметр выполняет подсчет всех массивов со статусом отличным от "Optimal" 
- 
-Проверяем: 
- 
-  # zabbix_agentd -t custom.lsi.status 
-  custom.lsi.status[MegaCli64 -LDInfo -Lall -aAll | grep State | grep -vc Optimal] [t|0] 
- 
-===== Intel ===== 
- 
-В некоторых сервера с мат. платами intel устанавливали интегрированные контроллеры axx4sasmod. Управлять и мониторить их можно с помощью RAID Web Console 2(не понятно, почему она называется Web, когда работает не через браузер, а требует установки на клиенте), либо с помощью snmp. Команднострочная утилита CmdTool2 почему-то контроллер не обнаружила. Корректно настроить работу через snmp на Debian мне не удалось, как это сделать на редхат-подобных описано в статье, ссылка на которую дана ниже. 
- 
-===== Пример создания тригера ===== 
- 
-Создадим тригер отслеживания состояния массивов на примере mdadm. 
- 
-Создаем шаблон Configuration -> Templates -> Create template, задаем имя и добавляем в группу Templates: 
- 
-{{ :zabbix:raid:step1.png?direct&300 |}} 
- 
-В шаблоне открываем вкладку Items и создаем элемент. Указываем ключ(имя пользовательского параметра в zabbix-агенте) и уменьшаем кол-во дней хранения значений: 
- 
-{{ :zabbix:raid:step2.png?direct&300 |}} 
- 
-Дальше переходим во вкладку Triggers и создаем тригер, в поле Expression нажимаем на конпке Add и в появившемся окне в поле Item нажимаем Select, в появившемся окне выбираем группу Templates и только что созданый шаблон, там у нас один единственный элемент(Item), выбираем его. В выпадающем меню Function выбираем "Last (most recent) T value is NOT N" и проверяем, что в поле N стоит ноль, таким образом трегер будет проверять, что полученное значение от zabbix-клиента(кол-во отказавших массивов) равняется нолю, если это не так - он сработает. Вот что должно получиться(если все нормально, нажимаем Insert): 
- 
-{{ :zabbix:raid:step3.png?direct&300 |}} 
- 
-Ну и в заключении задаем имя тригера и уровень серъезности произшествия, я оценил его как Hight: 
- 
-{{ :zabbix:raid:step4.png?direct&300 |}} 
- 
-Нажимаем сохранить(Save). 
- 
- 
-===== Ссылки ===== 
- 
-  - [[http://www.alsigned.ru/?p=2556|Мониторинг LSI MegaRAID по SNMP]] 
-  - [[http://hwraid.le-vert.net/wiki/DebianPackages| HWRAID]] 
-  - [[https://wiki.debian.org/LinuxRaidForAdmins|LinuxRaidForAdmins]] 
-  - [[http://lab4.org/wiki/Zabbix_3ware_raidcontroller_ueberwachen|Zabbix 3ware raidcontroller ueberwachen]] 
-  - [[http://blog.nexcess.net/2010/12/28/managing-hardware-raid-with-megacli/|Managing hardware RAID with MegaCLI]] 
-  - [[http://undefinederror.org/installing-intel-raid-web-console-2-ubuntu/|Installing Intel Raid Web Console 2 on Ubuntu]] 
-  - [[https://downloadcenter.intel.com/Detail_Desc.aspx?lang=rus&changeLang=true&DwnldID=18441|Программа RAID Web Console 2 для ОС Linux]] 
-  - [[https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=23474&keyword=Command+Line+Tool+for+linux&lang=eng|Command Line Tool 2]] 
zabbix_raid.txt · Последнее изменение: 2022/03/25 17:00 (внешнее изменение)