Короткий ответ
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.
Симптомы и как отличить
Типичная картина:
- в
smartctlID 5 растёт, Zabbix не знает; - серверная в 40 °C, диски 60 °C без алерта;
- overall-health PASSED при росте realloc — overall врёт как единственный триггер;
- NVMe другой набор полей.
Отличия:
| Сигнал | Смысл |
|---|---|
| RAID degraded | диск уже выбит, RAID |
| SMART ID 5 растёт, RAID Optimal | меняйте диск сейчас |
| Высокая temp, realloc 0 | охлаждение/пылесос, не ждать realloc |
Возможные причины
- Нет item.
- Plugin Agent 2 не включён, нет пакета
smartmontools. - Права: агент не в группе
disk, нет sudo наsmartctl. - Неверный
-dтип для RAID/NVMe. - Триггер только
PASSED/FAILED, игнорирует тренд ID 5. - Интервал 1s убивает диск — админ выключил item.
- Редко: 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/nvme0n1MegaRAID (пример, номер диска сверьте у себя):
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 версии, парсьте
-jJSON если доступен. - 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 — диск-слой, оба нужны.