S.M.A.R.T. (часть 7). Настройка smartd демона для мониторинга дисков под Ubuntu 12.04

imagesВ этой статье хотел немного углубиться в настройки smartd демона для мониторинга физических дисков. В предыдущих статьях речь шла о настройке мониторинга дисков за LSI Fusion-MPT SAS, Adaptec AACRaid, HP/Compaq Smart Array, LSI 2108 RAID контроллерами и с обычным SCSI,SAT,ATA интерфейсом используя атрибуты под дистрибутивом Ubuntu 12.04 используя специализированные утилиты и smartctl.
Т.е. мы мониторили диски за RAID-контроллерами, используя ручные скрипты и команды, которые можно прицепить к любой системе мониторинга, но на много удобней автоматизировать отправку сообщений о проблемах с дисками через почту именно в тот момент, когда она реально назревает или уже возникла. Для этих нужд и предназначен демон smartd.
Для начала советую вам ознакомиться с мануалом smartd, где все детально расписано.

root@s12:~# man smartd

Вся инструкция сводиться до трех конфигурационных файлов, т.е. нужно добавить нужные настройки и рестартануть демоны.

root@s12:~# cat /etc/rsyslog.d/60-smart.conf
local3.*                         /var/log/smard.log
root@s12:~# cat /etc/default/smartmontools
start_smartd=yes
smartd_opts="--interval=3600 --logfacility=local3"
root@s12:~# cat /etc/smartd.conf
#Диски, которые нужно мониторить
/dev/sda -d sat -o on -S on -m support@support.com -M diminishing -a -s (S/../.././01|L/../../6/03)
/dev/sdb -d sat -o on -S on -m support@support.com -M diminishing -a -s (S/../.././01|L/../../6/03)
/dev/sdc -d sat -o on -S on -m support@support.com -M diminishing -a -s (S/../.././01|L/../../6/03)
root@s12:~# /etc/init.d/rsyslog restart
root@s12:~# /etc/init.d/smartd restart

Теперь давайте поэтапно разберем что это было.

Настройка запуска smartd демона

По умолчанию, smartd пишет логи в /var/log/syslog, так как это системный журнал событий – в нем может писаться очень много информации, что затрудняет поиски нужного вывода. Для этого, после краткого осмотра документации по smartd, первым делом добавим свой лог-файл в который будет писаться вся информация о работе smartd демона. Редактируем rsyslog.

root@s12:~# vim /etc/rsyslog.d/50-default.conf
...
local3.*                        /var/log/smard.log
...

Здесь,

Ман по rsyslog.conf говорит, что можно брать любую не занятую facility в диапазоне local0 — local7.
priority можно подставить любой из debug, info, notice, warning, warn (same as warning), err, error (same as err), crit, alert, emerg, panic (same as emerg) или просто символ – «*», который включает все.
Т.е. в данном случаи у local3 объекта мы ловим сообщения с любым приоритетом (*) и записываем в файл. Так же можно все сообщения записывать в БД, передавать на другой хост или на локальный скрипт. Если передаем на локальный скрипт, то тело сообщения будет в arg[1] скрипта.
После внесения изменений в rsyslog делаем рестарт демона.

root@s12:~# /etc/init.d/rsyslog restart
root@s12:~# initctl status rsyslog
rsyslog start/running, process 5662

После рестарта у нас должен создаться файлик smard.log

root@s12:~# ls -l /var/log/smard.log
-rw-r----- 1 syslog adm 0 Mar 29 18:01 /var/log/smard.log

Теперь при запуске демона smard нужно добавлять аргумент “-l locatl3”, что мы и сделаем отредактировав файл /etc/default/smartmontools.

root@s12:~# cat /etc/default/smartmontools
# uncomment to start smartd on system startup
start_smartd=yes

# uncomment to pass additional options to smartd on startup
smartd_opts="--interval=3600 --logfacility=local3"

Также было добавлено запуск демона smartd при старте системы (start_smartd=yes) и выставил интервал между проверками дисков в 1 час (—interval=3600).

Настройка мониторинга дисков

Мы разобрались с настройками запуска (аргументами и лог-файлами) smartd демона. Теперь же нужно правильно настроить проверку дисков. Ниже приведены самые употребляемые опции для мониторинга дисков через smartd.conf.

Опция

Значение опции

Описание

-d ata Мониторинг дисков с ATA интерфейсом
scsi Мониторинг дисков с SCSI интерфейсом
sat Мониторинг дисков с ATA интерфейсом, которые подключены через переходник SCSI
marvell Мониторинг дисков за Marvell контроллером
megaraid,N Мониторинг дисков за Megaraid RAID контроллером
3ware,N Мониторинг дисков за 3ware контроллером
areca,N Мониторинг дисков за Areca SATA контроллером
hpt,L/M/N Мониторинг дисков за HighPoint RocketRAID контроллером
cciss,N Мониторинг дисков за cciss RAID контроллером
-o on Включение SMART Automatic Offline тестов для обновления статуса атрибутов
-S on Включить автосохранение атрибутов
Проверить только здоровье диска (если значение Prefailure атрибута меньше за threshold — увидим, что диск не здоров)
-l-l error Уведомлять, если количество ошибок диска растет или тести заканчиваются с печальным результатом
selftest
-s T/MM/DD/d/HH T – тип теста (S – short, L – long, O – offline Immediate)MM – месяц (две цифры в диапазон 01-12)DD – день месяца (две цифры в диапазоне 01-31)d – день недели (одна цифра в диапазоне 1-7)

HH — время в часах (две цифры в диапазоне 00-23)

«.» — любой единичный символ

(A|B|C) — любой из трех вариантов

Пример:

-s (O/../.././(00|06|12|18)|S/../.././01|L/../../6/03)

-m your@mail.com Кому отправлять письма о проблеме
-M test Идет только в сочетании с “–m” (–m root –M test). Отправить тестовое письмо при старте демона smartd.
diminishing Периодически отсылать письма о проблеме ( 2*N период. Т.е. 1-го числа, второго, четвертого, восьмого и т.п. кратно двум )
exec script.sh Запустить скрипт, вместо обычной отправки письма. Демон smartd будет ждать, пока скрипт не завершит свою работу. Эта опция полезна, когда нужно провести некие действия с сообщением или выбрать другой почтовый клиент (по умолчанию /usr/bin/mail).
-f [ATA  only]Мониторинг Usage(Old_age) атрибутов на статус “failure”, связано с -H
-p [ATA  only]Мониторинг Prefail атрибутов
-u [ATA  only]Мониторинг Usage(Old_age) атрибутов
-t [ATA  only]Включение обоих проверок -p и –u
-f -i ID [ATA  only]Игнорировать атрибут с номером ID при проверке Usage(Old_age) атрибута на статус «failure»
-I ID [ATA  only]Игнорировать смену значений атрибута с номером ID(только в сочетании с одним из -t,-u,-p)
-R ID [ATA  only]Мониторинг изменений Raw value атрибута с номером ID. Автоматом включает -r опцию
ID [ATA  only]Мониторинг количества секторов, которые помечены как pending, т.е. те, которые система обозначит как bad-сектора и переназначит (-C 197)
-U ID [ATA  only]Мониторинг неисправимых(битых) секторов атрибута с номером ID(-U 198)
-W d,i,c Мониторинг температуры. Уведомляет, если измениться на d градусов или будет больше за INFO(i) или CRIT(c) градусов (-W 5,40,50)
Мониторинг, который включает в себе опции -H, -f, -t, -l selftest, -l error, -C 197,-U 198

Исходя из таблицы, настроим мониторинг трех SAT дисков.
Мы запускаем Short test каждый день в 1 час ночи и Long test тест каждую субботу в 3 часа ночи (-s). Уведомление об ошибках будет слаться на почтовый ящик(-m). Мониторинг включает стандартный набор атрибутов (–а), так же включено автоматического обновление атрибутов (-o) и их автосохранение (-S on). Так же, добавлена опция –M test, которая позволит отправить тестовое сообщение при старте демона.

root@s12:~# vim /etc/smartd.conf
…
/dev/sda -d sat -o on -S on -m frodo10@gmail.com -M test -a -s (S/../.././01|L/../../6/03)
/dev/sdb -d sat -o on -S on -m frodo10@gmail.com -M test -a -s (S/../.././01|L/../../6/03)
/dev/sdc -d sat -o on -S on -m frodo10@gmail.com -M test -a -s (S/../.././01|L/../../6/03)
…

Теперь рестартуем демон и смотрим на логи и в свой почтовый ящик.

root@s12:~# /etc/init.d/smartd restart
Stopping S.M.A.R.T. daemon: smartd.
Starting S.M.A.R.T. daemon: smartd.
root@s12:~# cat /var/log/smard.log
Mar 31 14:34:33 s12 smartd[14930]: smartd 5.41 2011-06-09 r3365 [x86_64-linux-3.8.0-29-generic] (local build)
Mar 31 14:34:33 s12 smartd[14930]: Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
Mar 31 14:34:33 s12 smartd[14930]: Opened configuration file /etc/smartd.conf
Mar 31 14:34:33 s12 smartd[14930]: Configuration file /etc/smartd.conf parsed.
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sda [SAT], opened
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sda [SAT], ST31000340NS, S/N:9QJ2ADVC, WWN:5-000c50-00dd5f99b, FW:SN05, 1.00 TB
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sda [SAT], found in smartd database.
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sda [SAT], WARNING: There are known problems with these drives,
Mar 31 14:34:33 s12 smartd[14930]: see the following Seagate web pages:
Mar 31 14:34:33 s12 smartd[14930]: http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=207931
Mar 31 14:34:33 s12 smartd[14930]: http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=207963
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sda [SAT], enabled SMART Attribute Autosave.
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sda [SAT], enabled SMART Automatic Offline Testing.
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sda [SAT], is SMART capable. Adding to "monitor" list.
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sda [SAT], state read from /var/lib/smartmontools/smartd.ST31000340NS-9QJ2ADVC.ata.state
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sdb [SAT], opened
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sdb [SAT], ST31000340NS, S/N:9QJ5HB9J, WWN:5-000c50-019998158, FW:SN06, 1.00 TB
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sdb [SAT], found in smartd database.
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sdb [SAT], enabled SMART Attribute Autosave.
Mar 31 14:34:33 s12 smartd[14930]: Device: /dev/sdb [SAT], enabled SMART Automatic Offline Testing.
Mar 31 14:34:34 s12 smartd[14930]: Device: /dev/sdb [SAT], is SMART capable. Adding to "monitor" list.
Mar 31 14:34:34 s12 smartd[14930]: Device: /dev/sdc [SAT], opened
Mar 31 14:34:34 s12 smartd[14930]: Device: /dev/sdc [SAT], WDC WD1003FBYX-01Y7B0, S/N:WD-WCAW30367458, WWN:5-0014ee-2affa9695, FW:01.01V01, 1.00 TB
Mar 31 14:34:34 s12 smartd[14930]: Device: /dev/sdc [SAT], found in smartd database.
Mar 31 14:34:34 s12 smartd[14930]: Device: /dev/sdc [SAT], enabled SMART Attribute Autosave.
Mar 31 14:34:34 s12 smartd[14930]: Device: /dev/sdc [SAT], enabled SMART Automatic Offline Testing.
Mar 31 14:34:34 s12 smartd[14930]: Device: /dev/sdc [SAT], is SMART capable. Adding to "monitor" list.
Mar 31 14:34:34 s12 smartd[14930]: Monitoring 3 ATA and 0 SCSI devices
Mar 31 14:34:34 s12 smartd[14930]: Executing test of mail to frodo10@gmail.com ...
Mar 31 14:34:35 s12 smartd[14930]: Test of mail to frodo10@gmail.com: successful
Mar 31 14:34:35 s12 smartd[14930]: Device: /dev/sda [SAT], SMART Prefailure Attribute: 1 Raw_Read_Error_Rate changed from 79 to 80
Mar 31 14:34:35 s12 smartd[14930]: Device: /dev/sda [SAT], SMART Usage Attribute: 195 Hardware_ECC_Recovered changed from 48 to 47
Mar 31 14:34:35 s12 smartd[14930]: Device: /dev/sda [SAT], previous self-test was interrupted by the host with a reset
Mar 31 14:34:35 s12 smartd[14930]: Executing test of mail to frodo10@gmail.com...
Mar 31 14:34:37 s12 smartd[14930]: Test of mail to frodo10@gmail.com: successful
Mar 31 14:34:37 s12 smartd[14930]: Executing test of mail to frodo10@gmail.com  ...
Mar 31 14:34:37 s12 smartd[14930]: Test of mail to frodo10@gmail.com: successful
Mar 31 14:34:37 s12 smartd[14930]: Device: /dev/sdc [SAT], offline data collection was suspended by an interrupting command from host (auto:on)
Mar 31 14:34:37 s12 smartd[14930]: Device: /dev/sda [SAT], state written to /var/lib/smartmontools/smartd.ST31000340NS-9QJ2ADVC.ata.state
Mar 31 14:34:37 s12 smartd[14930]: Device: /dev/sdb [SAT], state written to /var/lib/smartmontools/smartd.ST31000340NS-9QJ5HB9J.ata.state
Mar 31 14:34:37 s12 smartd[14930]: Device: /dev/sdc [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD1003FBYX_01Y7B0-WD_WCAW30367458.ata.state
Mar 31 14:34:37 s12 smartd[14989]: smartd has fork()ed into background mode. New PID=14989.
Mar 31 14:34:37 s12 smartd[14989]: file /var/run/smartd.pid written containing PID 14989

На почту должны прийти сообщения следующее типа:

This email was generated by the smartd daemon running on:

   host name: server01.homecorp.com
  DNS domain: homecorp.com
  NIS domain: (none)

The following warning/error was logged by the smartd daemon:

TEST EMAIL from smartd for device: /dev/sda [SAT]

For details see host's SYSLOG.

Если письмо не пришло, то смотрите логи. Если все ок, то опцию “-M test” можно заменить на -M diminishing, которое постоянно напоминать об ошибке (через каждых 2*N дней, т.е. 1-го числа, второго, четвертого, восьмого и т.д.) или вообще ее убрать, тогда письмо о проблеме придет только один раз, так что будьте осторожны и не потеряйте его.

Пример мониторинга дисков за Megaraid LSI 2108 RAID контроллером, которые не поддерживают атрибуты.

root@s09:~# vim /etc/smartd.conf
…
/dev/sda -d megaraid,0 -m frodo10@gmail.com -a -s (S/../.././01|L/../../6/03)
/dev/sda -d megaraid,1 -m frodo10@gmail.com -a -s (S/../.././01|L/../../6/03)
…

И последний пример с игнорированием неважных атрибутов.

root@s09:~# vim /etc/smartd.conf
…
/dev/sda -o on -S on -H -f -t -l error -l selftest -C 197 -U 198 -W 40,50 -R 5 -I 190 -I 194 -m test@gmail.com -s (S/../.././02|L/../../7/04)
…

Здесь проверяется статус здоровья диска (-H), с мониторингом статуса Usage(Old_age) атрибутов на статус “failure” (-f) и изменением значений Usage(Old_age) и Prefail атрибутов (-t), но игнорируются смена значений атрибутов связанных с температурой 190,194 (но приходит уведомление если значение температуры больше 40,50 — «-W»). Так же мониторим значение переназначенных (-R), помеченных битыми(-C) и неисправимых (-U) секторов. Кроме этого проверяется журнал ошибок и пройденных тестов (-l error -l selftest). Краткие тесты запускаются каждый день в 2 ночи, долгие – каждое воскресенье в 4 ночи (-s). Информация об ошибка шлется на почту (-m).

Тестируем работу smartd демона

smartd можно запустить в debug режиме для проверки настроек.

root@s12:~# smartd -d
smartd 5.41 2011-06-09 r3365 [x86_64-linux-3.8.0-29-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

Opened configuration file /etc/smartd.conf
Configuration file /etc/smartd.conf parsed.
Device: /dev/sda, type changed from 'scsi' to 'sat'
Device: /dev/sda [SAT], opened
Device: /dev/sda [SAT], ST31000340NS, S/N:9QJ2ADVC, WWN:5-000c50-00dd5f99b, FW:SN05, 1.00 TB
Device: /dev/sda [SAT], found in smartd database.
Device: /dev/sda [SAT], WARNING: There are known problems with these drives,
see the following Seagate web pages:
http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=207931
http://seagate.custkb.com/seagate/crm/selfservice/search.jsp?DocId=207963
Device: /dev/sda [SAT], enabled SMART Attribute Autosave.
Device: /dev/sda [SAT], enabled SMART Automatic Offline Testing.
Device: /dev/sda [SAT], is SMART capable. Adding to "monitor" list.
Device: /dev/sda [SAT], state read from /var/lib/smartmontools/smartd.ST31000340NS-9QJ2ADVC.ata.state
Monitoring 1 ATA and 0 SCSI devices
Executing test of mail to virmagnavi2010@gmail.com ...
Test of mail to virmagnavi2010@gmail.com: successful
Device: /dev/sda [SAT], opened ATA device
Device: /dev/sda [SAT], SMART Usage Attribute: 195 Hardware_ECC_Recovered changed from 49 to 48
Device: /dev/sda [SAT], offline data collection was completed without error (auto:on)
Device: /dev/sda [SAT], previous self-test was interrupted by the host with a reset
Device: /dev/sda [SAT], state written to /var/lib/smartmontools/smartd.ST31000340NS-9QJ2ADVC.ata.state

В этом режиме можно проверить или правильно был настроен конфигурационный файл и проверить отправляется ли почта. Чтобы выйти с этого режима нужно нажать Ctrl+\. Используя Ctrl+C – файл конфигурации будет перечитан в реальном времени.
Так же можно запустить один раз проверку настроек использую директиву “-q onecheck” с указанием пути к конфигурационному файлу, или без него.

root@s12:~# smartd -c /path/to/smartd.conf -q onecheck

Можно также проверить настройку без конфигурационного файла, передавая нужную строку на STDIN smartd демона.

root@s12:~# echo "/dev/sda -a -m user@home,vir@gmail.com -M test" | smartd -c - -q onecheck

Вот и все.

Автор: admin, 1 апреля 2014
Рубрики: Системы мониторинга
Метки: ,
4 комментария к сообщению: “S.M.A.R.T. (часть 7). Настройка smartd демона для мониторинга дисков под Ubuntu 12.04”
  1. Жорж:

    Спасибо. лучшая статья!

  2. avekrivoy:

    Добрый день!

    Не приходят сообщения при изменении параметра Reallocated_Sector_Ct.
    Конфиг такой:
    /dev/sda -o on -S on -H -f -t -l error -l selftest -C 197 -U 198 -W 40,50 -R 5! -I 190 -I 194 -m my@mail.com -M daily -s (S/../.././12|L/../../7/04)
    Причем, в логах изменение светится. В отличии от вашей статьи, указал -R 5!
    Т.к судя по man smartd.conf:

    If the optional flag ´!´ is appended, a change of the Raw value is considered critical. The report will be logged as LOG_CRIT and a warning email will be sent if ´-m´ is specified. An example is ´-R 5!´ to warn when new sectors are reallocated.

    И оттуда же:
    -m ADD Send a warning email to the email address ADD if the ´-H´, ´-l´, ´-f´, ´-C´, or ´-O´ Directives detect a failure or a new error, or if a
    SMART command to the disk fails. This Directive only works in conjunction with these other Directives (or with the equivalent default
    ´-a´ Directive).

    Получается, при опции -R письма ходить и не должны?

  3. Sergio B:

    Перелопатил множество источников, но помогла разобраться именно эта статья. Хорошо разжеван процесс, спасибо.

Написать комментарий

Последние статьи

Яндекс.Метрика
?>