В этой статье будет показан пример использования утилиты Trap Receiver для получения и обработки SNMP TRAP сообщений от устройств NetPing.
Строить систему обработки SNMP TRAP сообщений будем на ОС Windows XP.
Установка утилиты Trap Receiver
С сайта http://www.trapreceiver.com/ загружаем крайнюю версию утилиты. На данный момент – это 7.60. Распаковываем архив и запускаем setup.exe. Утилита будет установлена в каталог c:\Program Files\TRAP Receiver
Настройка утилиты Trap Receiver
Trap Receiver состоит из двух основных компонентов: Пользовательского интерфейса и сервиса, обрабатывающего SNMP TRAP сообщения. Для начала нужно проделать отверстие в Windows Firewall через которое snmp TRAP пакеты будут попадать в сервис Trap Receiver. Для этого открываем Start -> Control Panel -> Windows Firewall. В появившемся окне на вкладке Exceptions нажимаем на кнопку Add Program и добавляем c:\Program Files\TRAP Receiver\trThread.exe.
Следующий шаг – добавление MIB файлов вашего устройства NetPing в программу Trap Receiver. Этот шаг выполнять не обязательно, но желательно. С помощью MIB файлов от вашего устройства TRAP Receiver сможет конвертировать числовые OID в текстовые описания. MIB файлы доступны для скачивания на странице устройства на сайте производителя — https://netping.ru. В данном примере используется устройство UniPing Server Solution, в программу был импортирован MIB файл DKSF_50.11.11_MB.mib.
Для загрузки MIB файлов откройте пользовательский интерфейс Trap Receiver (Trap Receiver GUI), используя ярлык на рабочем столе или в меню Start. В появившемся окне нажмите на кнопку Configure. В окне настроек переходим на вкладку MIBs, устанавливаем на этой вкладке галку Translate OIDs, нажимаем Load MIB и указываем на наш MIB файл. Если операция прошла успешно, утилита Trap Receiver покажет сообщение о том, что она импортировала файл.
Теперь всё готово к работе. Настраиваем устройство NetPing на отправку SNMP TRAP сообщений на адрес сервера с установленным TRAP Receiver. Для этого указываем IP адрес нашего сервера в поле «Адрес для посылки TRAP сообщений» на странице Настройки. Включаем генерацию тестовых трапов, для этих целей хорошо подходят температурные датчики. Переходим на страницу Термодатчики, берём канал «Датчик 1» (даже если к нему не подключен датчик), заполняем поле Памятка, в поле «Верхн. граница нормы, °C» указываем любое число, например, 61. В поле «Нижн. граница нормы, °C» указываем любое число, превышающее показания датчика, например 11 (если датчик не подключен его показания — 0). В поле «Периодическая посылка» выставляем значение 60. Нажимаем на кнопку «Применить изменения». Теперь NetPing присылает нам один раз в минуту SNMP TRAP сообщение.
Обработка SNMP TRAP сообщений. Теория
Теперь, когда мы умеем принимать TRAP сообщения, научимся их обрабатывать, а именно различать SNMP TRAP сообщения по типам и выполнять различные действия. Утилита TRAP Receiver позволяет различать SNMP TRAP по следующим полям:
- SNMP Community;
- Generic TRAP Type;
- Specific TRAP Type;
- Адрес отправителя SNMP TRAP;
- OID;
- OID переменной (VarBind);
- Значение переменной (VarBind).
Устройства NetPing могут посылать различные SNMP TRAP. Для определения их типа удобно использовать поле OID. Вот список OID основных SNMP TRAP сообщений устройств NetPing:
- 1.3.6.1.4.1.25728.8300.2 – TRAP сообщения от «датчика тока»;
- 1.3.6.1.4.1.25728.8400.9 – TRAP сообщения от датчика влажности;
- 1.3.6.1.4.1.25728.8800.2 – TRAP сообщения от температурных датчиков;
- 1.3.6.1.4.1.25728.8900.2 – TRAP сообщения от IO линий.
TRAP Receiver позволяет выполнять следующие действия при получении TRAP сообщений:
- Послать TRAP сообщение;
- Запустить приложение с аргументами командной строки;
- Послать e-mail;
- Отфильтровать TRAP;
- Подать звуковой сигнал (проиграть wav файл).
Обработка SNMP TRAP сообщений. Практика
Получив теоретические представления о возможностях утилиты TRAP Receiver, переходим к практической части – примерам применения.
Пример фильтрации TRAP сообщений
Как видно на рисунке 1, утилита Trap Receiver получает TRAP сообщения от температурных датчиков с двух устройств: 10.60.0.5 и 10.60.0.7. Необходимо отфильтровать сообщения, приходящие от устройства 10.60.0.7, при этом другие типы TRAP с этого устройства должны приниматься.
Выполняем следующие действия для получения необходимого результата. Открываем Trap Receiver GUI, нажимаем Configure. На вкладке Actions нажимаем кнопку Add и в появившемся окне заполняем поля в соответствии с рисунком 2.
Нажимаем на кнопку Add, и затем на кнопку Apply конфигурационного окна. Мы создали правило, которое отбрасывает все SNMP TRAP сообщения от устройства 10.60.0.7, в соответствии с условием (Watch) – Sender IP. Следующим шагом уточним это правило, чтобы оно действовало только на TRAP сообщения от температурных датчиков. Для этого в конфигурационном окне на вкладке Actions нажимаем на кнопку Add ещё раз и заполняем поля в соответствии с рисунком 3.
Обратите внимание на установленную галку «No Actions – Part of AND Group». Это означает, что действие будет выполнено только тогда, когда верны условия всех правил с одинаковыми именами. В нашем случае оба правила имеют имя filter_termo. Одно из правил должно иметь действие, у остальных должна стоять галка » No Actions – Part of AND Group «. Законченная конфигурация этого примера показана на рисунке 4.
Пример отправки e-mail
Рассмотрим пример отправки email уведомления при получении TRAP сообщения от температурного датчика. После применения фильтра из предыдущего примера Trap Receiver получает температурные TRAP сообщения только от 10.60.0.5. Будем отправлять письма при получении их.
Выполняем следующие действия для получения необходимого результата. Открываем Trap Receiver GUI, нажимаем Configure. На вкладке Email нажимаем кнопку Add и в появившемся окне заполняем поля в соответствии с рисунком 5. В данном примере используется сервис gmail для отправки электронной почты, вам потребуется аккаунт gmail.
Поле Subject заполнено следующим образом:
Получен termo TRAP от %SENDERIP% %VBDATA1% (%VBDATA6%) %VBDATA2%.
Поле Message заполнено следующим образом:
Получен termo TRAP от %SENDERIP% датчик %VBDATA1% (%VBDATA6%) температура %VBDATA2%.
Между двумя символами % указываются специальные переменные. TRAP Receiver заменит их данными, полученными из TRAP сообщения, перед отправкой письма. Полный список переменных и их описание можно найти на странице документации Trap Receiver.
В результате при получении температурного TRAP нам придёт e-mail со следующим заголовком и телом:
Subject: Получен termo TRAP от 10.60.0.5 1 (term1) 40
Message: Получен termo TRAP от 10.60.0.5 датчик 1 (term1) температура 40
Для завершения настройки добавим действие на вкладке Actions конфигурационного окна. Действие настраивается в соответствии с рисунком 6.
Проверьте свой почтовый ящик – там уже должны быть письма.
Пример проигрывания звукового файла
Проигрывание звуковых файлов при наступлении какого-либо события – это важная вещь. Но мы не будем тут подробно останавливаться на этом, так как настраивается этот функционал аналогично двум, показанным ранее, примерам. Вы добавляете действие на вкладке Actions, указываете условие (Watch) и ставите галку Sound. На этом всё.
Ссылки
Страница Trap Receiver: http://www.trapreceiver.com