SMARTTOOLS и Zabbix Agent 2

Мониторинг дисков с помощью smartmontools и Zabbix

В современной ИТ-инфраструктуре принято считать основными ресурсами производительность процессора и оперативной памяти. Но не стоит забывать, что все программы, будь то платформа 1С Предприятие или ОС Windows, устанавливаются на диски. Их состояние напрямую отражается на производительности системы.

В данной статье рассмотрим возможности мониторинга средствами ПО SMARTTOOLS с использованием системы мониторинга Zabbix.
В статье используется ОС Windows Server 2022.

Установка smartmontools

Для начала нужно установить SMARTTOOLS.
Скачать можно по ссылке.

После скачивания запускаем установщик и нажимаем “Далее”, не меняя настроек.

Первое сканирование дисков

Теперь нам потребуется провести первое сканирование, чтобы данные могли корректно отправляться агентом на Zabbix-сервер.

Для этого откройте CMD с правами администратора и перейдите в папку с программой, выполнив команду:

C:\Program Files\smartmontools\bin

А затем обратитесь к самой программе:

smartctl.exe --scan

Если программа смогла вывести информацию о всех дисках, значит всё работает корректно. Если нет, обратите внимание на состояние системы и критические ошибки в ней.

Установка и настройка Zabbix Agent 2

Теперь нужно установить Zabbix-agent 2. Именно второй, т.к. в него встроена работа со smart-данными из SMARTTOOLS.
Скачать можно с официального сайта Zabbix. Лучше использовать .MSI-формат — во время установки можно указать все данные для подключения и выбрать путь установки. Не забудьте исключить порт из Firewall, который указали при установке.

Далее нужно открыть конфиг Zabbix и добавить в него строку:

Plugins.Smart.Path="C:\Program Files\smartmontools\bin\smartctl.exe"

Сохраните файл, выйдите из него и перезапустите службу агента.
Основные настройки со стороны сервера с агентом Zabbix завершены.

Добавление шаблонов в Zabbix

Теперь нужно добавить шаблоны в сам Zabbix сервер. Их можно найти на том же сайте, где и агент. Как его установить, описывает инструкция на странице с этим шаблоном.

В интерфейсе Zabbix создайте узел для мониторинга и добавьте к нему шаблон SMART by Zabbix agent 2 active или SMART by Zabbix agent 2. Подключение соответствующего шаблона зависит от вида соединения между агентом и сервером — об этом можно прочитать в инструкции к шаблону.

Теперь нужно подождать некоторое время, т.к. данные приходят не сразу, и при этом в этом шаблоне нет предустановленных элементов данных, они появятся вместе с полученными данными.

Проверка передачи данных

Как понять, что данные вообще отправляются? Для этого выполните две команды в CMD с правами администратора:

Перейдите в папку с Zabbix агентом.
В моём случае команда выглядит так (замените путь на свой):

cd "C:\Program Files\Zabbix Agent 2"

Затем выполните команду для агента Zabbix:

zabbix_agent2.exe -t smart.disk.discovery

Если команда вывела ошибку, значит агент настроен неправильно.
Если вывела строку, начинающуюся со smart.disk.discovery и множеством слов и символов — значит данные на сервер отправляются.

Итак, через какое-то время начнут приходить данные

Рисунок 1 – Полученные данные

Не все данные могут быть полезны, их можно отключить Выбрав «Нет» напротив соответствующего элемента

Рисунок 2 – Отключение ненужных элементов

Краткое описание элементов мониторинга SMART

Название элемента Ключ Описание
SMART [#NAME]: Device model smart.disk.model[{#NAME}] Модель устройства. Извлекается из SMART-данных диска.
SMART [#NAME]: Serial number smart.disk.sn[{#NAME}] Серийный номер устройства.
SMART [#NAME]: Exit status smart.disk.es[{#NAME}] Код выхода утилиты smartctl. Битовый флаг: бит 0 — команда выполнена, бит 1 — ошибка ввода-вывода, бит 2 — ошибка синтаксиса, бит 3 — диск отказывает, бит 4 — атрибуты ниже порога.
SMART [#NAME]: Smartctl error smart.disk.error[{#NAME}] Текст ошибки при выполнении smartctl.
SMART [#NAME]: Critical warning smart.disk.critical_warning[{#NAME}] Критические предупреждения NVMe-контроллера. Битовое поле: 0 — перегрев, 1 — деградация, 2 — резервная область, 3 — ошибка контроллера, 4 — перегрев в зоне.
SMART [#NAME]: Percentage used smart.disk.percentage_used[{#NAME}] Процент израсходованного ресурса NVMe-накопителя.
SMART [#NAME]: Media errors smart.disk.media_errors[{#NAME}] Количество неисправимых ошибок данных, обнаруженных контроллером NVMe.
SMART [#NAME]: Temperature smart.disk.temperature[{#NAME}] Текущая температура диска в градусах Цельсия.
SMART [#NAME]: Power on hours smart.disk.hours[{#NAME}] Общее количество часов наработки (power-on hours).
SMART [#NAME]: Self-test passed smart.disk.test[{#NAME}] Результат самотестирования SMART. Возвращает 1, если тест пройден, иначе 0.
SMART [#NAME]: Raw_Read_Error_Rate smart.disk.attribute.raw_read_error_rate[{#NAME}] Частота ошибок чтения с поверхности диска. Сырое значение зависит от производителя.
SMART [#NAME]: Reallocated_Sector_Ct smart.disk.attribute.reallocated_sector_ct[{#NAME}] Количество переназначенных секторов. Увеличение указывает на деградацию диска.
SMART [#NAME]: Spin_Up_Time smart.disk.attribute.spin_up_time[{#NAME}] Среднее время раскрутки шпинделя (для HDD).
SMART [#NAME]: Start_Stop_Count smart.disk.attribute.start_stop_count[{#NAME}] Количество циклов запуска/остановки шпинделя.
SMART [#NAME]: Power_Cycle_Count smart.disk.attribute.power_cycle_count[{#NAME}] Количество полных циклов включения/выключения питания.
SMART [#NAME]: Reported_Uncorrect smart.disk.attribute.reported_uncorrect[{#NAME}] Количество ошибок, которые не удалось исправить аппаратным ECC.
SMART [#NAME]: Seek_Error_Rate smart.disk.attribute.seek_error_rate[{#NAME}] Частота ошибок позиционирования головок (для HDD).
SMART [#NAME]: Program_Fail_Chip_Ct smart.disk.attribute.program_fail_count_chip[{#NAME}] Количество сбоев записи в чип флеш-памяти (для SSD).
SMART [#NAME]: Bad_Block_Rate smart.disk.attribute.bad_block_rate[{#NAME}] Частота появления плохих блоков (для SSD).
SMART [#NAME]: Get disk attributes smart.disk.get[{#PATH},{#RAIDTYPE}] Основной элемент, выполняющий сбор SMART-данных через smartctl. Зависимые элементы используют его вывод.

Не нашли ответа на свой вопрос?

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных