В этой статье хотел немного углубиться в настройки 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 ...
Здесь,
- local3.* — включить все уровни логирования для объекта 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
Вот и все.
Спасибо. лучшая статья!
Добрый день!
Не приходят сообщения при изменении параметра 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 письма ходить и не должны?
Если ID = 5 = Reallocated_Sector_Ct и оно поменялось и установлен почтовый агент, то должно слать
Перелопатил множество источников, но помогла разобраться именно эта статья. Хорошо разжеван процесс, спасибо.