Настройка мониторинга SMART для предсказания отказов дисков

Диски часто выходят из строя внезапно, но их можно предсказать заранее. Мы настраиваем мониторинг SMART, который отслеживает состояние накопителей и предупреждает о рисках отказа. Наша команда реализует проект под ключ — от аудита до настройки алертов, обеспечивая стабильную работу и своевременное обнаружение проблем.
Часто задаваемые вопросы

Диски предупреждают о своей смерти заранее. Но по умолчанию никто эти данные не читает.

На одном из проектов мы зафиксировали тихий рост 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/sda

smartctl_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 в несколько этапов:

  1. Анализ текущего парка накопителей — HDD, SSD, NVMe, их количество и расположение.
  2. Выбор подхода: smartctl_exporter (если есть Prometheus) или smartd (если нет).
  3. Установка и конфигурация: настройка демона, добавление в Prometheus scrape config.
  4. Создание дашбордов в Grafana с ключевыми метриками и трендами.
  5. Настройка правил алертинга в Alertmanager с интеграцией в Telegram/Slack.
  6. Документация и обучение вашей команды.

Сроки: установка на один сервер — 2–3 часа, на парк из 20 серверов через Ansible — один рабочий день с тестированием.

Что входит в работу

Мы предоставляем:

  • Установку smartctl_exporter или настройку smartd под ваш сценарий.
  • Интеграцию с Prometheus и Alertmanager, дашборды Grafana.
  • Документацию по атрибутам и правилам алертинга.
  • Обучение ваших инженеров реакции на алерты.
  • Поддержку 1 месяц после внедрения.

Свяжитесь с нами для консультации — мы поможем настроить мониторинг дисков под ключ и избежать внезапных сбоев.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1543
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142