S.M.A.R.T + Zabbix | Windows

0

Наткнулся на статью сис.админа Zerox на счёт мониторинга S.M.A.R.T. диска средствами Zabbix. Но что-то у меня никак не получалось по его записи. Поэтому я опишу свой опыт настройки это необходимой вещи.

 Если вы здесь потому что вы начали майнить Chia можете написать мне все мои Контакты, могу предложить услугу по внедрению этого решения на ваши фермы, уже есть опыт. 

Будем разворачивать решение с Github. По сути, эта запись просто перевод с небольшими пояснениями. :)

Все необходимые компоненты я сложил в архив, который можно скачать с Я.Диска (если ссылка сломалась пишите к комменты, стучите на почту, смотрите на github).

Возможности решения

Данное решает такие задачи:

  1. Мониторинг состояние S.M.A.R.T диска (почти всех показателей);
  2. Мониторинг оставшегося ресурса SSD;
  3. Мониторинг температуры;
  4. Мониторинг производителя, партийного номера, серийного номера (Zabbix вас оповестит, если диск был заменен), что позволяет настроить инвентаризацию;
  5. Мониторинг количество неисправных секторов на диске;

Подготовка Zabbix-Server

Всё, что Вам потребуется, это добавить замечательный шаблон в свой Zabbix.

Подготовка Zabbix-Agent Windows

Установка smartmontools

Ничего необычного, просто устанавливаем smartmontools, как обычную программу. Единственный момент, не рекомендую менять путь, иначе его надо будет менять в конфиге агента и в скрипте.

Конфигурирование агента

Создаем папку scripts и помещаем туда наш скрипт smartctl-disks-discovery.ps1

Открываем zabbix_agentd.conf и правим

#Увеличиваем TimeOut до 30 секунд. Как показывает практика. Если этого будет мало, то потом увеличим.  
TimeOut = 20

И добавляем пользовательскую проверку

UserParameter=uHDD.get[*], for /F "tokens=* usebackq" %a in (`""%ProgramFiles%\smartmontools\bin\smartctl.exe" -i -H -A -l error -l background $1"`) do @echo %a
UserParameter=uHDD.discovery[*],powershell -NoProfile -ExecutionPolicy Bypass -File "%ProgramFiles%\Zabbix Agent\scripts\smartctl-disks-discovery.ps1"
UserParameter=uSSD.get[*], for /F "tokens=* usebackq" %a in (`""%ProgramFiles%\smartmontools\bin\smartctl.exe" -i -H -A -l error -l background $1"`) do @echo %a
UserParameter=uSSD.discovery[*],powershell -NoProfile -ExecutionPolicy Bypass -File "%ProgramFiles%\Zabbix Agent\scripts\smartctl-disks-discovery.ps1"

Осталось перезапустить агента и привязать наш хост к шаблону.

Примерно через час прилетят данные. (Для отладки можно поменять время обнаружения, я обычно ставлю 10 минут, меняем 1h на 10m. Главное, не забыть обратно вернуть).

Результат

Таким образом мы настроили мониторинг SSD и HDD дисков. Данное решение отлично показывает себя в проде. По критически важным дискам можно строить вот такие информативные графики. Мне нравится :)

ТраблШутинг

У меня такая проблема возникала, когда забыл ставить smartmontools

Invalid discovery rule value: cannot parse as a valid JSON object: invalid JSON object value starting character at: '????? ?맢??? ??⮤ ??? ??ࠦ???? ? ???祭??? NULL.
C:\Program Files\Zabbix Agent\scripts\smartctl-disks-discovery.ps1:34 ????:73
+ $disk_name = $smart_scanresul

 

0 0 голоса
Рейтинг статьи
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x