Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Мониторинг Железа
Датчики температур
Кулера
Диски
Напряжение
и т.д.
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 853
Стаж: 5 лет 7 месяцев
Откуда: Вологодская область
Поблагодарили: 37 раз
Контактная информация:

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Артём Мамзиков »

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools (Windows Linux)

Источники: Данный скрипт разработан не мной, а взять от сюда:
Zabbix: LLD-мониторинг дисков без UserParameter и скриптов на агентах
Предыдущая версия
Zabbix: LLD-мониторинг железа под Windows на PowerShell

Мой старый пост в группе ВК но все еще пользующийся спросом Как во становить данные с жесткого диска если он не открывается или данные были случайно удалены




Для работы данного скрипта на удаленном Хосте Должна быть установлена утилита Smartmontools и Zabbix Agent
Zabbix-сервер будет получать данные через внешнюю обработку

Работает там где есть и включен SMART на HDD (по сути это обычные жесткие диски)
рейд массивы тут не подойдут! (для рейд массивов нужно специализированное ПО для данного железа чтоб вытащить данные о состоянии дисков!)

Расшифровка S.M.A.R.T
S.M.A.R.T - технология самоконтроля, анализа и отчётности
Показать
S.M.A.R.T. (от англ. self-monitoring, analysis and reporting technology — технология самоконтроля, анализа и отчётности) — технология оценки состояния жёсткого диска встроенной аппаратурой самодиагностики, а также механизм предсказания времени выхода его из строя. Технология S.M.A.R.T. является частью протокола ATA (ныне распространенного в интерфейсе SATA).

Современные SSD накопители с SATA интерфейсом также поддерживают S.M.A.R.T. Однако широко распространённые USB флешки практически не поддерживают S.M.A.R.T. поскольку USB Mass Storage device class (англ.)русск. основан на другом протоколе, SCSI, который не содержит аналогичной S.M.A.R.T. функциональности. Существует небольшое количество топовых флешек, сделанных на основе SATA контроллеров и переходников SATA-USB, работающих по спецификации SAT (SCSI-ATA Translation) (англ.)русск.. Некоторые из таких переходников поддерживают трансляцию S.M.A.R.T. данных.
Одно ограничение на данный момент: мониторинг дисков только формата /dev/sd* (sda sdb)
Формат /dev/csmi*,* (Intel Matrix RAID) не поддерживается ввиду того, что zabbix_get считает запятую вторым аргументом. для новых версий возможно что то поменялось и можно что то сделать но у меня таких нет чтоб протестировать.

В конфигурации Заббикс Агента
Нужно раскомментировать строку EnableRemoteCommands = 1, иначе агент не сможет принимать команды.
начиная с Zabbix 5.0 system.run
Параметр EnableRemoteCommands теперь устарел.
Удаленные команды по-прежнему отключены по умолчанию, но в новых конфигурационных файлах, которые выражаются с помощью нового параметра DenyKey (DenyKey=system.run[*]) черный список, разрешить все AllowKey=system.run[*].
Удаленные команды можно включить, удалив (или закомментировав) ключ DenyKey=system.run[*]
Подробнее в оф.

Я так же выставил параметр Timeout=15 чтоб данные успевали приходить
Нужно задать переменные
Показать
Если не заданна переменная на Windows
zabbix_get -s 192.168.563.59 -p 10050 -k system.run["smartctl --scan-open"]
"smartctl" -- ?---- ----?--- --- ---?-
--------, -?--?-- -??--- --- ------ ?---

Возможно нужно задать переменные для smartctl
Пример Windows
Панель управления\Все элементы панели управления\Система\Дополнительные параметры системы
Откроется окно Свойства системы Вкладка Дополнительно
Переменные среды
Ищем Переменную PATH Для пользователя и Системные
Добавляем ;C:\Program Files\smartmontools\bin;

Заббикс Агент на Windows у нас обычно по умолчанию работает от учетной записи пользователя Локальная система и в нем не видит переменную проверим следующим образом
Проверка переменной для пользователя Локальная система
Показать
Перевод Запущенно от учетка Локальная система (работает служба заббикс Агента)
C:\WINDOWS\system32>smartctl --scan-open
"smartctl" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Про утилиту psexec.exe читаем тут кому интересно

Запуск CMD от пользователя Локальная система
Загрузить psexec.exe в корень диска C
Запустить CMD
cd \
psexec -i -s cmd.exe где -i для интерактивных и -s для системной учетной записи
будет запущена оболочка CMD. Тип whoami; он скажет "система"
Можно проверять команды от пользователя Локальная система

path %PATH%;C:\Program Files\smartmontools\bin
SET path=C:\Program Files\smartmontools\bin;%path%

Кому нужно
Откройте диспетчер задач. Убейте explorer.exe.
Из командной строки с повышенными командами start explorer.exe.
Когда проводник запускается, обратите внимание на имя "система" в строке меню "Пуск".

Можно проверить команды в CMD для smartmontools

Добавление
path %PATH%;C:\Program Files\smartmontools\bin
SET path=C:\Нужный путь;%path%
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\smartctl.exe" /ve /t REG_SZ /d "C:\Program Files\smartmontools\bin\smartctl.exe" /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\smartctl.exe" /v Path /t REG_SZ /d "C:\Program Files"\smartmontools\bin\ /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\smartctl-nc.exe" /ve /t REG_SZ /d "C:\Program Files\smartmontools\bin\smartctl-nc.exe" /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\smartctl-nc.exe" /v Path /t REG_SZ /d "C:\Program Files"\smartmontools\bin\ /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\smartd.exe" /ve /t REG_SZ /d "C:\Program Files\smartmontools\bin\smartd.exe" /f
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\smartd.exe" /v Path /t REG_SZ /d "C:\Program Files"\smartmontools\bin\ /f
REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path - просмотр
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d "%path%;C:\Program Files"\smartmontools\bin; /f

Удаление
REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\smartctl.exe" /f
REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\smartctl-nc.exe" /f
REG DELETE "HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\smartd.exe" /f

Переменные есть в разделах
HKEY_CURRENT_USER\Environment
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager\Environment
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Control\Session Manager\Environment
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
HKEY_USERS\S-1-5-21-3002483080-1650114603-3144430796-1000\Environment


Пример для Linux
./usr/share/bash-completion/completions/smartctl
export PATH="/usr/share/bash-completion/completions/:$PATH"
После проверяем команды для smartmontools


Возможно дать права sudo chmod u+s /usr/sbin/smartctl
Новый Шаблон + Скрипт Обновленный Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD SSD через smartmontools

Скачать Шаблон + Скрипт
Шаблон + Скрипт Проверка Жестких дисков LLD.zip
Шаблон + Скрипт Проверка Жестких дисков LLD
(22 КБ) 296 скачиваний
Установка
Устанавливаем на удаленный Хост программу Smartmontools и Заббикс агент
Скачиваем скрипт ложим его на заббикс сервер в моем случае путь такой
/usr/local/share/zabbix/externalscripts
Дать права на выполнение файла chmod 775 /usr/local/share/zabbix/externalscripts/smartctl.sh
Делаем импорт шаблона
Добавляем к узлу шаблон
Скрипт передает найденные диски в узлах Заббикс Серверу далее мы работаем только с 2мя данными это smartctl -A и smartctl -x для найденных дисков Получение Инфы и Атрибутов. Все остальные элементы в шаблоне зависимы от этих 2х элементов берут данные, с них и делают пред обработку по коду выбирая значение.

smartctl.sh
Показать

Код: Выделить всё

#!/bin/bash
# 2017/12/07 AcidVenom v1.0
# Скрипт мониторинга HDD с LLD для Zabbix (серверный вариант)

# Авто обнаружение дисков
# Ключ: discovery

# (IFS оболочка считает, что пробел является границей слов делает пробелы между слов $* - отбрасывает символы и границы слов \n – это escape-последовательность для новой строки (переводится в новую строку)
IFS=$'\n'
JSON="{\"data\":["
SEP=""

if [[ $2 = "discovery" ]]
then
# Запускаем команду smartctl --scan-open |и ищем строки содержащие /dev/sd и передаем всё в переменную get
get=`zabbix_get -s $1 -k system.run["smartctl --scan-open"] | grep "/dev/sd"`
# Запускаем Цикл из переменной get
for hdd in $get
do
# получаем переменную DISK = Данные переменной get| ищем строки содержащие /dev/sd | вывести значение после /dev/ | оставляем первые 3 значение остальное убираем
DISKID=`echo $hdd | grep "/dev/sd" | sed "s/\/dev\///" | cut -c 1-3`
        # После того как мы получили переменные для DISKID подставляем их (пример sda sdb)
		# Проверяем что включен smart на данном диске ищем строку SMART support is: Enabled если ее нет ничего не выводим, при поиске по шаблону
		#внутри [!=] сравнение строк SMART support is: Enabled = SMART support is: Enabled выполняется передаем дальше.
        if [[ `zabbix_get -s $1 -k system.run["smartctl -i /dev/$DISKID"] | grep "SMART support is: Enabled"` != "" ]]
        then
        JSON=$JSON"$SEP\n{\"{#DISKID}\":\"$DISKID\"}"
        SEP=", "
        fi
done
JSON=$JSON"\n]}"
echo -e $JSON

# Получение информации о дисках
# Ключи: info и attr

else
        # Получение информации входные переменные 2 и 3 пример ./smartctl.sh IP-hosta sda info
        if [[ $3 = "info" ]]
        then
        get=`zabbix_get -s $1 -k system.run["smartctl -x /dev/$2"]`
        for out in $get
        do
        echo $out
        done
		# Получение атрибутов входные переменные 2 и 3 пример ./smartctl.sh IP-hosta sda attr
        elif [[ $3 = "attr" ]]
        then
        get=`zabbix_get -s $1 -k system.run["smartctl -A /dev/$2"]`
        for out in $get
        do
        echo $out
        done
        fi
fi
Первый этап: обнаружение доступных дисков sd* с помощью внешней проверки smartctl.sh с ключами {HOST.CONN} и discovery. В ответ сервер получает JSON с дисками, на которых активирована функция SMART. Диски без SMART'а или не sd* не выводятся.

Этап второй: получение для каждого из найденных дисков двух элементов — Info и Attr. Info — информация о диске, Attr — атрибуты SMART. «Почему не запросить smartctl -a /dev/sd* ?» — спросите вы. Такой вывод получается не полный для части дисков, теряются атрибуты и так далее. Пришлось изобретать на ходу.

Третий этап: Info и Attr разбираются на зависимые элементы с помощью предобработки регулярными выражениями. Это самая простая часть. Собственно, вам только останется подогнать под себя «регулярку».
Установка и настройка smartmontools
Показать
Для Windows всё просто скачиваем .exe запускаем устанавливаем

Для Linux
Устанавливаем набор утилит для мониторинга жёстких дисков - smartmontools
apt-get update
apt-get install smartmontools

На данный момент, для Debian Jessie, в репозитории Backports, доступна более новая версия. Если данный репозиторий подключен, то утилиту можно поставить так:
apt-get update
apt-get install -t jessie-backports smartmontools

Настраиваем
Включаем мониторинг, раскомментируем строчку
nano /etc/default/smartmontools
start_smartd=yes

chmod u+s /usr/sbin/smartctl -чтобы запуск проходил необходимо установить бит SUID на файл smartctl
nano /etc/default/smartmontools запуск smartmontools, для этого раскомментируем строку start_smartd=yes
/etc/init.d/smartmontools start - запускаем

Из Исходного кода
tar -zxvf smartmontools-6.6.tar.gz - распаковать
rm -f Smartmontools-6.6.tar.gz - удаляем архив
cd smartmontools-6.6 - переходим в директорию
./configure --help - вызов справки
./configure
make
make install

Для того что бы указать свои пути установки из исходников и параметры смотрим под сполером
Руководство различных версий
Показать
Руководство для различных дистрибутивов Linux
================================================

Примечание: Пожалуйста, присылайте исправление / дополнение:
smartmontools-support@listi.jpberlin.de

Для Красная шляпа: Red Hat:
Если вы не хотите, чтобы перезаписать пакет «распределения», используйте:
./configure

В противном случае используйте свои пути:
./configure --sbindir=/usr/sbin путь к sbin исполняемых файлов (он же в path)
--sysconfdir=/etc путь папка где хранится конфигурация
--mandir=/usr/share/man путь до Документации о программе
--docdir=/usr/share/doc/smartmontools путь до Документации о программе
--with-initscriptdir=/etc/rc.d/init.d путь до папки Автозагрузки

Для Slackware:
Если вы не хотите, чтобы перезаписать пакет «распределения», используйте:
./configure

В противном случае используйте:
./configure --sbindir=/usr/sbin путь к sbin исполняемых файлов (он же в path)
--sysconfdir=/etc путь папка где хранится конфигурация
--mandir=/usr/share/man путь до Документации о программе
--docdir=/usr/share/doc/smartmontools путь до Документации о программе
--with-initscriptdir=/etc/rc.d путь до папки Автозагрузки

А также
удалить пакет Smartmontools SmartSuite (только корень может это сделать)
Перед сделать установку

Сценарий инициализации работает на Slackware. Вы просто должны добавить запись типа
следующее /etc/rc.d/rc.M или /etc/rc.d/rc.local:

if [ -x /etc/rc.d/smartd ]; then
. /etc/rc.d/smartd start
fi

Для того, чтобы отключить его:
chmod 644 /etc/rc.d/smartd

Список опций:
/etc/rc.d/smartd

Для SuSE:
./configure --sbindir=/usr/sbin путь к sbin исполняемых файлов (он же в path)
--sysconfdir=/etc путь папка где хранится конфигурация
--mandir=/usr/share/man путь до Документации о программе
--docdir=/usr/share/doc/packages/smartmontools-VERSION путь до Документации о программе
--with-initscriptdir=/etc/rc.d/init.d путь до папки Автозагрузки


Подробное описание аргументов для настройки команды
===========================================================

При вводе:
./configure --help
описание доступных опций конфигурации печатается
[Со значениями по умолчанию в квадратных скобках]. Смотрите также раздел выше [3].

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

Старый вариант замены
--with-docdir --docdir = DIR = DIR (Autoconf> = 2,60)
--enable-drivedb [не требуется никакой вариант]
--disable-drivedb --without-drivedbdir
--enable-savestates --with-savestates [= да]
--disable-savestates [не требуется никакой вариант]
--enable-attrbutelog --with-attributelog [= да]
--disable-savestates [не требуется никакой вариант]
--with-initscriptdir [= да] --with-initscriptdir = DIR
--with-initscriptdir = автоматический --with-initscriptdir = DIR

Вот пример:
Если вы установите prefix =/home/joe и ни один из остальных четырех
переменные затем различные каталоги, которые используются бы:
--sbindir /home/joe/sbin
--docdir /home/joe/share/doc/Smartmontools
--mandir /home/joe/share/doc/person
--sysconfdir /home/joe/ и т.д.
--with-ExampleDir /home/joe/share/doc/Smartmontools/examplescripts
--with-drivedbdir /home/joe/share/Smartmontools
--with-initscriptdir [отключено]
--with-systemdsystemunitdir [смотри ниже]

Если Systemd присутствует (и отчеты PKG-конфигурации/Библиотека/Systemd/система
как systemdsystemunitdir):

--with-systemdsystemunitdir /home/joe/share/Systemd/система

еще

--with-systemdsystemunitdir [отключено]

Дополнительная информация об использовании Configure можно найти здесь:
https://www.gnu.org/software/autoconf/m ... re-Scripts
Можно еще настроить почту если нужно
Настраиваем мониторинг. Комментируем строку с DEVICESCAN
nano /etc/smartd.conf
#DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
/dev/sda -a -s (S/../../(2|4)/01|L/../../6/01) -m user@example.ru -M test
# diminishing
-a - включение большинства возможностей мониторинга: проверка "здоровья" диска, отслеживание изменений всех атрибутов, отслеживание неудачных тестов диагностики;
-s - По вторникам и четвергам в час ночи проводить краткий тест, а по субботам тоже в час ночи - долгий тест
-m - почтовый адрес получателя
-М test - отправить сразу тестовое письмо.
-M diminishing - постоянно напоминать об ошибке

Перезапускаем службу, если она была запущена:
systemctl status smartd.service

Если всё нормально, то на почту должно прийти тестовое письмо от smartd. Если тестовое письмо пришло, то меняем в опции -M test на diminishing.
Команды для тестов
Команды тестирования
Показать
Водим команды На CMD или BASH
Смотрим какие диски есть в системе:
smartctl --scan
smartctl --scan-open

Пример ответа
C:\Users\14-1>smartctl --scan-open
/dev/sda -d ata # /dev/sda, ATA device
/dev/sdb -d ata # /dev/sdb, ATA device

Команда для Диска SDA Посмотреть более подробную информацию о каком либо диске
smartctl -i /dev/sda

Далее смотрим информацию о его здоровье. Если у Вас не PASSED, то диск следует заменить
smartctl -H /dev/sda

Теперь о здоровье подробно:
smartctl -A /dev/sda
smartctl -A
Показать
У многих производителей своё индивидуальное понимание атрибутов диска, поэтому не стоит ориентироваться на RAW_VALUE (кроме значения температуры). Например у Seagate, Raw Read Error Rate очень большое и это нормально. У WD равно 0 и это тоже нормально.
Для более детально понимания вопроса, обратитесь на профильные форумы или к официальной документации производителя диска.
Ключевое значение имеет содержимое 3-х столбцов:

VALUE - текущее значение параметра
WORST - наихудшее значение, которого когда-либо достигало значение Value
THRESH - значение, которого должен достигнуть Value этого же атрибута, чтобы состояние атрибута было признано критическим.

Например, с ростом температуры RAW значение будет расти, а VALUE будет уменьшаться и упав до THRES, диск скорее всего скоро "умрёт" от жары.
Включить если выключен СМАРТ
smartctl -a /dev/sda - проверка
smartctl -s on /dev/sda - включение

На BASH Linux сразу с обработкой
smartctl --scan-open| grep "/dev/sd"
smartctl --scan-open | grep "/dev/sd" | sed "s/\/dev\///"
smartctl --scan-open | grep "/dev/sd" | sed "s/\/dev\///" | cut -c 1-3
Пример для диска SDA
smartctl -i /dev/sda | grep "SMART support is: Enabled"
Информация
smartctl -x /dev/sda
Атрибуты
smartctl -A /dev/sda


Запрос с Zabbix Servera
zabbix_get -s IP DNS удаленного хоста -k system.run["smartctl --scan-open"] | grep "/dev/sd"

Пример ответа
zabbix_get -s 192.168.561.9 -k system.run["smartctl --scan-open"] | grep "/dev/sd"
/dev/sda -d ata # /dev/sda, ATA device
/dev/sdb -d ata # /dev/sdb, ATA device
/dev/sdc -d scsi # /dev/sdc, SCSI device

zabbix_get -s 192.168.561.9 -k system.run["smartctl --scan-open"] | grep "/dev/sd" | sed "s/\/dev\///" | cut -c 1-3
sda
sdb
sdc

Команда для Диска SDA пример
zabbix_get -s 192.168.561.9 -k system.run["smartctl -i /dev/sda"]
Проверяем что включен smart на данном диске
zabbix_get -s 192.168.561.9 -k system.run["smartctl -i /dev/sda"] | grep "SMART support is: Enabled"
SMART support is: Enabled
Информация
zabbix_get -s $1 -k system.run["smartctl -x /dev/sda"]
Атрибуты
zabbix_get -s $1 -k system.run["smartctl -A /dev/sda"]

Проверка скрипта команды
Поиск дисков
./smartctl.sh IP-hosta discovery
Получение информации входные переменные 2 и 3 пример для sda
./smartctl.sh IP-hosta sda info
Получение атрибутов входные переменные 2 и 3 пример для sda
./smartctl.sh IP-hosta sda attr
КОМАНДЫ ДЛЯ SMARTMONTOOLS
Показать
C:\Program Files\smartmontools\bin>smartctl -h
smartctl 6.6 2017-11-05 r4594 [x86_64-w64-mingw32-win7-sp1] (sf-6.6-1)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org


Использование: smartctl [options] device

============================================ ПОКАЗАТЬ ИНФОРМАЦИОННЫЕ ВАРИАНТЫ =====

-h, --help, --usage
Показать справку помощь и выйти

-V, --version, --copyright, --license
Распечатать информацию о лицензии, авторских правах и версии и выйти

-i, --info
Показать идентификационную информацию для устройства

--identify[=[w][nvb]]
Показать слова и биты из идентификационных данных устройства (ATA)

-g NAME, --get=NAME
Получить настройки устройства: all, aam, apm, dsn, lookahead, security, wcache, rcache, wcreorder, wcache-sct

-a, --all
Показать всю интеллектуальную информацию для устройства

-x, --xall
Показать всю информацию для устройства

--scan
Сканирование устройств

--scan-open
Сканируйте устройства и попытайтесь открыть каждое из них

================================== ПАРАМЕТРЫ ПОВЕДЕНИЯ SMARTCTL ВО ВРЕМЯ ВЫПОЛНЕНИЯ =====

-q TYPE, --quietmode=TYPE (ATA)
Набор smartctl тихий режим для одной из ошибок только, молчком, без серийных

-d TYPE, --device=TYPE
Укажите тип устройства для одного из:
ata, scsi, nvme[,NSID], sat[,auto][,N][+TYPE], usbcypress[,X], usbjmicr
on[,p][,x][,N], usbprolific, usbsunplus, intelliprop,N[+TYPE], aacraid,H,L,ID, a
reca,N[/E], auto, test

-T TYPE, --tolerance=TYPE (ATA)
Tolerance: normal, conservative, permissive, verypermissive
Толерантность: нормальная, консервативная, снисходительная, очень снисходительная.

-b TYPE, --badsum=TYPE (ATA)
Установить действие на плохую контрольную сумму в один из: warn, exit, ignore

-r TYPE, --report=TYPE
Отчет о транзакциях (см. man-страницу)

-n MODE[,STATUS], --nocheck=MODE[,STATUS] (ATA)
Нет проверки, если: never, sleep, standby, idle (see man page)

============================== ФУНКЦИЯ УСТРОЙСТВА ВКЛЮЧЕНИЕ / ВЫКЛЮЧЕНИЕ КОМАНД =====

-s VALUE, --smart=VALUE
Включение / выключение SMART в устройстве (вкл / выкл)

-o VALUE, --offlineauto=VALUE (ATA)
Включение / выключение автоматического автономного тестирования на устройстве (вкл/выкл)

-S VALUE, --saveauto=VALUE (ATA)
Включить / отключить автоматическое сохранение атрибутов на устройстве (вкл / выкл)

-s NAME[,VALUE], --set=NAME[,VALUE]
Включение / выключение / изменение настроек устройства: aam,[N|off], apm,[N|off], dsn,[on|off], lookahead,[on|off], security-freeze, standby,[N|off|now], wcache,[on|off], rcache,[on|off], wcreorder,[on|off[,p]], wcache-sct,[ata|on|off[,p]]

======================================= ПАРАМЕТРЫ ЧТЕНИЯ И ОТОБРАЖЕНИЯ ДАННЫХ =====

-H, --health
Показать состояние интеллектуального здоровья устройства

-c, --capabilities (ATA, NVMe)
Показать интеллектуальные возможности устройства

-A, --attributes
Показывать атрибуты и значения, относящиеся к поставщику устройств SMART

-f FORMAT, --format=FORMAT (ATA)
Задать выходной формат для атрибутов: old, brief, hex[,id|val]

-l TYPE, --log=TYPE
Просмотр журнала устройства. ТИП: error, selftest, selective, directory[,g|s], xerror[,N][,error], xselftest[,N][,selftest], background, sasphy[,reset], sataphy[,reset], scttemp[sts,hist], scttempint,N[,p], scterc[,N,M], devstat[,N], defects[,N], ssd, gplog,N[,RANGE], smartlog,N[,RANGE], nvmelog,N,SIZE

-v N,OPTION , --vendorattribute=N,OPTION (ATA)
Задать параметр отображения для атрибута поставщика N (см. man-страницу)

-F TYPE, --firmwarebug=TYPE (ATA)
Используйте обходной путь ошибки прошивки: none, nologdir, samsung, samsung2, samsung3, xerrorlba, swapid

-P TYPE, --presets=TYPE (ATA)
Предустановки для конкретного привода: use, ignore, show, showall

-B [+]FILE, --drivedb=[+]FILE (ATA)
Чтение и замена [добавить] [add] базы данных диска из файла
[по умолчанию в +C:/Program Files/smartmontools/bin/drivedb-add.h и затем C:/Program Files/smartmontools/bin/drivedb.h]

============================================ ВАРИАНТЫ САМОТЕСТИРОВАНИЯ УСТРОЙСТВА =====

-t TEST, --test=TEST
Выполнить тест. ТЕСТ: offline, short, long, conveyance, force, vendor,N, select,M-N, pending,N, afterselect,[on|off]

-C, --captive
Выполните тест в режиме captive (along with -t)

-X, --abort
Прервать любой непривязанный тест на устройстве

=================================================== ПРИМЕРЫ SMARTCTL =====

smartctl -a /dev/sda
(Печатает всю интеллектуальную информацию)

smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda
(Включает SMART на первом диске)

smartctl -t long /dev/sda
(Выполняет расширенное самотестирование диска)

smartctl --attributes --log=selftest --quietmode=errorsonly /dev/sda
(Печатает ошибки самотестирования и атрибутов)

smartctl -a /dev/sda
(Выводит всю информацию для диска на PhysicalDrive 0)

smartctl -a /dev/pd3
(Выводит всю информацию для диска на PhysicalDrive 3)

smartctl -a /dev/tape1
(Печатает всю информацию для SCSI ленты на ленте 1)

smartctl -A /dev/hdb,3
(Выводит атрибуты для физического диска 3 на RAID 3ware 9000)

smartctl -A /dev/tw_cli/c0/p1
(Выводит атрибуты для контроллера 3ware 0, порт 1 с помощью tw_cli)

smartctl --all --device=areca,3/1 /dev/arcmsr0
(Печатает всю интеллектуальную информацию для 3-го ATA-диска 1-го корпуса на 1-м RAID-контроллере Areca)

Методы и порядок интеллектуального доступа ATA могут быть заданы модификаторами следуя за именем устройства:
/dev/hdX:[saicm], where
's': SMART_* IOCTLs, 'a': IOCTL_ATA_PASS_THROUGH,
'i': IOCTL_IDE_PASS_THROUGH, 'f': IOCTL_STORAGE_*,
'm': IOCTL_SCSI_MINIPORT_*.
По умолчанию в этой системе используется /dev/sdX:pasifm

smartctl --smart=on --offlineauto=on --saveau
to=on /dev/sda
smartctl -s enable
smartctl -scan on
smartctl -a /dev/sda
smartctl --attributes --log=selftest --quietmode=errorsonly /dev/hda
smartctl --attributes --log=selftest --quietmode=errorsonly /dev/sda
smartctl -a /dev/pd3
smartctl -a /dev/tape1
smartctl -A /dev/hdb,3

smartd -h -Вызов справки
smartd 7.2 2020-12-30 r5155 [архитектуру x86_64-w64-mingw32-Win7 из-пакетом обновления 1] (СФ-7.2-1)
Авторское право (C) 2002-20, Брюс Аллен, Кристиан Франке, www.smartmontools.org

Использование: smartd [options]

-A PREFIX, --attributelog=PREFIX Занесите информацию атрибута ATA в {ПРЕФИКС}МОДЕЛЬ-SERIAL.ata.csv
-B [+]FILE, --drivedb=[+]FILE Прочитать и заменить [добавить] базу данных диска из ФАЙЛА [значение по умолчанию равно +C:/Program Files/smartmontools/bin/drivedb-add.h, а затем C:/Program Files/smartmontools/bin/drivedb.h]
-c NAME|-, --configfile=NAME|- Прочитать ИМЯ файла конфигурации или стандартный идентификатор [значение по умолчанию равно C:/Program Files/smartmontools/bin/smartd.conf]
-d, --debug Запустите smartd в режиме отладки
-D, --showdirectives Распечатайте директивы файла конфигурации и выйдите
-h, --help, --usage Отобразите эту справку и выйдите
-i N, --interval=N Установите интервал между проверками диска равным N секундам, где N >= 10
-l local[0-7], --logfacility=local[0-7] Войдите в "./smartd.log", стандартный вывод, стандартный вывод [по умолчанию используется журнал событий]
-p NAME, --pidfile=NAME Записать ИМЯ файла PID
-q WHEN, --quit=WHEN Завершите работу на одном из: nodev, ошибки, nodevstartup, никогда, onecheck, showtests
-r, --report=TYPE Отчет о транзакциях для одного из: ioctl[,N], ataioctl[,N], scsiioctl[,N], nvmeioctl[,N]
-s PREFIX, --savestates=PREFIX Сохранение состояний диска в {PREFIX}MODEL-SERIAL.TYPE.state {ПРЕФИКС}МОДЕЛЬ-СЕРИЙНЫЙ НОМЕР.ТИП.состояние
-w NAME, --warnexec=NAME Запуск ИМЕНИ исполняемого файла при предупреждениях [значение по умолчанию равно C:/Program Files/smartmontools/bin/smartd_warning.cmd]
--service Запуск от имени службы Windows (см. справочную страницу), установите с:
smartd install [options]
Удалить сервис с помощью:
smartd remove
-V, --version, --license, --copyright Лицензия на печать, информация об авторских правах и версии
Расшифровка S M A R T атрибутов
Показать
S.M.A.R.T. - Википедия EN - Больше инфы
S.M.A.R.T. - Википедия русская версия
smartmontools/www/examples/ Примеры для разных дисков
В самой программе вывод идет с нижним подчеркиванием и длиной 21 символ
smartmontools/smartmontools/Drivedb.h

Расшифровка атрибутов S.M.A.R.T

Идентификаторы атрибутов указаны в десятичной системе счисления, а в скобках они же – в шестнадцатеричной.
001 ( 1h ) Raw Read Error Rate - абсолютное значение ошибок считывания. Существует некоторые отличия в формировании значения данного атрибута разными производителями. Из практики могу сказать, что накопители Seagate могут иметь гигантское значение RAW этого атрибута, реально будучи в хорошем состоянии, а накопители Western Digital могут иметь его нулевым, имея критические показатели по другим характеристикам. Некоторые модели вообще не поддерживают данный атрибут.
002 ( 02h ) Throughput Performance - усредненная производительность жесткого диска. Редко встречающийся атрибут.
003 ( 3h ) Spin Up Time - Среднее время раскрутки шпинделя диска от 0 RPM до рабочей скорости. Для SSD дисков не поддерживается.
004 ( 4h ) Start/Stop Count - Количество циклов запуск/останов шпинделя.
005 ( 5h ) Reallocated Sector Count - Количество переназначенных ( перераспределенных) секторов . Современные накопители имеют резервную область поверхности для использования ее объема в случае ухудшения характеристик блоков из основной зоны. Если микропрограмма накопителя обнаруживает ошибки с записи/чтения какого-либо блока рабочей поверхности, то запускается механизм, обеспечивающий переадресацию обращений к дефектному блоку ( сектору ), на блок из резервной части. Он автоматически перемещает его данные в резервную область, а данный блок помечается как "переназначенный". Часто этот процесс называют "remapping", или "automatic defect reassignment". Процедура переназначения сбойных секторов на резервные, выполняется автоматически внутренней микропрограммой накопителя, и для пользователя (операционной системы) она невидима. Сам факт переназначения и количество переназначенных секторов доступны только из журналов SMART. Поле абсолютного значения атрибута Raw Valueсодержит общее количество переназначенных секторов. Нормализованное значение Value отражает процент допустимого количества дефектных блоков. При исчерпании резервной области, переназначение становится невозможным и диск подлежит замене. Даже некритическое, но большое значение этого поля, может привести к снижению скорости обмена данными, поскольку накопитель выполняет дополнительные операции установки головок на дорожки резервной области, которая обычно находится в конце рабочей поверхности диска.
006 (06) Read Channel Margin Запас канала чтения. Назначение этого атрибута не документировано. В современных накопителях не используется.
007 ( 7h ) Seek Error Rate - Частота появления ошибок позиционирования блока магнитных головок (БМГ) . Дисковые накопители контролирует правильность установки головок на требуемую дорожку поверхности. В случае, когда установка выполнилась неверно, фиксируется ошибка и операция повторяется. На практике, большое количество ошибок позиционирования может быть вызвано не только проблемами оборудования, но и влиянием внешних факторов – не соответствующим температурным режимом или вибрацией.
008 ( 8h ) Seek Time Performance - средняя скорость позиционирования магнитных головок. Если значение атрибута уменьшается (замедление позиционирования), то велика вероятность проблем с механической частью привода головок.
009 (09h) Power-On Hours (POH) Количество рабочих часов - количество часов, когда диск находился во включенном состоянии за весь срок с момента производства, в виде целочисленного значения в часах. Иногда встречаются модели накопителей, в которых внутреннее значение данного атрибута сохраняется в виде количества рабочих минут или секунд, а не часов. Достижение порогового значения данного атрибута означает выработку ресурса, заданного производителем ( MTBF - Mean Time Between Failures
010 ( 0Ah ) Spin Retry Count - Количество повторных попыток старта шпинделя. После включения питания, накопитель раскручивает диски и контролирует достижение рабочей скорости вращения, заданной производителем для данной модели . Если за отведенное контрольное время рабочая скорость не достигнута, увеличивается значение данного атрибута и выполняется повторная раскрутка двигателя.
011 ( 0B ) Recalibration Retries - атрибут отражает количество повторных рекалибровок, в случае, если первая попытка была неудачной. Если значение атрибута увеличивается, то велика вероятность проблем с механической частью накопителя. Кроме того, увеличение абсолютного значения данного атрибута может быть вызвано тем, что процедура рекалибровки используется внутренней микропрограммой накопителя для коррекции других типов ошибок.
012 ( 0Ch ) Device Power Cycle Count - абсолютное значение Raw Value указывает на количество циклов включения/выключения питания накопителя за весь период эксплуатации. Нормализованное значение Value обычно не изменяется и равно 100.
013 ( 0Dh ) - Soft Read Error Rate - Количество программных сбоев - совокупное количество программных сбоев. Нормализованное значение: начиная со 100, отображает процент оставшегося допустимого нарастающего количества программных сбоев.
100 ( 64h ) Erase/Program Cycles - количество циклов стирания –записи перепрограммируемой памяти (flash) для SSD-дисков. Количество таких циклов ограниченно и зависит от микросхем постоянной перезаписываемой памяти, используемых в данной модели SSD.
103 ( 67h ) Translation Table Rebuild - количество событий, связанных с разрушением внутренних таблиц транслятора и его перестроением.
170 ( AAh )Reserved Block Count - количество доступных резервных блоков для переназначения сбойных секторов (см. атрибут E8h).
171 ( ABh ) Program Fail Count - ошибки записи в перепрограммируемую память SSD
172 ( ACh ) Erase Fail Count – ошибки стирания flash-памяти SSD. Процесс записи в перезаписываемую постоянную память состоит из двух частей - стирания и записи. Процедура стирания всегда выполняется перед записью данных.
173 ( ADh ) Wear Leveller Worst Case Erase Count - максимально допустимое количество операций стирания для единичного блока SSD-диска.
174 ( AEh) Unexpected Power Loss - непредвиденное отключение питания для SSD . Также этот показатель называется «Количество аварийных выключений» в терминологии жестких дисков с магнитными носителями. Абсолютное значение Raw Value: совокупное количество нештатных выключений за весь срок использования устройства.
175 ( AFh ) Program Fail Count– данный атрибут используется в SSD-накопителях производства Intel и отображает информацию о сбоях защиты от отключения питания SSD-дисков. Результаты последнего теста в виде количества микросекунд до разряда конденсатора, фиксируется на максимальном значении. Также записывается количество минут после последнего теста и общее количество тестов за весь срок использования устройства. Необработанное значение Raw Value:Байты 0—1: Результаты последнего теста в виде количества микросекунд до разряда конденсатора, фиксируется на максимальном значении. Результат теста должен быть в диапазоне 25 - 5 000 000, более низкое значение указывает на определенный код ошибки. Байты 2—3: количество минут после последнего текста, фиксируется на максимальном значении. Байты 4—5: количество тестов за весь срок использования устройства, не увеличивается при циклах включения и отключения, фиксируется на максимальном значении. Значение Value устанавливается равным 1 при сбое теста, или 11 при тестировании конденсатора в недопустимых температурных условиях; в противном случае устанавливается равным 100.
180 (B4) Unused Reserved Block Count Total - кол-во резервных секторов, доступных для ремапа.
183 ( B7h ) SATA Downshifts - Количество снижений скорости SATA Необработанное значение: количество случаев, когда из-за ошибок для интерфейса SATA была выбрана пониженная скорость передачи данных ( с 6 Гб/с до 3Гб/с или 1,5Гб/с или с 3Гб/с. До 1.5Гб/с. Очень часто данный атрибут характеризует недостаточное качество электропитания, окисление контактов интерфейсного кабеля, или его неисправность.
184 ( B8h ) End-to-End error Количество обнаруженных сквозных ошибок кэш-памяти ( disk cache). Абсолютное значение: количество обнаруженных и исправленных оборудованием сквозных ошибок.
185 (B9) Head Stability Стабильность головок (Western Digital)
187 ( BBh ) Reported Uncorrectable Errors Количество невосстановимых ошибок. Необработанное значение Raw Value: количество ошибок, которые не удалось исправить с помощью внутренних подпрограмм накопителя.
188 ( BCh ) Command Timeout - количество команд, прерванных по таймауту.
189 ( BDh ) High Fly Writes - количество событий, связанных с ошибками, зафиксированными монитором контроля высоты полета Fly Height Monitor, когда головки записи находятся в положении, не гарантирующем нормальное выполнение операции. Если высота полета головки над магнитной поверхностью, даже на короткое время превысит оптимальную, то записанные ею данные, в дальнейшем, могут не прочитаться. Современные накопители используют специально разработанную технологию контроля высоты полета головок, позволяющую не выполнять запись данных при неоптимальной высоте. В счетчик данного атрибута добавляется единица, а запись выполняется после установки нормальной высоты полета. Повышенное значение данного атрибута может быть вызвано внешними ударами или вибрациями, ненормальной температурой, ухудшением характеристик магнитной поверхности или головки.
190 ( BEh ) Airflow Temperature температура воздушного потока (корпус). Значение Raw Value: статистические данные по температуре корпуса .Байты 0—1: текущая температура корпуса в градусах по Цельсию; байт 2: недавняя минимальная температура корпуса в градусах по Цельсию; байт 3: недавняя максимальная температура корпуса в градусах по Цельсию; байты 4—5: счетчик превышений температуры. Количество случаев, когда зафиксированная температура превышала максимальную допустимую рабочую температуру накопителя.
191 ( BFh ) G-sense error rate - количество ошибок, возникающих в результате ударных нагрузок. Атрибут хранит показания встроенного акселерометра, который фиксирует все удары, толчки, падения и даже неаккуратную установку диска в корпус компьютера. Обычно довольно точно характеризует условия эксплуатации ноутбуков - большое значение атрибута говорит о резких толчках и падениях при работе устройства.
192 ( C0h ) Emergency Retract Cycle Count Количество аварийных выключений (количество нештатных выключений) - совокупное количество событий аварийного (нештатного) отключения питания за весь срок использования устройства. Для SSD дисков под «нештатным выключением» понимается отключение питания устройства без предварительной выдачи команды STANDBY IMMEDIATE.
193 (C1) Load/Unload Cycle Количество циклов перемещения блока магнитных головок в парковочную зону / в рабочее положение.
194 ( C2h ) HDA Temperature - температура самого накопителя (HDA - Hard Disk Assembly). В данном атрибуте хранятся показания встроенного температурного датчика, которым обычно служит одна из магнитных головок (как правило - нижняя ). У SSD дисков термодатчик размещается внутри корпуса на печатной плате. Данные, записанные в полях атрибута отображают текущую, минимальную и максимальную температуру. Поле Worst показывает наихудшую, достигнутую за время работы накопителя, температуру (можно установить факт перегрева и его степень), Raw Value - текущую температуру. Некоторые модели накопителей могут поддерживать атрибут 205 ( CDh ) Thermal asperity rate (TAR), фиксирующий количество опасных перепадов температуры.
195 ( C3h ) Hardware ECC Recovered - количество ошибок считывания, исправленных оборудованием накопителя с применением кода коррекции ошибок. Подобные ошибки не требуют повторного считывания сектора, и не приводят к потере скорости обмена данными, но большое их количество говорит об ухудшении параметров тракта считывания.
196 ( C4h ) Reallocation Event Count - Число событий переназначения сбойных секторов. В поле raw value данного атрибута хранится общее число попыток переноса данных из нестабильных секторов в резервную область. Учитываются как успешные, так и неуспешные попытки.
197 ( C5 ) Current Pending Sector Count - Текущее количество нестабильных секторов. Поле raw value этого атрибута показывает общее количество секторов, которые накопитель в данный момент считает кандидатами на переназначение в резервную область . Если в дальнейшем какой-то из этих секторов будет прочитан успешно, то он исключается из списка кандидатов. Если же чтение сектора будет сопровождаться ошибками, то накопитель попытается восстановить данные и перенести их в резервную область, а сам сектор пометить как переназначенный (remapped).
198 ( C6 ) Uncorrectable Sector Count - Счетчик некорректируемых ошибок, т.е , счетчик ошибок, которые не были исправлены внутренними средствами коррекции оборудования накопителя. Это означает, что такие ошибки проявляются как классические сбойные блоки файловой системы ( Bad Block ). Причиной подобных сбоев диска, может быть неисправность отдельных элементов или отсутствие свободных секторов в резервной области диска, когда возникла необходимость переназначения.
199 ( C7h ) UltraDMA CRC Error Rate - Количество ошибок при передаче данных в режиме прямого доступа к памяти, обнаруженных средствами циклического избыточного кода (англ. Cyclic redundancy check, CRC). Аппаратные средства контроля передачи данных из накопителя в оперативную память обнаружили ошибку контрольной суммы и исправили ее “на лету”, если ошибка исправимая. В данном случае алгоритм обычной работы диска не изменяется. В случае же неисправимой ошибки, процедура ее обработки выполняется системой. Обычно, данный атрибут содержит счетчик любых видов ошибок CRC. Нередко этот тип ошибки связан не столько с оборудованием накопителя, сколько с неисправным интерфейсным кабелем, окислившимися контактами, некачественным электропитанием, разгоном частоты шины PCI, перегревом микросхем чипсета материнской платы и т.п.
200 ( C8h ) Write Error Rate (Multi Zone Error Rate) - ошибки записи данных.
201 (C9) Soft read error rate Частота появления «программных» ошибок при чтении данных с диска. Данный параметр показывает частоту появления ошибок при операциях чтения с поверхности диска по вине программного обеспечения, а не аппаратной части накопителя.
202 (CA) Data Address Mark errors количество адресных данных (DAM) ошибок (или) поставщика.
203 (CB) Run out cancel Количество ошибок ECC.
204 (CC) Soft ECC correction Количество ошибок ECC, скорректированных программным способом.
205 (CD) Thermal asperity rate (TAR) Количество ошибок тепловой неровностей.
206 (CE) Flying height Высота между головкой и поверхностью диска.
207 (CF) Spin high current Величина силы тока при раскрутке диска.
208 (D0) Spin buzz Количество процедур buzz для вращения диска.
209 (D1) Offline seek performance Производительность поиска во время офлайновых операций (Drive’s seek performance during offline operations.)
210(D2) Vibration During Write - вибрация во время записи.
211(D3) Vibration During Write - вибрация во время записи.
212(D4) Shock During Write - удары во время записи.
220 (DC) Disk Shift Дистанция смещения блока дисков относительно шпинделя. В основном возникает из-за удара или падения. Единица измерения неизвестна. При увеличении атрибута диск быстро становится неработоспособным.
221 (DD) G-Sense Error Rate (Mechanical Shock) Число ошибок, возникших из-за внешних нагрузок и ударов. Атрибут хранит показания встроенного датчика удара.
222 (DE) Loaded Hours Время, проведённое блоком магнитных головок между выгрузкой из парковочной области в рабочую область диска и загрузкой блока обратно в парковочную область.
223 (DF) Load/Unload Retry Count Количество новых попыток выгрузок/загрузок блока магнитных головок в/из парковочной области после неудачной попытки.
224 (E0) Load Friction Величина силы трения блока магнитных головок при его выгрузке из парковочной области.
225 (E1) Load Cycle Count Количество циклов перемещения блока магнитных головок в парковочную область.
226 (E2) Load 'In'-time Время, за которое привод выгружает магнитные головки из парковочной области на рабочую поверхность диска.
227 (E3) Torque Amplification Count Количество попыток скомпенсировать вращающий момент.
228 (E4) Power-Off Retract Cycle Количество повторов автоматической парковки блока магнитных головок в результате выключения питания.
230 (E6) GMR Head Amplitude Амплитуда «дрожания» (расстояние повторяющегося перемещения блока магнитных головок).
231 (E7) Temperature Температура жёсткого диска.
232 ( E8h ) Total Count of Write Sectors Для SSD-дисков - количество записанных секторов. Значение Raw Value увеличивается на 1 на каждые 65 536 секторов (32 МБ), записываемых системой. Для SSD Intel - Intel SSD Available Reserved Space - процент доступной резервной области, используемой для переназначения дефектных блоков.
233 ( E9h ) Power-On Hours - Время работы накопителя. Для SSD-дисков этот атрибут интерпретируется как Remaining Life - указатель износа носителя. Количество циклов работы носителя NAND. Линейно снижается от 100 до 1 по мере увеличения среднего количества циклов стирания от 0 до максимального. Нормализованное значение перестанет уменьшаться после достижения 1, но, по всей вероятности, устройство выдержит значительный дополнительный износ.
234 (EA) Количество неисправимых ошибок ECC
240 (F0) Head flying hours Общее время нахождения блока головок в рабочем положении в часах.
241 ( F1h) Total LBAs Written - Общее количество записанных секторов LBA. Значение Raw Value : совокупное количество секторов, записанных системой. Значение увеличивается на 1 на каждые 65 536 секторов (32 МБ), записываемых системой.
242 ( F2h ) Total LBAs Read - Общее количество прочитанных секторов LBA. Значение Raw Value увеличивается на 1 на каждые 65 536 секторов (32 МБ), прочитываемых системой.
250 (FA) Read error retry rate Число ошибок во время чтения жёсткого диска.
254 ( FEh ) Free Fall Event Count - количество событий ускорения свободного падения диска за время эксплуатации ( сколько раз диск падал ).
Оценка технического состояния жесткого диска по данным S.M.A.R.T
70 параметров

Набор атрибутов поддерживаемых конкретной моделью жесткого диска, даже если он минимален, позволяет с высокой достоверностью определить техническое состояние и перспективы эксплуатации устройства. Можно определить время нахождения во включенном состоянии по значению атрибута 9, а в совокупности со значением атрибута 12 - количество включений /выключений электропитания, и следовательно, – круглосуточный или периодический режим эксплуатации. Интенсивность использования, температурный режим, негативные внешние воздействия – все эти факты легко отслеживаются по абсолютным значениям соответствующих атрибутов. Подобным же образом, можно оценить и уровень износа оборудования, качество поверхности и тракта записи/чтения.

Минимально информативный контроль состояния дисков может выполняться даже на уровне BIOS. В случае достижения критического значения любого атрибута, характеризующего работоспособность, при включенном мониторинге состояния S.M.A.R.T в настройках BIOS, загрузка операционной системы приостанавливается и на экран выводится сообщение:
Primary Master Hard Disk: S.M.A.R.T status BAD!, Backup and Replace.
Press F1 to Resume

Таким образом, без установки или запуска дополнительного программного обеспечения, имеется возможность вовремя определить факт критического состояния накопителя средствами Базовой Системы Ввода-Вывода (BIOS) при включении компьютера.

Техническое состояние жесткого диска, не достигшее критического порога, характеризуется абсолютным значением атрибутов, отражающих счетчики сбоев, обнаруженных и исправленных оборудованием накопителя.
001 ( 1 ) Raw Read Error Rate - абсолютное значение ошибок считывания. Существует некоторые отличия в формировании значения данного атрибута разными производителями. На практике, накопители Seagate могут иметь гигантское значение RAW этого атрибута, реально будучи в хорошем состоянии, а накопители Western Digital могут иметь его нулевым, имея критические показатели по другим характеристикам. Некоторые модели вообще могут не поддерживать данный атрибут.
005 ( 5 ) Reallocated Sector Count - Количество переназначенных секторов. Ненулевое значение данного счетчика говорит о том, что были обнаружены дефектные блоки, данные которых перенесены в резервную область.
196 ( C4 ) Reallocation Event Count - Число событий переназначения сбойных секторов. В поле raw value данного атрибута хранится общее число попыток переноса данных из нестабильных секторов в резервную область. Учитываются как успешные, так и неуспешные попытки.
197 ( C5 ) Current Pending Sector Count - Текущее количество нестабильных секторов. Поле raw value этого атрибута показывает общее количество секторов, которые накопитель в данный момент считает кандидатами на переназначение в резервную область (remap). Если в дальнейшем какой-то из этих секторов будет прочитан успешно, то он исключается из списка кандидатов. Если же чтение сектора будет сопровождаться ошибками, то накопитель попытается восстановить данные и перенести их в резервную область, а сам сектор пометить как переназначенный (remapped). Если значение атрибутов 5,196,197 увеличивается за короткий промежуток времени ( дни, или даже часы), то это является настораживающим признаком – либо ухудшаются технические параметры самого накопителя, либо сказывается влияние внешних воздействий.
007 ( 07h ) Seek Error Rate - Частота появления ошибок позиционирования блока магнитных головок (БМГ). Большое значение говорит о проблемах механизма позиционирования, хотя может быть вызвано и внешними факторами, такими как перегрев или повышенная вибрация.
008 ( 08h ) Seek Time Performance - средняя скорость позиционирования магнитных головок. Если значение атрибута уменьшается (замедление позиционирования), то велика вероятность проблем с механической частью привода головок.
199 ( C7 ) UltraDMA CRC Error Count - Счетчик ошибок, возникших при передаче данных в режиме UltraDMA. Рост абсолютного значения указывает на проблемы при передаче данных контроллером диска в оперативную память. Чаще всего, вызвано плохим кабелем и нестабильным электропитание
Пример данных на скриншотах
Команда smartctl -x
smartctl -x
smartctl -x
Команда smartctl -А
smartctl -А
smartctl -А
Шаблон Переведен на Русский добавлено описание к кодам смарт
Шаблон мониторинга HDD c LLD
Шаблон мониторинга HDD c LLD
Шаблон мониторинга HDD c LLD Элементы
Шаблон мониторинга HDD c LLD Элементы
Шаблон мониторинга HDD c LLD Элементы1
Шаблон мониторинга HDD c LLD Элементы1
Шаблон мониторинга HDD c LLD Элемент пример
Шаблон мониторинга HDD c LLD Элемент пример
Шаблон мониторинга HDD c LLD Триггеры
Шаблон мониторинга HDD c LLD Триггеры
Пример последних данных с узла HDD c LLD
Пример последних данных с узла HDD c LLD
О RAID массивах SCSI
Показать
было определено как SCSI устройство. Выходит, что у нас SCSI собран из 4 дисков, расположенных в /dev/sg {1,2,3,4}
Такие данные нужно собирать специальной утилитой от рейд-контроллера. Обычно по SNMP.
Для таких вещей есть готовые решения на share.zabbix.com. Возможно даже на русском.
Главное, заставить отдавать данные контроллер по сети.
Можно сделать через автообнаружение. Будет единый шаблон. Просто 2 пункта: для SNMP и серверов с контроллером и обычных с Storage Spaces например. Находится будут только нужные диски в автомате.
Обычно производитель поддерживает MIB-библиотеку, одинаковую для всех своих продуктов. Дальше в шаблон запиливается LLD для Dell, Avago (LSI), HPE и т.д. Нужное обнаруживается, ненужное — нет. Обнаружение происходит путем запроса на определенный oid. Если oid отдает значения — работать дальше. Нагрузка при таком виде опросов минимальна.

Вариант на Adaptec storage manager
Adaptec RAID Controller Command Line Utility https://habrahabr.ru/post/323042/

для линукс hpacucli / megacli - для рейдов
Скрипты от Nagios поискать например

Пример для dell Dell-OpenManage snmpv2 RUS
количество слов: 2754
Аватара пользователя
Алексей Иванов
Гость
Сообщения: 7
Стаж: 4 года 3 месяца

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Алексей Иванов »

Добрый день.

При проверке: ./smartctl.sh 192.168.0.183 discovery
выдает
{\"data\":[
При вводе команды:
zabbix_get -s 192.168.0.183 -k system.run["smartctl --scan-open"] | grep "/dev/sd"
ничего не выдает

На 192.168.0.183 все настроено и "smartctl --scan-open" диски обнаруживает

Где, что забыл??
количество слов: 31
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 853
Стаж: 5 лет 7 месяцев
Откуда: Вологодская область
Поблагодарили: 37 раз
Контактная информация:

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Артём Мамзиков »

Алексей Иванов, Добрый день!
Что то из команд
Запрос с Zabbix Servera
zabbix_get -s IP DNS удаленного хоста -k system.run["smartctl --scan-open"]

отрабатывает?

Чаще всего проблема как под сполером Нужно задать переменные так как заббикс агент служба запущена от локального пользователя
для начала нужно проверить это.
количество слов: 13
Аватара пользователя
Алексей Иванов
Гость
Сообщения: 7
Стаж: 4 года 3 месяца

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Алексей Иванов »

Артём Мамзиков писал(а): Пн июн 15, 2020 18:08 Алексей Иванов, Добрый день!
Что то из команд
Запрос с Zabbix Servera
zabbix_get -s IP DNS удаленного хоста -k system.run["smartctl --scan-open"]

отрабатывает?

Чаще всего проблема как под сполером Нужно задать переменные так как заббикс агент служба запущена от локального пользователя
для начала нужно проверить это.

Код: Выделить всё

setup@ubserv:~$ zabbix_get -s 192.168.0.183 -k system.run["smartctl -x /dev/sda"]
ZBX_NOTSUPPORTED: Unsupported item key.
Так выходит

Переменные проверил и под локальной учетной записью тоже работает. Где копать уж устал....

Отправлено спустя 9 минут 33 секунды:
zabbix настраивал по этой статье - https://serveradmin.ru/ustanovka-i-nast ... odklucenia
zabbix agent 5.01

Отправлено спустя 47 секунд:
Ubuntu serv 20
количество слов: 56
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 853
Стаж: 5 лет 7 месяцев
Откуда: Вологодская область
Поблагодарили: 37 раз
Контактная информация:

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Артём Мамзиков »

Алексей Иванов, У тебя в целом установлен компонент zabbix_get ? попробуй через него что то другое запросить на тот же хост или хотя бы другой.
Это на Windows или на Linux может что то с агентом или прав агенту не хватет учетку ему сменить от которой он работает.
попробуй еще порт указать в запросе
количество слов: 4
Аватара пользователя
Алексей Иванов
Гость
Сообщения: 7
Стаж: 4 года 3 месяца

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Алексей Иванов »

Это на Window. Учетку менял. не помогает.
компонент zabbix_get да я установил. И порт указывал. Все также...
Я прочитал, что это возможно из-за того, что zabbix 5, на 4 должно все работать...
количество слов: 6
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 853
Стаж: 5 лет 7 месяцев
Откуда: Вологодская область
Поблагодарили: 37 раз
Контактная информация:

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Артём Мамзиков »

Алексей Иванов, Да должен работать все равно не зависимо от версии.
Такие например команды работают ?
zabbix_get -s ip -k 'agent.ping'
zabbix_get -s ip -k 'agent.version'
zabbix_get -s ip -p 10050 -k system.run["shutdown -r -f"] - перезагрузка

В логе агента что пишет?
количество слов: 26
Аватара пользователя
Алексей Иванов
Гость
Сообщения: 7
Стаж: 4 года 3 месяца

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Алексей Иванов »

setup@ubserv:~$ zabbix_get -s 192.168.0.183 -k 'agent.ping'
1
setup@ubserv:~$ zabbix_get -s 192.168.0.183 -k 'agent.version'
5.0.1
setup@ubserv:~$ zabbix_get -s 192.168.0.183 -p 10050 -k system.run["shutdown -r -f"]
ZBX_NOTSUPPORTED: Unsupported item key.
лог:
15160:20200616:184932.752 Starting Zabbix Agent [CIT00100]. Zabbix 5.0.1 (revision c2a0b03480).
15160:20200616:184932.752 **** Enabled features ****
15160:20200616:184932.753 IPv6 support: YES
15160:20200616:184932.753 TLS support: YES
15160:20200616:184932.753 **************************
15160:20200616:184932.753 using configuration file: c:\zabbix\zabbix_agentd.conf
15160:20200616:184933.678 agent #0 started [main process]
8640:20200616:184933.680 agent #1 started [collector]
8736:20200616:184933.680 agent #2 started [listener #1]
13404:20200616:184933.681 agent #3 started [listener #2]
11452:20200616:184933.683 agent #4 started [listener #3]
4732:20200616:184933.684 agent #5 started [active checks #1]
количество слов: 154
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 853
Стаж: 5 лет 7 месяцев
Откуда: Вологодская область
Поблагодарили: 37 раз
Контактная информация:

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Артём Мамзиков »

Алексей Иванов, У тебя не работает system.run
5 версией он поддерживается так же как и предыдущими
Zabbix агент

Обратите внимание: Для того чтобы включить этот функционал, в файле конфигурации агента должна быть указана опция EnableRemoteCommands=1

тебе нужно разбираться почему у тебя не работает system.run
количество слов: 8
Аватара пользователя
Алексей Иванов
Гость
Сообщения: 7
Стаж: 4 года 3 месяца

Скрипт + Шаблон LLD Для проверки Жестких Дисков HDD через smartmontools

Сообщение Алексей Иванов »

в конфиге оказывается была активирована строка:
DenyKey=system.run[*]
Теперь system.run работает.
Команда zabbix_get -s 192.168.0.183 -p 10050 -k system.run["shutdown -r -f"] - перезагружает комп
setup@ubserv:~$ zabbix_get -s 192.168.0.183 -k system.run["smartctl --scan-open"]
/dev/sda -d nvme # /dev/sda, NVMe device
Агент пришлось пока запустить под учеткой админа. Посмотрим что дальше будет.
//запустил под локальной учеткой - разобрался с переменными

Но скрипт при команде выдает следующее:
setup@ubserv:/usr/lib/zabbix/externalscripts$ ./smartctl.sh 192.168.0.183 discovery
{"data":[
]}
Данных в zabbix не наблюдаю.
Что еще забыл/недоделал?
Последний раз редактировалось Алексей Иванов Ср июн 17, 2020 15:25, всего редактировалось 1 раз. количество слов: 58
Ответить Вложения 11 Пред. темаСлед. тема

Вернуться в «Аппаратное обеспечение Общее для всех систем»