Скрипт снятия S.M.A.R.T для Nagios

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Kazak
мл. сержант
Сообщения: 99
Зарегистрирован: 2009-07-28 9:46:46

Скрипт снятия S.M.A.R.T для Nagios

Непрочитанное сообщение Kazak » 2011-01-05 19:56:13

Задался целью сделать пассивную проверку для одного из объектов проверки Nagios.

Настругал простенькую команду после долгого гугления и чтения о "плагинописании" для Нагиос.

Код: Выделить всё

# printf "%s\t%s\t%s\n" "localhost" "ad10_health" "OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALT_STATUS=PASSED for /dev/ad3. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED" | send_nsca -H 192.168.0.1 -c /usr/local/etc/nagios/send_nsca.cfg
Получил выхлоп:

Код: Выделить всё

localhost       ad3_health      OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALT_STATUS=PASSED for /dev/ad10. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED


Настругал скриптик

Код: Выделить всё

#!/bin/sh
#ad10 health checker
WMSG="/usr/local/etc/scripts/ad10stats"
RMSG=`cat  /usr/local/etc/scripts/ad10stats`
NSCA_SERVER="192.168.0.1"
NSCA_SERVICE="ad10_health"
NSCA_HOST="webserver"

nsca () {
printf "%s\t%s\t%s\t%s\n" "${NSCA_HOST}" "${NSCA_SERVICE}" "${ERROR}" "${RMSG}" | send_nsca -H $NSCA_SERVER -c /usr/local/etc/nagios/send_nsca.cfg
}

/usr/local/libexec/nagios/check_hdd_health -d /dev/ad10 > ${WMSG} && nsca

exit


Получил выхлоп: ( Отформатированный, выведенный одной строкой вывод команды, с указанным в начале хостом и службой которая шлет это сообщение)

Код: Выделить всё

localhost       ad3_health      OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALT_STATUS=PASSED for /dev/ad3. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
И тут то и таился геморрой, "руками" запущенная команда дает еффект на удаленном сервере, команды выводятся в нагиос, а скрипт отрабатывая не дает ничего... статистика не обновляется

Я сделал дамп файл на сервере ( машине на которую установлен сервер Nagios) и ловил то что присылают ему скрипты:

Код: Выделить всё

gateway# cat /var/spool/nagios/rw/nsca.dump
[1294244203] PROCESS_HOST_CHECK_RESULT;localhost;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALTH_STATUS=PASSED for /dev/ad3. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
[1294244225] PROCESS_HOST_CHECK_RESULT;localhost;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALT_STATUS=PASSED for /dev/ad3. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
[1294244325] PROCESS_HOST_CHECK_RESULT;localhost;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALT_STATUS=PASSED for /dev/ad3. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
[1294244374] PROCESS_HOST_CHECK_RESULT;localhost;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALTH_STATUS=PASSED for /dev/ad3. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
[1294245932] PROCESS_HOST_CHECK_RESULT;webserver;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALTH_STATUS=PASSED for /dev/ad10. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
[1294245937] PROCESS_HOST_CHECK_RESULT;webserver;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALTH_STATUS=PASSED for /dev/ad1. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
[1294245974] PROCESS_HOST_CHECK_RESULT;webserver;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALTH_STATUS=PASSED for /dev/ad1. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
[1294246044] PROCESS_HOST_CHECK_RESULT;localhost;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALT_STATUS=PASSED for /dev/ad3. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
[1294246050] PROCESS_HOST_CHECK_RESULT;localhost;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALT_STATUS=PASSED for /dev/ad3. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
[1294246053] PROCESS_HOST_CHECK_RESULT;localhost;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALT_STATUS=PASSED for /dev/ad3. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
[1294246062] PROCESS_HOST_CHECK_RESULT;webserver;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALTH_STATUS=PASSED for /dev/ad1. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
[1294246070] PROCESS_HOST_CHECK_RESULT;webserver;0;OK - HDD S.M.A.R.T health: src=0, rsc=0, rec=0, cps=0, ou=0, HEALTH_STATUS=PASSED for /dev/ad10. |smart=src=0; rsc=0; rec=0; cps=0; ou=0; pass=PASSED
Как мы видим, формат у выхлопа единый ..возможно правильный, так как по иному форматированнный выхлоп просто не приходит на сервер.
Может кто то из знающих, видит в чем проблема, помогите пожалуйста.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
unix-admin
ст. сержант
Сообщения: 324
Зарегистрирован: 2010-11-26 12:43:04
Откуда: Cornucopia

Re: Скрипт снятия S.M.A.R.T для Nagios

Непрочитанное сообщение unix-admin » 2011-01-05 22:03:55

А почему вы не используете

Код: Выделить всё

/usr/ports/net-mgmt/nagios-check_smartmon 
?

Kazak
мл. сержант
Сообщения: 99
Зарегистрирован: 2009-07-28 9:46:46

Re: Скрипт снятия S.M.A.R.T для Nagios

Непрочитанное сообщение Kazak » 2011-01-06 13:25:03

unix-admin писал(а):А почему вы не используете

Код: Выделить всё

/usr/ports/net-mgmt/nagios-check_smartmon 
?
С ним еще больше проблем, он не видит что включен СМАРТ, + не может выполнять проверки удаленно, ругается что у него нет нет прав на выполнение плагина, хотя запускается от имени юзера "нагиос", который и является владельцем этой папки, права устанавлись 777,толку не было.

Аватара пользователя
unix-admin
ст. сержант
Сообщения: 324
Зарегистрирован: 2010-11-26 12:43:04
Откуда: Cornucopia

Re: Скрипт снятия S.M.A.R.T для Nagios

Непрочитанное сообщение unix-admin » 2011-01-06 16:18:15

Kazak писал(а):С ним еще больше проблем, он не видит что включен СМАРТ, + не может выполнять проверки удаленно, ругается что у него нет нет прав на выполнение плагина, хотя запускается от имени юзера "нагиос", который и является владельцем этой папки, права устанавлись 777,толку не было.
Может у пользователя nagios нет прав на выполнение smartctl?
Вот это http://wiki.tyk.nu/index.php/Check_smar ... disk_check видели?
The Nagios user needs permission to run the smartctl binary with root permissions, I recommend using sudo for this purpose.
p.s. Может быть из-за этого проблемы и с вашим скриптом?

Kazak
мл. сержант
Сообщения: 99
Зарегистрирован: 2009-07-28 9:46:46

Re: Скрипт снятия S.M.A.R.T для Nagios

Непрочитанное сообщение Kazak » 2011-01-06 17:28:27

unix-admin писал(а): p.s. Может быть из-за этого проблемы и с вашим скриптом?
В том то и дело что я это уже пробовал - скрипт уже выполняется рута по крону, и остылает результаты, но статистика так и не обновляется. Не понимаю ... :st:

Kazak
мл. сержант
Сообщения: 99
Зарегистрирован: 2009-07-28 9:46:46

Re: Скрипт снятия S.M.A.R.T для Nagios

Непрочитанное сообщение Kazak » 2011-01-11 9:51:35

Kazak писал(а):
unix-admin писал(а): p.s. Может быть из-за этого проблемы и с вашим скриптом?
В том то и дело что я это уже пробовал - скрипт уже выполняется рута по крону, и остылает результаты, но статистика так и не обновляется. Не понимаю ... :st:
Проблема решена.
Я добавил в начало скрипта поле "MAILTO=" чтобы получать уведомления на почтовый ящик, в случае ошибок в скрипте исполняемом по крону, и так я увидел что скрипт не видит пути к send_nsca, который прописал явно, чем и решил проблему.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Скрипт снятия S.M.A.R.T для Nagios

Непрочитанное сообщение Gamerman » 2011-01-11 10:47:22

Если по крону - всегда нужно полный путь писать. Типичные грабли (сам наступал неоднократно :) )
Глюк глюком вышибают!

Аватара пользователя
unix-admin
ст. сержант
Сообщения: 324
Зарегистрирован: 2010-11-26 12:43:04
Откуда: Cornucopia

Re: Скрипт снятия S.M.A.R.T для Nagios

Непрочитанное сообщение unix-admin » 2011-01-11 10:56:25

Gamerman писал(а):Если по крону - всегда нужно полный путь писать...
Если настроена переменная PATH - не нужно.