- Главная... arrow - Статьи... arrow Контролируем SMART HDD, с отчетом на e-mail. На примере FreeBSD и Debian/Ubuntu.

#Записки о Unix/Linux/BSD/Solaris

Контролируем SMART HDD, с отчетом на e-mail. На примере FreeBSD и Debian/Ubuntu.
Автор Охальников Олег   
17:03:2011 г.
Что такое SMART, какие атрибуты SMART бывают, можно прочитать в "Википедии" - здесь...
В данной статье расскажу, как контролировать состояние HDD с помощью smartmontools, установка и настройка на примере систем FreeBSD и Debian/Ubuntu.
 
FreeBSD:

1) Обновляем порты, как это сделать, читаем здесь... и здесь...

2) Устанавливаем:

cd /usr/ports/sysutils/smartmontools/ && make install clean

3) Для запуска демона, вносим следующие строки в /etc/rc.conf:

smartd_enable="YES"
smartd_flags="-l local2 --interval=500"

Флаг указывает на логирование и интервал опроса.

4) Настраиваем логирование, для этого ближе к началу /etc/syslog.conf, добавляем следующую строку:

# ee /etc/syslog.conf

local2.* /var/log/smartd.log

Создаем файл лога:

# touch /var/log/smartd.log

Перезапускаем:

# /etc/rc.d/syslogd restart

Настроим ротацию лога, для этого правим /etc/newsyslog.conf:

# ee /etc/newsyslog.conf

/var/log/smartd.log 644 7 100 * JC

/Подробности по newsyslog выходят за рамки данной статьи, возможно напишу материал в будующем./

5) Теперь переходим непосредственно к конфигурационному файлу smartmontools.
Смотрим дефолтовый файл на предмет примеров и основных параметров:

# less /usr/local/etc/smartd.conf.sample

Подробности смотрим в  # man smartd и # man smartd.conf. Ниже приведены ключи и значения:

-d задать тип устройства: ata, scsi, marvell, removable, 3ware,N, hpt,L/M/N
-T задать тип допустимых отклонений: normal, permissive
-o VAL включить/выключить автоматические автономные тесты (on/off)
-S VAL включить/выключить атрибуты автосохранения (on/off)
-n MODE Без проверок. MODE может принимать значения: never, sleep, standby, idle
-H Наблюдать за статусом SMART, сообщать о возникших проблемах
-l TYPE Наблюдение за логом SMART. Значения: error, selftest
-f Наблюдение за отказами в любых значениях 'Usage' атрибутов
-m ADD Отправить предупреждение по e-mail для опций -H, -l error, -l selftest, и -f
-M TYPE Изменить способы отправки e-mail предупреждений (man)
-s REGE Начать самотестирование когда тип/дата соответствуют регулярному выражению (man)
-p Сообщать об изменениях в атрибутах 'Prefailure'
-u Сообщать об изменениях в атрибутах 'Usage'
-t Равнозначно опциям -p и -u
-r ID Так же сообщать Raw значение атрибута ID включая -p, -u или -t
-R ID Отслеживать изменения в ID Raw значения включая -p, -u или -t
-i ID Игнорировать значения ID для -f опции
-I ID Игнорировать значения ID для -p, -u или -t опций
-C ID Сообщать о том, что текущий (счетчик ждущих секторов) Pending Sector count не равен 0
-U ID Сообщать если (счетчик неисправленных секторов) Uncorrectable count не равен 0
-W D,I,C Наблюдение за температурой D)ifference , I)nformal limit, C)ritical limit
-v N,ST измененить метку для параметра N (man)
-a по умолчанию: эквивалентно параметрам -H -f -t -l error -l selftest -C 197 -U 198
-F TYPE для ошибок в прошивке. Значение одно из: none, samsung
-P TYPE Представление специфических устройств: use, ignore, show, showall

Использовать дефолтный конфиг считаю лишним, много примеров ради одной или нескольких записей. Поэтому создаем свой конф:

# touch /usr/local/etc/smartd.conf

Смотрим, какие HDD есть в системе, смотреть можно разными способами, например

# fdisk -v

Если в системе собран софтовый RAID gmirror, то мониторим все равно отдельные харды, из которых он состоит! - это думаю понятно. Посмотреть какие харды в мирроре можно так:

gmirror status

Если рейд фэйковый, то пользуемся утилитой atacontrol

atacontrol status ar0

или

atacontrol list

Не важно как (можно /var/run/dmesg посмотреть), главное увидеть, какие HDD в RAID. После того, как определили, какие HDD присутствуют в системе указываем их в /usr/local/etc/smartd.conf, у меня получилось следующая команда:

/dev/ad4 -a -I 194 -W 4,45,55 -R 5 -H -l error -l selftest ==>
-m Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script -o on -S on -s (S/../.././02|L/../../6/03)
/dev/ad6 -a -I 194 -W 4,45,55 -R 5 -H -l error -l selftest ==>
-m Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script -o on -S on -s (S/../.././02|L/../../6/03)

==> - переносы строк ... при копировании - команды должны быть в одну строку!

Расшифровка ключей -a, -m, -H -l error -l selftest -o on -S on -  см. выше. 
-s (S/../.././02|L/../../6/03) Запуск короткого теста самодиагностики каждый день  между  2-3 ночи, и запуск полного теста в субботу между 3-4 часами ночи.
-I 194 -W 4,45,55 -R 5 Отслеживать все параметры кроме температуры (194). Но отслеживать изменения температуры на величину  больше или равно 4 градуса Цельсия, сообщать о температуре  больше или равно 45 градусов Цельсия и изменении значения Reallocated_Sector_Ct (Очень важный параметр, показывает, сколько на диске переназначенных секторов. Исправный  накопитель имеет raw-значение, равное 0. Если значение более 50 — явные проблемы и диск необходимо заменить.) Отправлять e-mail сообщение, когда температура  больше или равна 55 градусов Цельсия.

6) Сохраняем файл и запускаем демон:

# /usr/local/etc/rc.d/smartd start

Смотрим, запустился ли он:

# ps waux | grep smart
root       95728  0,0  0,1  4604  2340  ??  I    11:13     0:00,01 /usr/local/sbin/smartd -p /var/run/smartd.pid -l local2 --interval=500

Проверяем лог:

# tail -f /var/log/smartd.log

Должны быть записи, примерно такие:

Mar 17 11:13:59 Corvus smartd[95726]: Device: /dev/ad6, enabled SMART Attribute Autosave.
Mar 17 11:13:59 host smartd[95726]: Device: /dev/ad6, enabled SMART Automatic Offline Testing.
Mar 17 11:13:59 host smartd[95726]: Device: /dev/ad6, is SMART capable. Adding to "monitor" list.
Mar 17 11:13:59 host smartd[95726]: Monitoring 3 ATA and 0 SCSI devices
Mar 17 11:13:59 host smartd[95726]: Device: /dev/ad4, initial Temperature is 31 Celsius (Min/Max ??/31)
Mar 17 11:13:59 host smartd[95726]: Device: /dev/ad6, initial Temperature is 29 Celsius (Min/Max ??/29)

Демон запущен, лог ведется.

7) Еще пара моментов, FreeBSD присылает ежедневные отчеты состояния на почту, чтобы добавить сообщения о SMART HDD, нужно прописать в  /etc/periodic.conf (если нет файла, то нужно создать и дать права 444) следующую строку:

daily_status_smart_devices="/dev/ad4 /dev/da6"

Ну и последний момент, речь выше шла о настройке демона, но ни что не мешает просмотреть состояние SMART HDD вручную, на текущий момент, делается это следующей командой:

smartctl -a /dev/ad4

Если выдает сообщение, что SMART выключен, включаем его

smartctl -s on /dev/ad4

и повторяем предыдущую команду. Вывод приводить не буду, он слишком большой, следует обратить внимание на строку:

SMART overall-health self-assessment test result: PASSED

которая говорит о том, что тест прошел. Смотрим значения важных атрибутов, сравниваются столбцы VALUE (низкое число, говорит о высокой вероятности выхода из строя) и THRESH (пороговое значение, сравнивается с value).



Debian/Ubuntu:

В Linux настроить smartmontools много проще и описание соответственно будет много короче.

1) Обновляем список доступных пакетов:

# apt-get update


2) Устанавливаем smartmontools:

# apt-get install smartmontools


3) Включаем демон, перечисляем HDD и интервал обновления, для этого просто снимаем коментарии в файле

# nano /etc/default/smartmontools

enable_smart="/dev/sda /dev/sdb"
start_smartd=yes
smartd_opts="--interval=1800"

Список HDD в Linux можно посмотреть следующей командой:

# fdisk -l


4) Правим /etc/smartd.conf (я дефолтный сохранил как /etc/smartd.conf.def и создал пустой файл). В соответствии с имеющимися в системе HDD добавляем строки, аналогичные рассматриваемым выше:

/dev/sda -S on -o on -a -I 194 -W 4,45,55 -R 5 -H -l error -l selftest ==>
-m Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script -s (S/../.././02|L/../../6/03)
/dev/sdb -S on -o on -a -I 194 -W 4,45,55 -R 5 -H -l error -l selftest ==>
-m Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script -s (S/../.././02|L/../../6/03)


5) Запускаем демон:

# /etc/init.d/smartmontools start


6) Контролируем, что он работает:

# ps waux | grep smart
root     13493  0.0  0.0   3204   724 ?        S    11:19   0:00 /usr/sbin/smartd --pidfile /var/run/smartd.pid --interval=1800


7) Логирование дополнительно настраивать не нужно, все сохраняется в /var/log/syslog. После запуска, интерактивно, можно понаблюдать так:

# tail -f /var/log/syslog



P.S. Возможно, контроль температуры HDD через smartmontools не очень хорошая идея, как может показаться. Хотя скачки температуры часто свидетельство неисправности HDD и лучше обратить на это внимание и своевременно принять меры. Отмечу, что контролировать температуру HDD можно с помощью отдельного демона - hddtemp, но это тема отдельной статьи.

На этом все!
Материал подготовил:
Охальников Олег aka H@wk!

 

Добавить коментарий
Имя:
E-mail
Коментарий:



Код:* Code


Просмотров: 41011

  Коментарии (7)
RSS комментарии
 1 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 11:52 01.04.2014
Огромное спасибо за статью. Только мало написано об отправке писем, дебаге запуска демона. Можно чуток от сюда взять - http://sysadmin.te.ua/linux/smartd.html
 2 Написал(а) H@wk!, в 12:16 08.11.2012
SMART support is: Disabled  
Смарт выключен, что контролировать демоном? 
Если после включения не заработает, надо смотреть конф.
 3 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 23:37 03.11.2012
Винт нормально видит,но не стартует :(  
 
 
root@ussr:~# smartctl -i /dev/sda 
smartctl 5.40 2010-07-12 r3124 [i686-pc-linux-gnu] (local build) 
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net 
 
=== START OF INFORMATION SECTION === 
Device Model: SAMSUNG SV0221N 
Serial Number: S01NJ10WB07084 
Firmware Version: UA100-09 
User Capacity: 20,060,135,424 bytes 
Device is: Not in smartctl database [for details use: -P showall] 
ATA Version is: 7 
ATA Standard is: ATA/ATAPI-7 T13 1532D revision 0 
Local Time is: Sat Nov 3 21:40:42 2012 EET 
SMART support is: Available - device has SMART capability. 
SMART support is: Disabled 
 
root@ussr:~# /etc/init.d/smartmontools start 
Enabling S.M.A.R.T..../dev/sda...(failed)...done. 
Starting S.M.A.R.T. daemon: smartd failed!
 4 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 12:01 26.03.2012
для FreeBSD 9: 
диски "зовутся" ada0, ada1, и т.д. (ну вдруг кому пригодится :) )
 5 Написал(а) H@wk!, в 11:01 26.03.2012
Да, перебор с параметрами. Попробуйте без этих ключей "-H -l error -l selftest" Спасибо.
 6 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 10:58 26.03.2012
(DEBIAN)с учётом данной статьи, но для контроллера 3ware: 
/etc/default/smartmontools 
enable_smart="/dev/twe0 /dev/twe1" 
start_smartd=yes 
smartd_opts="--interval=1800" 
 
cat /etc/smartd.conf 
/dev/twa0 -d 3ware,0 -S on -o on -a -I 194 -W 4,45,55 -R 5 -m Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script -s (S/../.././02|L/../../6/03) 
/dev/twa0 -d 3ware,1 -S on -o on -a -I 194 -W 4,45,55 -R 5 -m Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script -s (S/../.././02|L/../../6/03) 
 
/dev/twa1 -d 3ware,0 -S on -o on -a -I 194 -W 4,45,55 -R 5 -m Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script -s (S/../.././02|L/../../6/03) 
/dev/twa1 -d 3ware,1 -S on -o on -a -I 194 -W 4,45,55 -R 5 -m Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script -s (S/../.././02|L/../../6/03) 
 
lspci |grep 3ware 
03:00.0 RAID bus controller: 3ware Inc 9650SE SATA-II RAID PCIe (rev 01) 
04:00.0 RAID bus controller: 3ware Inc 9650SE SATA-II RAID PCIe (rev 01)
 7 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 10:47 26.03.2012
вопрос: 
среди прочих ключей в конф файле используются "-a", из вышеупомянутого описания: 
"-a по умолчанию: эквивалентно параметрам -H -f -t -l error -l selftest -C 197 -U 198" 
и тут же в конф файле Вы используете 
"-H -l error -l selftest" 
Опечатка или "так надо"? 
 
А в целом приятно полистать Ваш блог 8)
 
script - создаем лог своих действий »

#COMMENT

Блокируем Ylmf-pc на Exim, Bru...
Благодарю за кучу уцелевших нервов:) постоянно приходилось б...
30/05/17 00:02 More...
By Mus

Установка даты и времени в кон...
Спасибо
12/05/17 17:49 More...
By dushka

Раскладка в rdesktop
Огромное спасибо!
28/04/17 14:01 More...
By Виктор

Аутентификация средствами Apac...
подскажите как писать пороль цифры ?пж! :sigh
28/03/17 13:06 More...
By Лиза

Logwatch - мониторинг журналов...
Отлично, очень не хватало. Автору большое спасибо, пиши еще.
25/01/17 02:44 More...
By Gregg

Сейчас на сайте находятся:
4 гостей