В этой статье мы пошагово разберём, как настроить мониторинг состояния жёстких дисков с использованием технологии 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.
- Переходим в веб-интерфейсе Zabbix: Configuration → Templates → Create template.
- Заполняем поля:
- Template name:
Template SMART Monitoring
- Groups: выбираем подходящую группу, например,
Templates
.
- Template name:
- Нажимаем Add.
Шаг 7: Создание Элементов Данных (Items)
В созданном шаблоне переходим на вкладку Items.
- Нажимаем Create item.
- Настраиваем первый элемент данных:
- Name:
SMART Health /dev/sda
- Key:
smart.health[sda]
- Type of information:
Numeric (unsigned)
- Update interval:
1h
- Name:
- Нажимаем Add.
Создаём второй элемент данных для температуры:
- Name:
SMART Temperature /dev/sda
- Key:
smart.temperature[sda]
- Type of information:
Numeric (unsigned)
- Update interval:
1h
Нажимаем Add.
Шаг 8: Создание Триггеров (Triggers)
Переходим на вкладку Triggers и создаём два триггера:
- Первый триггер для контроля состояния диска:
- Name:
SMART Health FAILED on /dev/sda
- Expression:
last(/Template SMART Monitoring/smart.health[sda])=0
- Name:
- Второй триггер для температурного порога:
- Name:
High Temperature on /dev/sda
- Expression:
last(/Template SMART Monitoring/smart.temperature[sda])>50
- Name:
Шаг 9: Приложение Шаблона к Хосту
Применим созданный шаблон к нужному хосту:
- Переходим в Configuration → Hosts.
- Выбираем хост и нажимаем Templates.
- В поле Link new templates выбираем
Template SMART Monitoring
. - Нажимаем Update.
Шаг 10: Проверка Работоспособности
Переключаемся в Monitoring → Latest data.
- Выбираем нужный хост и убеждаемся, что данные SMART собираются корректно.
- Проверяем, что триггеры срабатывают при возникновении проблем с состоянием диска или температуре.
Заключение
Теперь у вас настроена система мониторинга состояния жёстких дисков с использованием SMART в Zabbix. Этот подход поможет вовремя обнаружить потенциальные проблемы и предотвратить потерю данных.