Налаштування моніторингу SMART для прогнозування відмов дисків

Диски часто виходять з ладу раптово, але їх можна передбачити заздалегідь. Ми налаштовуємо моніторинг 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