Как отправить отчет о температуре NetPing TS v2 по E-mail

Задача такая, есть сервер в офисе, стоит в углу комнат, хочется понаблюдать за температурой как внутри сервера, так и температурой винчестеров БП и т.д. ну и заодно за температурой окружающего воздуха ну так, прикинуть эффективность системы охлаждения.
Как самый простой вариант, будем присылать данные о температуре в виде E-mail, раз в сутки.
Соответственно данные о температуре будем получать с устройства по SNMP, а отправлять E-mail при помощи VBScript на сервере.
Для измерения температуры берем NetPing TS v2 (у меня была версия встроенного ПО 50.4.10-8, но в принципе должно работать с любой версией до 50.5.Х, так как начиная с 50.5.Х в устройстве появился web и изменились OID)



Можно так же использовать Uniping, подкорректировав значения OID.
Начальную настройку устройства проводим, примерно так же как показано в статье:

http://forum.netping.ru/viewtopic.php?f=8&t=548

Для нашей сети я установил такие параметры:
Login admin
Password admin

IP address : 195.170.36.163
SNMP community ADMIN

Остальные параметры соответствуют дефолтным для этого устройства.

Очень рекомендую всегда менять дефолтные логин пароль и особенно SNMP Community на свои !!!
Ну правда не надо ставить их такими простыми как поставил я

Проверяем что устройство доступно с компьютера на котором будет работать скрипт:



В качестве скрипта воспользуемся VBScript, потому что он уже есть встроенным в ОС Windows 2003/XP/Vista И все что нужно для его написания, это только создать текстовый файл в Блокноте, дать ему расширение .vbs и все, можно выполнять.
К сожалению есть одно ограничение VBScipt, это невозможность работать его , встроенными средствами с SNMP OID (Ну или я о такой возможности не знаю кто знает, подскажите ! ).
Воспользуемся внешней бесплатной утилитой из библиотеки Net-SNMP.
http://net-snmp.sourceforge.net/
Описание процесса инсталляции этой утилиты можно поглядеть в статье: http://forum.netping.ru/viewtopic.php?f=8&t=548
Сам скрипт прикреплен во вложении этой статьи e-mail.vbs .
При написании скрипта мне очень помогла статья: http://www.paulsadowski.com/WSH/cdo.htm за что ее авторам огромное спасибо !
Для того чтобы сделать электронное письмо привлекательного вида я использовал заранее подготовленный HTML шаблон письма, в который скрипт только вставляет : IP устройства, дату и вемя, значение температуры.
Расскажу как я сделал шаблон, хотя мой путь не единственный и шаблон HTML можно создать как угодно. Единственный важный момент, для того чтобы скрипт нашел то место куда он будет вставлять значения, необходимо на этом месте в шаблон вписать специальный MARKER. MARKER это специальная последовательность символов единственное требование к которой, она должна быть уникальной внутри шаблона. Используемые в скрипте MARKER заданы в виде констант в файле e-mail.vbs примерно так:

Const MARKER_ADDRESS = "AAA.AAA.AAA.AAA" ' символы которые будут заменены на IP адрес устройства в скрипте
Const MARKER_DATE = "DATE_TIME" ' символы которые будут заменены текущей датой и временем в скрипте
Const MARKER_SENSOR1 = "SENSOR1" ' символы которые будут заменены на значение температуры датчика 1 в скрипте
Const MARKER_SENSOR2 = "SENSOR2" ' символы которые будут заменены на значение температуры датчика 2 в скрипте


Так вот, как я сделал шаблон. Я взял Word 2007 и написал в нем все, что я хочу. Получилось примерно так:



Далее сохранил документ как htm страницу с фильтром:



Вот и все, шаблон готов. Имя файла шаблона и путь к нему нужно будет указать в скрипте e-mail.vbs. Мой готовый шаблон прикреплен к этой статье temperature_template.htm
В начале файла скрипта e-mail.vbs находятся константы, которые необходимо изменить в соответствии с параметрами Вашей системы. Здесь их не привожу, надеюсь, комментарии внутри файла скрипта достаточно понятные J.

Все, можно проверять скрипт. Запускаем e-mail.vbs и ждем письмо на указанные нами внутри скрипта адреса . С моим шаблоном письмо выглядит так:



Температура -1, означает, что в момент снятия температуры термодатчик второго канала был не подключен J

Осталось выполнить задачу отправки такого письма раз в день в определенное время. Для этого воспользуемся планировщиком Windows «at». Это специальная программа имеющая интрефейс командной строки. Достаточно в командной строке выполнить:

at 21:55 /every:M,T,W,Th,F,Sa,Su D:\Long_Temp\VBS\e-mail.vbs

Чтобы обеспечить запуск нашего скрипта каждый день в 21:55. Ну соответственно подкорректировав путь к файлу скрипта для вашей системы и указав желаемое для вас расписание.

 

По ссылке шаблон для страницы температуры

По ссылке сам скрипт в архиве сам скрипт в архиве

 

Данный скрипт легко перенести на UniPing RS232 или UniPing RS485 с версией ПО 50.4.х, для этого достаточно во всех OID после 1.3.6.1.4.1.25728.50 вместо цифры 8 поставить 2 -для UniPing RS232 и 3 для UniPing Rs485.
Например:
исходный OID текущей температуры датчика 1 устройства NetPing TS v2 -1.3.6.1.4.1.25728.50.8.1005
для Uniping RS232 будет - 1.3.6.1.4.1.25728.50.2.1005
для Uniping RS485 будет - 1.3.6.1.4.1.25728.50.3.1005

Для  UniPing RS485 с версией ПО 50.6.х, Необходимо  указать следующие OID

1.3.6.1.4.1.25728.50.3.5000.21.14  -  термодатчик 1

1.3.6.1.4.1.25728.50.3.5000.22.13 -  термодатчик 2

1.3.6.1.4.1.25728.50.3.5000.23.14 -  термодатчик 3

1.3.6.1.4.1.25728.50.3.5000.24.14 -   термодатчик 4

1.3.6.1.4.1.25728.50.3.5000.25.14 -  термодатчик 5

1.3.6.1.4.1.25728.50.3.5000.26.14 -  термодатчик 6

1.3.6.1.4.1.25728.50.3.5000.27.14 -  термодатчик 7

1.3.6.1.4.1.25728.50.3.5000.28.14 -  термодатчик 8

Для  UniPing RS232 с версией ПО 50.6.х, Необходимо  указать следующие OID

 

1.3.6.1.4.1.25728.50.2.5000.21.14  -  термодатчик 1

1.3.6.1.4.1.25728.50.2.5000.22.13 -  термодатчик 2

1.3.6.1.4.1.25728.50.2.5000.23.14 -  термодатчик 3

1.3.6.1.4.1.25728.50.2.5000.24.14 -   термодатчик 4

1.3.6.1.4.1.25728.50.2.5000.25.14 -  термодатчик 5

1.3.6.1.4.1.25728.50.2.5000.26.14 -  термодатчик 6

1.3.6.1.4.1.25728.50.2.5000.27.14 -  термодатчик 7

1.3.6.1.4.1.25728.50.2.5000.28.14 -  термодатчик 8