Короткий ответ

SMART нужен, чтобы заменить диск до RAID-degraded. Минимальный набор на WS-042: Reallocated_Sector_Ct (ID 5, рост/не ноль) и Temperature (ID 194/190). Плюс Current_Pending_Sector, Offline_Uncorrectable если доступны. Не заменяют статус RAID. Не путайте с заполнением FS. Снимайте через Agent 2 smart-plugin или smartctl UserParameter, права, не smartctl -a каждую минуту на 24 дисках.

Poller 10.0.20.50, PSK psk-ws042.

Симптомы и как отличить

Типичная картина:

  • в smartctl ID 5 растёт, Zabbix не знает;
  • серверная в 40 °C, диски 60 °C без алерта;
  • overall-health PASSED при росте realloc — overall врёт как единственный триггер;
  • NVMe другой набор полей.

Отличия:

СигналСмысл
RAID degradedдиск уже выбит, RAID
SMART ID 5 растёт, RAID Optimalменяйте диск сейчас
Высокая temp, realloc 0охлаждение/пылесос, не ждать realloc

Возможные причины

  1. Нет item.
  2. Plugin Agent 2 не включён, нет пакета smartmontools.
  3. Права: агент не в группе disk, нет sudo на smartctl.
  4. Неверный -d тип для RAID/NVMe.
  5. Триггер только PASSED/FAILED, игнорирует тренд ID 5.
  6. Интервал 1s убивает диск — админ выключил item.
  7. Редко: USB-мост врёт SMART; VM без проброса дисков — в госте SMART гипервизорный, смотрите хост.

Диагностика

1. Видит ли ОС SMART

sudo smartctl -i /dev/sda
sudo smartctl -A /dev/sda | grep -E 'Reallocated_Sector_Ct|Temperature|Current_Pending'

NVMe:

sudo smartctl -A /dev/nvme0n1

MegaRAID (пример, номер диска сверьте у себя):

sudo smartctl -a -d megaraid,0 /dev/sdb

Нет данных — сначала OS/драйвер, не Zabbix.

2. Агент

zabbix_get -s 10.0.20.42 -p 10050 -k 'smart.disk.reallocated[sda]' \
  --tls-connect psk --tls-psk-identity psk-ws042 \
  --tls-psk-file /etc/zabbix/psk-ws042.psk

Ключ возьмите из вашего шаблона/plugin 6.0/7.0 (имена smart.disk.* зависят от шаблона). Если используете UserParameter — тестируйте его имя. Fail — AllowKey, sudo, plugin yaml Agent 2.

Windows: smartctl сборка для Windows или vendor; WMI температура не всегда ID 5. Часто агент на гипервизоре/физике, не в каждой VM.

3. LLD дисков

Слишком много USB — фильтр. Слишком мало — RAID скрыл устройства.

Решение

Сценарий A. Agent 2 plugin

Включите smart-плагин по документации вашей версии agent 2, path к smartctl, timeout. Интервал item 10–30 min, не 10s. Timeout item выше обычного (smartctl медленный).

Сценарий B. UserParameter

UserParameter=smart.realloc[*],sudo /usr/sbin/smartctl -A /dev/$1 | awk '/Reallocated_Sector_Ct/ {print $10}'
UserParameter=smart.temp[*],sudo /usr/sbin/smartctl -A /dev/$1 | awk '/Temperature_Celsius/ {print $10; exit}'

sudoers одной команде smartctl. Триггеры:

last(/WS-042/smart.realloc[sda])>0
min(/WS-042/smart.temp[sda],30m)>55

Порог температуры — от вендора диска, 55 — пример для предупреждения, не догма. ID 5: уже >0 Warning, рост за сутки — High.

Сценарий C. RAID passthrough

Документируйте -d megaraid,N / cciss,N / nvme. LLD сложнее — можно список дисков из storcli + заготовки. Не оставьте «sda только».

Сценарий D. Только overall-health

Оставьте как Disaster FAILED, но обязательно ID 5 и temp. PASSED при realloc — известное враньё.

Сценарий E. Гость WS-042

Физический SMART на hypervisor. В VM — виртуальный диск без полезного SMART. Не делайте вид, что шаблон Linux SMART в госте закрыл риск.

Связка с RAID: при ID 5 рост планируйте замену до fail в контроллере.

Как проверить, что проблема устранена

Latest data: realloc и temp с timestamp. На стенде диск (USB, не прод) — значения совпадают с smartctl -A. Триггер temp: тепловой фен в лаборатории не используйте на проде; временно снизьте порог на тестовом хосте и верните. Интервал не создаёт очередь: очередь.

systemctl status zabbix-agent2 --no-pager

Если не помогло

  • awk не попал в колонку — разные smartctl версии, парсьте -j JSON если доступен.
  • NVMe temperature в другом поле.
  • SELinux audit на smartctl.
  • Контроллер «RAID, SMART hidden» без режима passthrough — только vendor SNMP/storcli, не /dev/sd SMART.

Профилактика

  • Физические серверы: SMART в gold image.
  • Алерт unsupported smart-item.
  • Корреляция: temp всех дисков полки → охлаждение зала, не 24 отдельных паники без зависимости (или агрегат max).
  • Не игнорировать ID 5 «пока PASSED».

Политика замены должна быть письменной. Reallocated_Sector_Ct больше нуля — учёт и план. Рост за неделю — замена. overall-health FAILED — срочно, не спор «диск ещё крутится и PASSED». Температура: порог по даташиту и по полке. Если все диски 50 °C, это охлаждение зала; агрегируйте max, не 24 отдельных SMS без связи.

NVMe отдаёт другие поля износа. Не копируйте awk для HDD Temperature_Celsius на nvme без сверки smartctl -A. USB-флешка админа не должна попадать в LLD SMART сервера.

Интервал 15–30 минут, Timeout item выше обычного ping. Иначе smartctl по двум десяткам дисков забьёт poller на 10.0.20.50 и очередь. Это здоровье носителя, не realtime как CPU.

Сверьте вывод smartctl -A с Latest data после первого цикла. Если цифры ID 5 не совпадают, awk попал не в ту колонку или -d megaraid,N указывает не тот диск. Пока цифры не сходятся, триггер не включайте в SMS. PSK psk-ws042 здесь ни при чём, если ключ UserParameter; при plugin агента — тот же TLS, что для ping.

FAQ

Reallocated 4 штуки стабильно 2 года

Warning учёта, не всегда «меняй сегодня». Триггер на рост (change() / дельта за 7d) плюс абсолют >0 как info. Политика замены — ваша, но видеть число обязаны.

SSD другие атрибуты?

Да: percent life, media wearout. Не копируйте только ID 5 с HDD-шаблона. Все равно температура.

Можно ли SMART по SNMP на JBOD?

Если вендор отдаёт — да, после snmpwalk.

smartctl в cron и sender

Запасной путь. Штатный plugin проще, если работает.

Повредит ли частый smartctl диск?

Интервал минуты–десятки минут ок. Каждые 10s на SAS-полке — лишняя нагрузка и очередь.

Windows Storage Spaces и SMART

Смотрите физические диски на машине, где они есть. Spaces Health — RAID-слой, SMART — диск-слой, оба нужны.