Andy home page
Главное меню
Главная
Категории
Статьи
Файлы
Ссылки
Архив
Поиск
Галлерея
Гостевая
Опросы
Сетевой калькулятор
NES Emulator
Музей
Обратная связь

Кто на сайте
Добро пожаловать,
Гость

ВойтиВойти
РегистрацияРегистрация
Забыли Пароль?Забыли Пароль?

Посетителей онлайн
ПользователейПользователей: 0
ГостейГостей: 291
_BOTБотов: 16
ВсегоВсего: 307

Server Time
Время: 13:02:37
Дата: 23/08/17
Календарь
Ссылки

Настройка SNMP для получение данных S.M.A.R.T.
Напечатать текущую страницу
Linux

Настройка SNMP для получение данных S.M.A.R.T.



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

 

Ставим пакет smartmontools

#apt-get install smartmontools
#smartctl -a /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.11.0-20-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.7 and 7200.7 Plus
Device Model:     ST3120022A
Serial Number:    5JS0E07Z
Firmware Version: 3.06
User Capacity:    120.034.123.776 bytes [120 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   6
ATA Standard is:  ATA/ATAPI-6 T13 1410D revision 2
Local Time is:    Mon May 26 21:59:24 2014 EEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
....
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
.....
  7 Seek_Error_Rate         0x000f   089   060   030    Pre-fail  Always       -       886804289
  9 Power_On_Hours          0x0032   074   074   000    Old_age   Always       -       22790
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   096   096   020    Old_age   Always       -       4388
194 Temperature_Celsius     0x0022   042   050   000    Old_age   Always       -       37
195 Hardware_ECC_Recovered  0x001a   062   057   000    Old_age   Always       -       104312508
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   164   000    Old_age   Always       -       255
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 Data_Address_Mark_Errs  0x0032   100   253   000    Old_age   Always       -       0
.....

Для получения S.M.A.R.T. нужны права root, у службы snmpd таких прав нет, поэтому создадим скрипт, который будет собирать данные S.M.A.R.T. в файл.

#touch /etc/snmp/getsmart.sh
#nano /etc/snmp/getsmart.sh

содержимое файла

#!/bin/sh
for drive in /dev/sd?; 
do
	device=`basename $drive`
    /usr/sbin/smartctl -a -n idle $drive > /tmp/smart_$device
done

Выставляем права на выполнение

#chmod +x /etc/snmp/getsmart.sh

теперь можно добавить скрипт в крон

#nano /etc/crontab

добавить в конец файла такую запись

*/5 * * * *	root	/etc/snmp/getsmart.sh

Cкрипт для извлечения параметров S.M.A.R.T. для SNMPD

#touch /etc/snmp/attrsmart.sh
#nano /etc/snmp/attrsmart.sh

содержимое файла

#!/bin/sh
for smartlog in $(ls /tmp/smart*); 
do
    case "$1" in
        -temp )
ATTR=`cat $smartlog | /bin/grep 'Temperature_Celsius' | /usr/bin/awk '{ print $10; }'`         
        ;;
        -reloc )
ATTR=`cat $smartlog | /bin/grep 'Reallocated_Sector_Ct' | /usr/bin/awk '{ print $10; }'`
        ;;	
        -pendsec )
ATTR=`cat $smartlog | /bin/grep 'Current_Pending_Sector' | /usr/bin/awk '{ print $10; }'`
        ;;	
        -rawerror )
ATTR=`cat $smartlog | /bin/grep 'Raw_Read_Error_Rate' | /usr/bin/awk '{ print $10; }'`
        ;;
        -seekerror )
ATTR=`cat $smartlog | /bin/grep 'Seek_Error_Rate' | /usr/bin/awk '{ print $10; }'`
        ;;	
        -device )
ATTR=`echo $smartlog | grep -Eo '.{3}$'`
        ;;			
        *)
ATTR=`cat $smartlog | grep "Device Model" | awk '{ print $3,$4 }'`
        ;;
    esac 
	echo $ATTR 
done

Выставляем права на выполнение

#chmod +x /etc/snmp/attrsmart.sh

скрипт выводит только самые необходимые параметры S.M.A.R.T.

теперь добавляем вызов скрипта в конец файла /etc/snmp/snmpd.conf

#nano /etc/snmp/snmpd.conf

одна строка для каждого параметра

extend "model" /etc/snmp/attrsmart.sh
extend "device" /etc/snmp/attrsmart.sh -device
extend "temperature" /etc/snmp/attrsmart.sh -temp
extend "relocseccount" /etc/snmp/attrsmart.sh -reloc
extend "rawreaderror" /etc/snmp/attrsmart.sh -rawerror
extend "seekerrorrate" /etc/snmp/attrsmart.sh -seekerror

перезапускаем службу snmpd

#service snmpd restart

и проверяем

snmpwalk -c server104_ubuntu -v 2c localhost NET-SNMP-EXTEND-MIB::nsExtendObjects
NET-SNMP-EXTEND-MIB::nsExtendNumEntries.0 = INTEGER: 7
NET-SNMP-EXTEND-MIB::nsExtendCommand."model" = STRING: /etc/snmp/attrsmart.sh
NET-SNMP-EXTEND-MIB::nsExtendCommand."device" = STRING: /etc/snmp/attrsmart.sh
NET-SNMP-EXTEND-MIB::nsExtendCommand."temperature" = STRING: /etc/snmp/attrsmart.sh
NET-SNMP-EXTEND-MIB::nsExtendCommand."rawreaderror" = STRING: /etc/snmp/attrsmart.sh
NET-SNMP-EXTEND-MIB::nsExtendCommand."relocseccount" = STRING: /etc/snmp/attrsmart.sh
NET-SNMP-EXTEND-MIB::nsExtendCommand."seekerrorrate" = STRING: /etc/snmp/attrsmart.sh
NET-SNMP-EXTEND-MIB::nsExtendArgs."model" = STRING:
NET-SNMP-EXTEND-MIB::nsExtendArgs."device" = STRING: -device
NET-SNMP-EXTEND-MIB::nsExtendArgs."temperature" = STRING: -temp
.....
NET-SNMP-EXTEND-MIB::nsExtendOutLine."seekerrorrate".1 = STRING: 0
NET-SNMP-EXTEND-MIB::nsExtendOutLine."seekerrorrate".2 = STRING: 713406629

Теперь можно использовать snmp для мониторинга S.M.A.R.T.


При копировании материалов ссылка на сайт обязательна


Добавлена: 28/05/2014 · Автор: admin

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

Оценить:
Сатьи

Все статьи
Друзья
Сайт skeletora
ОНАПТ
Погода
Social


Webmaster Andy
Copyright©1998-2014 Odessa


Открытие страницы: 0.08 секунды и 10 запросов к БД
Яндекс.Метрика Free secondary DNS
Регистрация домена
free counters