Zabbix мониторим жесткие диски S.M.A.R.T Linux

Решил прикрутить smartmontools к Zabbix, для просмотра температуры и ошибок HDD.

Устанавливаем smartmontools

aptitude install smartmontools

Просмотр состояние жесткого диска sda:

smartctl --all /dev/sda

Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   120   099   006    Pre-fail  Always       -       1596728
  3 Spin_Up_Time            0x0003   100   100   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       27
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       2
  7 Seek_Error_Rate         0x000f   077   060   030    Pre-fail  Always       -       54662001
  9 Power_On_Hours          0x0032   092   092   000    Old_age   Always       -       7504
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       27
184 Unknown_Attribute       0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Unknown_Attribute       0x0032   100   097   000    Old_age   Always       -       25
189 High_Fly_Writes         0x003a   089   089   000    Old_age   Always       -       11
190 Airflow_Temperature_Cel 0x0022   060   054   045    Old_age   Always       -       40 (Lifetime Min/Max 35/46)
194 Temperature_Celsius     0x0022   040   046   000    Old_age   Always       -       40 (0 23 0 0)
195 Hardware_ECC_Recovered  0x001a   033   023   000    Old_age   Always       -       1596728
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       159102768515831
241 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      -       3688517150
242 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      -       2811285240

 

Немного теории (взято с opennet.ru):

VALUE — одно байтовое значение показы данных «нормализованное» :).

RAW_VALUE — Каждый атрибут имеет raw value 6-ти байтовое значение

TYPE — существует 2 типа атрибутов:

Критичные атрибуты: (Pre-fail)

Некритичные атрибуты: (Old_age) (величина value отведенная вендором до наработки на отказ (ресурс)).

Если VALUE стало меньше THRESH в случае Pre-fail атрибута — существует большая вероятность, что диск вылетит в ближайшие 24 часа.

Если VALUE стало меньше THRESH в случае Old_age атрибута — существует большая вероятность, что диск вылетит т.к. выработан ресурс. Вот только когда — науке это неизвестно.

Критичные атрибуты:

* Raw Read Error Rate — частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска.

* Spin Up Time — время раскрутки пакета дисков из состояния покоя до рабочей скорости. При расчете нормализованного значения (Value) практическое время сравнивается с некоторой эталонной величиной, установленной на заводе. Не ухудшающееся немаксимальное значение при Spin Up Retry Count Value = max (Raw равном 0) не говорит ни о чем плохом. Отличие времени от эталонного может быть вызвано рядом причин, например просадка по вольтажу блока питания.

* Spin Up Retry Count — число повторных попыток раскрутки дисков до рабочей скорости, в случае если первая попытка была неудачной. Ненулевое значение Raw (соответственно немаксимальное Value) свидетельствует о проблемах в механической части накопителя.

* Seek Error Rate — частота ошибок при позиционировании блока головок. Высокое значение Raw свидетельствует о наличии проблем, которыми могут являться повреждение сервометок, чрезмерное термическое расширение дисков, механические проблемы в блоке позиционирования и др. Постоянное высокое значение Value говорит о том, что все хорошо.

* Reallocated Sector Count — число операций переназначения секторов. SMART в современных дисках способен произвести анализ сектора на стабильность работы «на лету» и в случае признания его сбойным, произвести его переназначение.

Некритичные атрибуты:

* Start/Stop Count — полное число запусков/остановов шпинделя. Гарантировано мотор диска способен перенести лишь определенное число включений/выключений. Это значение выбирается в качестве Treshold. Первые модели дисков со скоростью вращения 7200 оборотов/мин имели ненадежный двигатель, могли перенести лишь небольшое их число и быстро выходили из строя.

* Power On Hours — число часов проведенных во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (MBTF). Обычно величина MBTF огромна, и маловероятно, что этот параметр достигнет критического порога. Но даже в этом случае выход из строя диска совершенно не обязателен.  * Drive Power Cycle Count — количество полных циклов включения-выключения диска. По этому и предыдущему атрибуту можно оценить, например, сколько использовался диск до покупки.

* Temperatue — Здесь хранятся показания встроенного термодатчика. Температура имеет огромное влияние на срок службы диска (даже если она находится в допустимых пределах). Вернее имеет влияние не на срок службы диска а на частоту возникновения некоторых типов ошибок, которые влияют на срок службы.

* Current Pending Sector Count — Число секторов, являющихся кандидатами на замену. Они не были еще определенны как плохие, но считывание их отличается от чтения стабильного сектора, так называемые подозрительные или нестабильные сектора.

* Uncorrectable Sector Count — число ошибок при обращении к сектору, которые не были скорректированы. Возможными причинами возникновения могут быть сбои механики или порча поверхности.

* UDMA CRC Error Rate — число ошибок, возникающих при передаче данных по внешнему интерфейсу. Могут быть вызваны некачественными кабелями, нештатными режимами работы.

* Write Error Rate — показывает частоту ошибок происходящих при записи на диск. Может служить показателем качества поверхности и механики накопителя.

Дополнительные атрибуты смотрите в Википедиии.

Теперь к практике:

Редактируем и добавляем в конец файла Linux Zabbix agent /etc/zabbix/zabbix_agentd.conf:

UserParameter=smartd.value[*],sudo smartctl -A $1 | grep $2 | awk '{print $ 4+0}'
UserParameter=smartd.trash[*],sudo smartctl -A $1 | grep $2 | awk '{print $ 6+0}'
UserParameter=smartd.raw[*],sudo smartctl -A $1 | grep $2 | awk '{print $ 10+0}'

Перегружаем zabbix_agent:

/etc/init.d/zabbix-agent restart

разрешаем запускать smartctl с админскими правами, добавляем в конец файла /etc/sudoers:

zabbix ALL= (ALL) NOPASSWD: /usr/sbin/smartctl

Теперь самое интересное, проверяем получение информации с zabbix-agent-а:

zabbix_get -s 192.168.1.10 -k smartd.value[/dev/sda,Raw_Read_Error_Rate]
120
zabbix_get -s 192.168.1.10 -k smartd.trash[/dev/sda,Temperature_Celsius]
40

где,

smartd.value (см. конфигурационный файл агента) — какую команду мы хотим выполнить на агенте и получаем данные с поля Value.

Temperature_Celsius — получаем информацию о температуре, подставляем свое, список можно взять из атрибутов см. выше.

Остается прикрутить все в Web морде и создать оповещения.

Создаем шаблон в админке Zabbix для мониторинга температуры:

1. Заходим в Конфигурацию шаблонов:

2. Создаем новый шаблон Templates_SMARTOOLS в группе Templates:

3. Создаем группу элементов данных sda

4. Создаем элемент данных

Дальше добавляем шаблон Templates_SMARTOOLS к группе узла и мониторим.. В данном случае пока температуру. но все в Ваших руках..

———————————————————————

Примечание:

Пытаясь получить информацию с жесткого диска программой smartmontools не выводит полную информацию:

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.11
Device Model:     ST3500320AS
Serial Number:    9QMA6VQE
Firmware Version: SD1A
User Capacity:    500,107,862,016 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Thu Sep 22 17:31:59 2011 MSD
SMART support is: Available - device has SMART capability.
SMART support is: Disabled

Включаем SMART:

smartctl --all /dev/sda -s on
Tags: smart,
  1. С трудом, но заставил работать.
    Потребовалось сначала заставить его работать локально — проверял вводом команды на хосте с агентом:
    zabbix_agentd -t smartd.raw[/dev/sda,Temperature_Celsius]
    Когда стал получать данные локально, стал настраивать серверную компоненту — на время настройки тип данных присвоил не Numeric, а String — сразу словил пару ошибок работы sudo без консоли — исправил; последнее что сделал — изменил «Тип» элемента с «Zabbix agent» на «Zabbix agent (active)» — и всё заработало.

    1. Да, забыл указать — оно не заработало, пока не был создан домашний каталог пользователя zabbix — /var/lib/zabbix
      Непонятно почему.

      1. В случае несовпадения имён хостов в /var/log/zabbix/zabbix_agent.log будут сообщения типа:
        19309:20141006:173002.010 no active checks on server [192.168.1.7:10051]: host [Zentyal-gateway] not found

  2. zabbix_get не выдает результат, насроил все по инструкции, что может быть?

  3. Уведомление: Zabbix мониторим жесткие диски Windows при помощи S.M.A.R.T | Заметки системного администратора

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *