В этой статье мы пошагово разберём, как настроить мониторинг состояния жёстких дисков с использованием технологии SMART (Self-Monitoring, Analysis and Reporting Technology) в системе мониторинга Zabbix. Мы рассмотрим установку необходимых инструментов, настройку Zabbix-агента, создание шаблонов и триггеров, а также проверим работоспособность мониторинга.


 

Введение

Технология SMART предназначена для самодиагностики жёстких дисков, отслеживания их состояния и прогнозирования возможных сбоев. Используя интеграцию SMART с Zabbix, можно автоматизировать сбор данных о состоянии дисков, отправлять уведомления о проблемах и предотвращать потерю данных.


Шаг 1: Установка Необходимых Инструментов

Для начала установим утилиту smartmontools, необходимую для работы с SMART.

Для Debian/Ubuntu:

sudo apt update
sudo apt install smartmontools

Для CentOS/Rocky Linux:

sudo yum install smartmontools

Проверка версии установленного пакета:

smartctl --version

Шаг 2: Проверка Состояния Диска

Прежде чем приступить к настройке мониторинга, проверим поддержку SMART на вашем диске.

Проверяем наличие поддержки SMART:

sudo smartctl -i /dev/sda

Вывод должен содержать строку вроде: SMART support is: Available или Enabled. Если поддержка отсутствует, её можно включить:

sudo smartctl -s on /dev/sda

Далее проверим текущее состояние диска:

sudo smartctl -a /dev/sda

Этот вывод содержит важные атрибуты, такие как температура, количество ошибок чтения/записи и общее состояние диска.


Шаг 3: Настройка Zabbix-Агента

Теперь настроим Zabbix-агент для сбора данных SMART.

Установка Zabbix-агента (если ещё не установлен):

Для Debian/Ubuntu:

sudo apt install zabbix-agent

Для CentOS/Rocky Linux:

sudo yum install zabbix-agent

Редактирование конфигурационного файла агента:

sudo nano /etc/zabbix/zabbix_agentd.conf

Добавляем или изменяем следующие параметры:

Server=<IP_ZABBIX_SERVER>
ServerActive=<IP_ZABBIX_SERVER>
Hostname=<Имя_хоста>

Где <IP_ZABBIX_SERVER> заменяется на IP-адрес сервера Zabbix, а <Имя_хоста> — на уникальное имя хоста.

Перезапускаем агент:

sudo systemctl restart zabbix-agent
 


Шаг 4: Добавление Пользовательских Параметров в Zabbix-Агент

Для сбора данных SMART добавим пользовательские параметры в конфигурацию Zabbix-агента.

Открываем файл конфигурации:

sudo nano /etc/zabbix/zabbix_agentd.conf

Добавляем следующие строки:

### SMART Monitoring Parameters ###
UserParameter=smart.health[*], sudo /usr/sbin/smartctl -H /dev/$1 | grep -q "PASSED\|OK" && echo 1 || echo 0
UserParameter=smart.temperature[*], sudo /usr/sbin/smartctl -A /dev/$1 | grep -E "Temperature_Celsius|Airflow_Temperature_Cel" | awk '{print $$10}'
UserParameter=smart.attributes[*], sudo /usr/sbin/smartctl -A /dev/$1 | grep "$2" | awk '{print $$10}'

Параметры означают следующее:

  • smart.health[*]: проверка общего состояния диска (1 — PASSED, 0 — FAILED);
  • smart.temperature[*]: получение текущей температуры диска;
  • smart.attributes[*]: получение значений конкретных атрибутов SMART.

Сохраняем файл и перезапускаем агент:

sudo systemctl restart zabbix-agent

Шаг 5: Настройка Прав Доступа для Zabbix-Агента

Для выполнения команд smartctl с привилегиями sudo добавляем запись в файл /etc/sudoers.

Открываем файл:

sudo visudo

Добавляем строку:

zabbix ALL=(ALL) NOPASSWD: /usr/sbin/smartctl

Сохраняем и закрываем файл.


Шаг 6: Создание Шаблона в Zabbix

Теперь создадим шаблон для мониторинга SMART в Zabbix.

  1. Переходим в веб-интерфейсе Zabbix: Configuration → Templates → Create template.
  2. Заполняем поля:
    • Template name: Template SMART Monitoring
    • Groups: выбираем подходящую группу, например, Templates.
  3. Нажимаем Add.

Шаг 7: Создание Элементов Данных (Items)

В созданном шаблоне переходим на вкладку Items.

  1. Нажимаем Create item.
  2. Настраиваем первый элемент данных:
    • Name: SMART Health /dev/sda
    • Key: smart.health[sda]
    • Type of information: Numeric (unsigned)
    • Update interval: 1h
  3. Нажимаем Add.

Создаём второй элемент данных для температуры:

  • Name: SMART Temperature /dev/sda
  • Key: smart.temperature[sda]
  • Type of information: Numeric (unsigned)
  • Update interval: 1h

Нажимаем Add.

 


Шаг 8: Создание Триггеров (Triggers)

Переходим на вкладку Triggers и создаём два триггера:

  1. Первый триггер для контроля состояния диска:
    • Name: SMART Health FAILED on /dev/sda
    • Expression: last(/Template SMART Monitoring/smart.health[sda])=0
  2. Второй триггер для температурного порога:
    • Name: High Temperature on /dev/sda
    • Expression: last(/Template SMART Monitoring/smart.temperature[sda])>50

Шаг 9: Приложение Шаблона к Хосту

Применим созданный шаблон к нужному хосту:

  1. Переходим в Configuration → Hosts.
  2. Выбираем хост и нажимаем Templates.
  3. В поле Link new templates выбираем Template SMART Monitoring.
  4. Нажимаем Update.

Шаг 10: Проверка Работоспособности

Переключаемся в Monitoring → Latest data.

  1. Выбираем нужный хост и убеждаемся, что данные SMART собираются корректно.
  2. Проверяем, что триггеры срабатывают при возникновении проблем с состоянием диска или температуре.

Заключение

Теперь у вас настроена система мониторинга состояния жёстких дисков с использованием SMART в Zabbix. Этот подход поможет вовремя обнаружить потенциальные проблемы и предотвратить потерю данных.

От root

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *