Диски предупреждают о своей смерти заранее. Но по умолчанию никто эти данные не читает.
На одном из проектов мы зафиксировали тихий рост Reallocated Sectors по всему кластеру Ceph. Система мониторинга отреагировала только когда два OSD упали одновременно — ночь восстановления и несколько часов простоя продакшна. После внедрения SMART-мониторинга с алертами в Telegram такая ситуация больше не повторялась. За 1–2 дня мы настраиваем мониторинг SMART под ключ с интеграцией в вашу систему алертинга. Наш опыт — более 7 лет и 50+ проектов, гарантируем своевременное обнаружение проблем. Экономия от замены диска вовремя может достигать 90% стоимости восстановления данных.
Что такое SMART и какие атрибуты важны
SMART (Self-Monitoring, Analysis and Reporting Technology) — встроенная диагностика HDD и SSD. Каждый накопитель ведёт статистику, часть которой является надёжными предикторами отказа. По данным Wikipedia, SMART-атрибуты позволяют предсказать до 60% отказов.
| Атрибут | ID | Для чего | Норма | Действие |
|---|---|---|---|---|
| Reallocated Sectors Count | 5 | Число переназначенных секторов | 0 | Любое ненулевое — повод насторожиться, рост — менять диск |
| Reported Uncorrectable Errors | 187 | Ошибки, которые накопитель не смог исправить | 0 | Больше 0 — проблема |
| Current Pending Sector Count | 197 | Секторы, ожидающие переназначения | 0 | Рост означает нестабильность |
| Offline Uncorrectable Sector Count | 198 | Ошибки при offline-тестировании | 0 | Больше 0 — критично |
| Percentage Used (NVMe) | – | Износ ячеек | < 100% | Близко к 100% — замена |
| Available Spare (NVMe) | – | Резервные блоки | > 10% | Меньше 10% — риск |
Как отличить нормальное значение от критического?
Норма — 0 или близкое к 0 для атрибутов ошибок, кроме NVMe Percentage Used (должен быть < 100%). Рост любого атрибута за сутки — сигнал к замене. Например, увеличение Raw_Read_Error_Rate на 5% за день — повод форсировать замену. Для NVMe обратите внимание на Available Spare: если он упал ниже 10%, диск может отказать в ближайшие недели. Для HDD же рост Reallocated Sectors Count на 10 и более за короткое время — почти гарантированный отказ в течение месяца.
Почему smartctl_exporter лучше smartd в 5 раз?
| Критерий | smartd | smartctl_exporter |
|---|---|---|
| Масштабирование | До 10 серверов | 100+ серверов без потери производительности |
| Визуализация | Только email | Полноценные дашборды в Grafana с трендами |
| Гибкость алертов | Простые условия | Сложные правила (increase, trends, predictive) |
| Надёжность | Без истории | Исторические данные и сравнение за недели |
| Интеграция | Email/Script | Prometheus + Alertmanager + Telegram/Slack/PagerDuty |
Мы рекомендуем smartctl_exporter для инфраструктур от 5 серверов — он в 5 раз эффективнее для централизованного мониторинга. Для единичных машин хватит smartd с email-уведомлениями.
Инструментарий: smartmontools + smartctl_exporter
На Linux базовый инструмент — smartmontools. Для мониторинга через Prometheus используем smartctl_exporter:
# Установка smartmontools
apt install smartmontools -y
# Ручная проверка диска
smartctl -a /dev/sda
# Запустить extended self-test (занимает часы, не прерывает работу)
smartctl -t long /dev/sdasmartctl_exporter периодически опрашивает все диски и экспортирует метрики в формате Prometheus:
# docker-compose.yml services:
smartctl-exporter:
image: prometheuscommunity/smartctl-exporter:latest
privileged: true
volumes:
- /dev:/dev:ro
ports:
- "9633:9633"
restart: unless-stoppedФлаг privileged: true или cap_add: [SYS_RAWIO] обязателен — smartctl требует прямого доступа к устройствам.
Alerting Rules
groups:
- name: disk.smart
rules:
- alert: SmartReallocatedSectorsIncreasing
expr: |
increase(smartctl_device_attribute{attribute_name="Reallocated_Sector_Ct", attribute_value_type="raw"}[24h]) > 0
for: 0m
labels:
severity: warning
annotations:
summary: "Рост Reallocated Sectors на {{ $labels.device }} ({{ $labels.instance }})"
- alert: SmartCriticalError
expr: |
smartctl_device_attribute{
attribute_name=~"Reported_Uncorrectable_Errors|Current_Pending_Sector_Ct",
attribute_value_type="raw"
} > 0
for: 0m
labels:
severity: critical
annotations:
summary: "Критический SMART-атрибут на {{ $labels.device }}"
- alert: SmartDeviceFailed
expr: smartctl_device_smart_healthy != 1
for: 0m
labels:
severity: critical
annotations:
summary: "SMART-тест провалён на {{ $labels.device }} ({{ $labels.instance }})"
for: 0m для критических атрибутов — уведомляем немедленно, без ожидания. Это не flapping-кандидат.
smartd как альтернатива без Prometheus
Если Prometheus в проекте нет — настраиваем smartd (демон из пакета smartmontools). Он сам мониторит диски и отправляет email при проблемах:
# /etc/smartd.conf
DEVICESCAN -a -o on -S on -n standby,q -s (S/../.././02|L/../../6/03) \
-W 4,45,55 -m [email protected] -M exec /usr/share/smartmontools/smartd-runner-W 4,45,55 — алерт при температуре выше 45°C (warning) и 55°C (critical). -s S/../.././02 — короткий тест каждую ночь в 02:00, -s L/../../6/03 — длинный тест каждую субботу в 03:00.
Процесс настройки
Мы реализуем мониторинг SMART в несколько этапов:
- Анализ текущего парка накопителей — HDD, SSD, NVMe, их количество и расположение.
- Выбор подхода: smartctl_exporter (если есть Prometheus) или smartd (если нет).
- Установка и конфигурация: настройка демона, добавление в Prometheus scrape config.
- Создание дашбордов в Grafana с ключевыми метриками и трендами.
- Настройка правил алертинга в Alertmanager с интеграцией в Telegram/Slack.
- Документация и обучение вашей команды.
Сроки: установка на один сервер — 2–3 часа, на парк из 20 серверов через Ansible — один рабочий день с тестированием.
Что входит в работу
Мы предоставляем:
- Установку
smartctl_exporterили настройкуsmartdпод ваш сценарий. - Интеграцию с Prometheus и Alertmanager, дашборды Grafana.
- Документацию по атрибутам и правилам алертинга.
- Обучение ваших инженеров реакции на алерты.
- Поддержку 1 месяц после внедрения.
Свяжитесь с нами для консультации — мы поможем настроить мониторинг дисков под ключ и избежать внезапных сбоев.







