Ads 468x60px

вторник, 14 августа 2012 г.

Nagios мониторинг температуры.

Задача: отслеживать температуру процессоров серверов.
Используемые средства: сервер сбора статистики Nagios, протокол передачи данных snmp, программное обеспечение на стороне клиента windows: speedfan с расширением http://deve.loping.net/projects/sfsnmp/
Так как в какой-то момент сервис deve.loping.net был не доступен выложил на google-disk установочный файл sfsnmp-0.1.12.msi
Настройка windows клиента.
Windows 2003 server.
1. Скачиваем и устанавливаем с almico.com download speedfan446.
2. Регистрируем его как сервис, я воспользовался вот этой инструкцией Instsrv.exe & Srvany.exe приведу кратко команды:
- запускаем командную оболочку cmd.exe в ней:
> cd "c:\program files\windows resource kits\tools\"
> Instsrv SpeedFanService "c:\program files\windows resource kits\tools\srvany.exe"
в списке служб должны получить SpeedFanService
- теперь добавляем параметры в реестр:
выполняем файл реестра следующего содержания speedFanParameters.reg:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SpeedFanService\Parameters]
"Application"="C:\\Program Files\\SpeedFan\\speedfan.exe"
, при необходимости изменить путь к исполняемому файлу speedfan.exe.
- включаем опцию "Разрешить взаимодействие с рабочим столом"
3. Устанавливаем поддержку протокола snmp:
после чего настраиваем службу протокола SNMP, указывая разрешенные сервера и группы:
4. Устанавливаем расширение для работы speedfan через snmp download sfsnmp
5. Запсукаем/перезапускаем созданную нами службу SpeedFanService.

Windows 2008 server.
1. Скачиваем и устанавливаем с almico.com download speedfan446.
2. Регистрируем его как сервис, для этого: - копируем программу srvany.exe в каталог C:\Windows\system32, запускаем командную строку от имени администратора и выполняем следующую команду:
> sc create SpeedFanService binPath= C:\Windows\system32\srvany.exe start= auto
, Внимание пробел после знака равно обязателен
- теперь добавляем параметры в реестр:
выполняем файл реестра следующего содержания speedFanParameters.reg:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SpeedFanService\Parameters]
"Application"="C:\\Program Files (x86)\\SpeedFan\\speedfan.exe"
, при необходимости изменить путь к исполняемому файлу speedfan.exe.
- включаем опцию "Разрешить взаимодействие с рабочим столом"
3. Устанавливаем поддержку протокола snmp:
после чего настраиваем службу протокола SNMP, для чего запускаем консоль управления службами от имени администратора,указывая разрешенные сервера и группы:
4. Устанавливаем расширение для работы speedfan через snmp download sfsnmp
5. Запсукаем/перезапускаем созданную нами службу SpeedFanService.
Примечание:
если на стороне сервера nagios, получаем следующую ошибку:
External command error: Error in packet
Reason: (genError) A general failure occured
Failed object: iso.3.6.1.4.1.30503.1.2.2
значит необходимо добавить данные в реестр, следующего содержания SFSNMP.reg:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Bastart]

[HKEY_LOCAL_MACHINE\SOFTWARE\Bastart\SFSNMP]

[HKEY_LOCAL_MACHINE\SOFTWARE\Bastart\SFSNMP\CurrentVersion]
"Pathname"="C:\\Program Files (x86)\\Bastart\\SpeedFan SNMP Extension\\sfsnmp.dll"
"InstallDir"="C:\\Program Files (x86)\\Bastart\\SpeedFan SNMP Extension"
,при необходимости поменять пути к программе.
Настройка linux клиента Debian squeeze.
1. Установка демона для работы по протоколы snmpd:
$ sudo aptitude install snmp snmpd
2. Создаем файл конфигурации демона /etc/snmp/snmpd.conf
# listen Interface 
agentAddress udp:192.168.30.14:161
#  access group from the host
rocommunity public 192.168.30.19
, где 192.168.30.14 - ip адрес интерфейса на котором snmpd будет принимать команды public 192.168.30.19 - разрешенные группа и сервер.
Настройка Nagios сервера.
Для windows клиента.
Сначала необходимо убедиться, что мы можем получать данные от windows о температуре:
$ /usr/lib/nagios/plugins/check_snmp -H 192.168.30.1 -P 2c -o .1.3.6.1.4.1.30503.1.1.1
В ответ должны получить примерно следующую строку:
SNMP OK - 9 | iso.3.6.1.4.1.30503.1.1.1=9
, где число после OK означает число датчиков температуры, которые может отдавать speedfan.
Добавляем описание команды для получения данных о температуре в файл /etc/nagios-plugins/config/snmp.cfg нужно добавить следующие строки :
# 'snmp_cpu_win_t' command definition
define command{
        command_name    snmp_cpu_win_t
        command_line    /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -P 2c -o .1.3.6.1.4.1.30503.1.2.$ARG1$ -w $ARG2$ -c $ARG3

}
, где snmp_cpu_win_t - имя команды, которое будет использоваться в описании сервиса.
В файле описания сервера windows /etc/nagios3/objects/windows.cfg добавляем пункт для контроля температуры:
#Create a service for monitoring CPU temperature
define service{
        use                     generic-service
        host_name               winserver
        service_description     CPU TEMP
        check_command           snmp_cpu_win_t!8!6000!7000
        }
, где 8 - это номер датчика, данные которого будем контролировать
6000 - это 60 градусов Цельсия - значение для warning, а 7000 - значение для critical
Осталось только не забыть перезапустить nagios:
$ sudo service nagios3 restart
Для linux клиента.
Убедимся, что мы можем получать данные от linux о температуре:
$ /usr/lib/nagios/plugins/check_snmp -H 192.168.30.14 -P 2c -o .1.3.6.1.4.1.2021.13.16.5.1.3.1
В ответ должны получить примерно следующую строку:
SNMP OK - 31000 | iso.3.6.1.4.1.2021.13.16.5.1.3.1=31000
, где число после OK равно температуре процессора + три знака после запятой (в данном примере это 31 градус цельсия)
Добавляем описание команды для получения данных о температуре в файл /etc/nagios-plugins/config/snmp.cfg нужно добавить следующие строки :
# 'snmp_cpu_lin_t' command definition
define command{
        command_name    snmp_cpu_lin_t
        command_line   /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -P 2c -o .1.3.6.1.4.1.2021.13.16.5.1.3.1  -w $ARG1$ -c $ARG2$
}
, где snmp_cpu_lin_t - имя команды, которое будет использоваться в описании сервиса. В файле описания сервера добавляем следующие строки:
define service{
        use                             generic-service
        host_name                       linuxserver
        service_description             CPU TEMP
        check_command                   snmp_cpu_lin_t!60000!70000
}
перезапускаем nagios:
$ sudo service nagios3 restart

6 комментариев:

zabbix itgro комментирует...

Винда 2008, не запускается спидфан как сервис, как не крути. Вылетает с ошибкой о невозможности запустить сервис.

zabbix itgro комментирует...

http://shot.qip.ru/009FgQ-1lRCWIZKS/

felis-lybica комментирует...

попробовал на еще одном: windows 2008 R2 Standard. Все запустилось и работает.
Как вариант обновить систему и проверить на вирусы.

Анонимный комментирует...

1. Установить sfsnmp.

2. Запускать вместо speedfan.exe файл Injector.exe.

Файл Injector.exe будет установлен в каталог SpeedFan, для запуска добавить
ярлык в автозагрузку.

felis-lybica комментирует...

такой вариант возможно будет работать на персональном компьютере, но для сервера не удобен.

felis-lybica комментирует...

SFSNMP откуда скачать можно?

Выложил на google-disk
sfsnmp-0.1.12.msi