Мониторинг параметров S.M.A.R.T. в Zabbix
sys-apps/smartmontools-6.1
net-analyzer/zabbix-2.0.4-r1
Установка smartmontools
emerge sys-apps/smartmontools -av
Установка скрипта
Создание папки для скриптов:
mkdir /etc/zabbix/scripts/ chown root:zabbix -R /etc/zabbix/scripts/ chmod 750 /etc/zabbix/scripts/
Создадим сам скрипт:
Скрипт поддерживает обнаружение (discovery) дисков.
Скрипт предусматривает кэш, что позволяет сократить количество реальных обращений.
Время действия кэша в секундах должно устанавливается чуть меньше чем период опроса элементов.
Установка прав
chown root:zabbix /etc/zabbix/scripts/smart-stats.sh chmod 550 /etc/zabbix/scripts/smart-stats.sh
Настройка прав пользователю zabbix в sudo
... ##### CUSTOM ##### zabbix ALL=(ALL) NOPASSWD: /usr/sbin/smartctl
Проверить работу скрипта для zabbix:
sudo -u zabbix /etc/zabbix/scripts/smart-stats.sh none sda Temperature_Celsius
Вы должны получить данные, если этого не произошло, то конфигурация выполнена не правильно.
Если для проверки скрипт запускался с правами root, то он будет владельцем кэш файла - удалите кэш файл после проверок.
Настройка Zabbix Agent
Настройка
... UserParameter=smart[*],/etc/zabbix/scripts/smart-stats.sh none "$1" "$2"
Перезапустить
/etc/init.d/zabbix-agentd restart
Проверка
zabbix_get -s HOST -k 'smart[sda,Temperature_Celsius]'
Настройка Zabbix Server
Для контролируемых данных в Zabbix нужно создать соответствующее элементы с типом «Zabbix агент» и ключом типа:
smart[dev,key]
где dev - имя устройства, key - контролируемая метрика.
Готовый Шаблон для мониторинга SMART (agent) с уже настроенными элементами и графиками.
Результат
Пример графиков:
Обсуждение
В скрипте ошибка. По итогам DICOVERY получается строка:
{ "data":[{ "{#HDNAME}":"sda"}, { "{#HDNAME}":"sdb"},]}Последняя запятая явно лишняя.
Версия 2.2. таймаут поставил маленький для тестирования шаблона. В разделе НАСТРОЙКА-УЗЛЫ СЕТИ-мой сервер-ПРАВИЛА ОБНАРУЖЕНИЯ данный шаблон пометился красным значком с ошибкой и надписью "Value should be a JSON object". Именно после удаления последней запятой все заработало.
Спасибо за проделанную работу - Ваши статьи помогают быстро разобраться.
Если вдруг у кого возникнет проблема что нет данных, можно попробовать включить smart командой
Хороший ман, единственно установка smartmontools sudo aptitude install smartmontools -y nano /etc/default/smartmontools
/etc/init.d/smartmontools restart
и вместо /etc/init.d/zabbix-agentd restart должно быть /etc/init.d/zabbix-agent restart
Спасибо! Успешно завелось. Только из скрипта пришлось убрать первый аргумент (RESERVED="$1").
Как настроить работу в режиме активного агента?
Подскажите, что и где изменить для корректной работы в Zabbix 2.4.8-1 На клиенте скрипт отрабатывает корректно
Вот с Zabbix-сервера при попытке опросить
# zabbix_get -s <myzabbixclient> -k 'smart[sda,Temperature_Celsius]' { "data":[{"{#HDNAME}":"sda"}, {"{#HDNAME}":"sdb"}]}Соответственно в Latest Data имею http://clip2net.com/s/3yt8yrv
Заранее благодарен.
Да, действительно в этом была причина. Некорректно добавил строку с UserParameter= Исправил.Отрабатывает корректно. Благодарю за помощь. И отдельное спасибо за качественно и доходчиво написанные статьи на Вашем сайте.
Есть zabbix 3.0 и есть raid5 на 4 scsi винтах, при попытке выполнить скрипт на клиенте
# ./test-smart-raid.sh { "date":[{"{#HDNAME}":"sg0"}, {"{#HDNAME}":"sg1"}, {"{#HDNAME}":"sg2"}, {"{#HDNAME}":"sg3"}, {"{#HDNAME}":"sg4"}, {"{#HDNAME}":"sg5"}]}вывод smartctl
# smartctl -a /dev/sg0 smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-642.1.1.el6.x86_64] (local build) Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net Vendor: IBM-ESXS Product: CBRCA146C3ETS0 N Revision: C370 User Capacity: 146 814 976 000 bytes [146 GB] Logical block size: 512 bytes Logical Unit id: 0x5000cca00a4500fc Serial number: PCW6YENE Device type: disk Transport protocol: SAS Local Time is: Tue Jul 5 11:38:29 2016 GMT-5 Device supports SMART and is Enabled Temperature Warning Enabled SMART Health Status: OK Current Drive Temperature: 41 C Drive Trip Temperature: 65 C Manufactured in week 48 of year 2009 Specified cycle count over device lifetime: 50000 Accumulated start-stop cycles: 42 Elements in grown defect list: 0 Vendor (Seagate) cache information Blocks sent to initiator = 25593508303732736 Error counter log: Errors Corrected by Total Correction Gigabytes Total ECC rereads/ errors algorithm processed uncorrected fast | delayed rewrites corrected invocations [10^9 bytes] errors read: 0 299685 0 299685 22869696 45877,533 0 write: 0 1485603 0 1485603 988179 49556,618 0 verify: 0 1137 0 1137 376 3558,372 0Подскажите пожалуйста, как переделать скрипт, под данные винты, что бы получать в CAHCE_FILE
Эти данные получается выдрать:При выполнении из терминала
# DEVICES=`ls /dev | sed -e '/^\(sg[0-9]\)$/!d'` # CACHE_FILE="/tmp/zabbix.smart.${DEVICES}.cache" # DATACACHE=`${SMARTCTL} -a /dev/${DISK} | egrep '^(SMART Health Status|Current Drive Temperature|Serial number)' | cut -d':' -f2 | tr -d ' '` # echo "${DATACACHE}" > "${CACHE_FILE}"создается файл с именем zabbix.smart.sg0.sg1.sg2.sg3.sg4.sg5.cache
Заранее благодарен.
p.s: Шаблон импортировался без каких либо проблем.