snmp traps что это
SNMP traps и с чем их едят
В этой статье я хочу осветить вопрос работы с SNMP traps. В то время, когда я начинал разбираться с этой темой, при неплохом знании принципов работы протокола SNMP, я был удивительным образом перепутан результатами чтения документации по этому вопросу, всеми этими OID, которые нужно писать как параметры для команды snmptrap. Поиски внятной информации в интернет не дали результатов. Создавалось впечатление, что я один такой непонятливый среди тех, кто считает это элементарным.
В своей работе я использую пакет NetSNMP с открытым исходным кодом и поэтому, примеры относятся именно к этому пакету.
Я не буду останавливаться на описании дерева SNMP (считаю это действительно банальным), а начнем с пресловутого OID. OID это просто. OID, это Object ID, уникальный идентификатор объекта в дереве значений SNMP. OID может записываться в нескольких видах.
Единственным ограничением использования MIB является то, что при использовании программного обеспечения SNMP от разных производителей и различного железа необходимо единое „понимание“ этих волшебных трансформаций. Поэтому на сайтах производителей управляемого оборудования есть файлы описания MIB для конкретных устройств.
С представлением OID разобрались. Теперь про трапы. Сразу оговорюсь, что все нижесказанное относится к версии 2с SNMP.
В протоколе SNMP есть трапы (traps) и есть информы (informs). Отличаются они тем, что трапы посылаются на станцию менеджера без гарантии их доставки, а информы гарантированно доставляются. Ну, или не доставляться, но тогда отправитель об этом узнает. Для простоты, я и то и другое называю трапом. Так нам будет прощеi.
Какая информация посылается менеджеру в трапе (информе)? А посылаются следующие данные:
Теперь, наше повествование разделяется на направления. Первое направление: „Как нам послать SNMP trap ручками из командной строки„. Второе направлении „Как нам заставить агента SNMP посылать трапы когда что то идет не по плану“.
Посылаем руками
Однако, иногда хочется странного, например послать трап о том, что инопланетяне тырят SCSI винчестеры прямо из корзинки или о том, что серверную заливает водой, о чем вас предупредительно оповестил самодельный датчик, которые весит на COM порту. Понятное дело, в стандартных MIB о таких странных ситуациях не упоминается. Поэтому, можно использовать произвольную последовательность цифирек для обозначения нового в мире события. Например:
И что характерно, это будет работать. В логе появится такая бредятинка:
В то же время, крутые администраторы должны все делать правильно, самодокументируемо, в соответствии с требованиями IETF и других компетентных организаций. Поэтому, будем описывать наши новые OID в своем собственном MIB файле.
Здесь определяется enterptise с номером 10050 и ему даеся имя aliensattack. После этого вводятся две ветки: одна для трапов (начало и конец атаки), другая для OID дополнительной информации (атака через двери или это вовсе не инопланетяне).
Скажу честно, в формате MIB файла я понимаю мало. Поэтому внимательно изучив MIB файлы из стандартной поставки net-snmp, я сделал этот пример который работает, но кристальной ясности во всех его ключевых словах я не достиг.
Дальше! Укладываем этот файл с именем ALLIENSATTACK-MIB.txt в какой нибудь каталог поближе и запоминаем, что с этого момента все программы имеющие отношения к SNMP (snmpd, snmptrapd, snmpinform) мы запускаем с поддержкой этого MIB. Тоесть, к командной строке добавляем параметры
Знак „+“ перед именем MIB (не файла с MIB, а именно имя MIB), значит, что MIB будет добавлен к загружаемым по умолчанию.
Посылаем автоматически
Способ #2. Пишем скрипт, который проверяет системные параметры и посылает трап на станцию менеджера. Пишется на shell, perl или на любом известном языке.
Способ #1. Наиболее интересный. В 5-й версии net-snmp появиласть поддержка модуля DISMAN-EVENT-MIB котрый умеет отсылать сообщения при некоторых условиях. Но это уже другая история.
Протокол управления SNMP
Для регулирования устройств в IP-сетях нередко применяется SNMP. Эта аббревиатура расшифровывается как Simple Network Management Protocol. По сути, это стандартизированный интернет-протокол, который помогает отследить используемые сетевые устройства: маршрутизаторы, адаптеры, коммутаторы и т. д. Основное условие, чтобы оборудование было включено через IP и использовали определенное программное обеспечение.
Разберемся, как работает протокол SNMP, из каких компонентов он состоит и какие версии используются.
Подробнее о протоколе
SNMP является протоколом прикладного уровня, который необходим для обмена информацией между несколькими сетевыми машинами. Это не просто приложение, а свод используемых правил, который является частью модели TCP/IP. Протокол контролируется и управляется IETF.
При помощи протокола сисадмин может выполнять мониторинг сети, чтобы оценить ее производительность и изменить конфигурацию устройств. Поэтому SNMP стал довольно распространен и его применяют в сетях любого типа и объема. Причем чем больше сеть, тем лучше удается использовать функционал приложения. Он позволяет не только просматривать, но и управлять сетью через единый интерфейс.
Основное преимущество протокола – наличие интерфейса с автоматическими оповещениями и другими командами. Это избавляет от необходимости ручного ввода всех команд.
Архитектура
Разобравшись в вопросе, что такое SNMP, можно перейти к рассмотрению его архитектуры. Она состоит из следующих компонентов:
1. Сетевая станция управления.
Подробнее поговорим о каждом элементе. Начать стоит с сетевой станции управления, или Network Management Station. Именно NMS позволяет отслеживать используемые устройства, анализировать сведения, собранные мастер-агентами, определять производительность системы и создавать графические отчеты на основе полученных данных. Встроенный менеджер используется для прямой связи с агентами протокола.
2. Агенты.
Эта группа компонентов включает в себя ряд подгрупп. Начнем с мастер-агентов, которые служат для связи сетевых менеджеров и субагентов. Они анализируют поступающие запросы и отсылают их субагентам, затем получают информацию, создают ответ и отсылают его менеджеру.
Если запрос некорректен, неверно сформулирован или информация закрыта для доступа, то мастер-агент отправляет уведомление об этом.
Другой вид агента – это субагент. Он представляет собой специальное программное обеспечение, которое поставляется вендором вместе с сетевой машиной. Субагент получает запросы от мастер-агента и потом обратно пересылает ему собранную информацию. Соответствующий субагент используется вместе с отдельным управляемым компонентом.
3. Управляемые компоненты.
Представляют собой подключенные к сети компьютеры и устройства или специальное ПО, имеющее встроенный субагент. К числу устройств могут относиться коммутаторы, маршрутизаторы и серверы, а также современные гаджеты. Что касается ПО с субагентами, то к нему относят антивирусные программы, серверы резервного копирования и т. д.
Также в качестве компонентов протокола SNMP стоит выделить MIB и OID. Первый термин обозначает базу управляющей информации, в ней содержатся сведения об оборудовании. Каждая сетевая машина имеет свою таблицу с MIB-данными, в ней – данные о состоянии картриджа (у принтеров), о поступающем трафике (у коммутатора) и т. д.
OID представляет собой идентификатор объекта. MIB снабжается своим уникальным ID, который и позволяет идентифицировать устройство. OID существует в числовом виде, по сути – это числовой аналог существующего пути к файлу.
Принципы работы
Теперь подробнее поговорим о назначении и принципе действия протокола SNMP. Изначально протокол разрабатывался как инструмент для управления глобальной сетью. Однако благодаря гибкой структуре удалось приспособить SNMP для всех устройств сети и осуществлять контроль, наблюдение и настройки при помощи единой консоли. Все это послужило распространению протокола и его активному применению.
Работа SNMP строится на обмене информацией между менеджерами и агентами. Этот процесс осуществляется посредством протокола UDP. Реже используется TCP или протокол MAC-уровня.
В SNMP используется семь различных вариантов PDU, которые отвечают за получение данных с устройства, изменение или присваивание новых сведений, уведомления об ошибках, извлечение данных и т. д.
PDU состоит из конечного набора полей, в которых прописывается нужная информация. В частности, это поля:
Функционирование SNMP подразумевает использование специальных сетевых портов. По умолчанию – это UDP-порты 161 и 162. Запросы поступают на порт SNMP 161. Далее с него отправляется ответ менеджеру. При отправке запроса он идентифицируется при помощи ID, что в дальнейшем позволяет связать запрос менеджера с поступившим ответом.
Порт 162 отвечает за прием ловушек агента. При использовании DLTS и TLS агент использует для пересылки сообщений порт 10162, а менеджер – 10161.
Мы подошли еще к одному важному элементу, который необходим для функционирования SNMP. Речь о ловушках, которые представляют собой способ коммуникации. Агент использует ловушки (Trap) в тех случаях, когда нужно сообщить менеджеру о каком-либо событии. Делается это по той причине, что менеджеры нередко отвечают за определенное количество устройств и несколько управляемых компонентов, поэтому не всегда могут вовремя отследить возникновение ошибки.
При получении ловушки, то есть уведомления, менеджер может выбрать нужное действие. Уведомления, которые присылает ловушка, обозначаются цифрами от 0 до 6. Код ошибки указывает на группу, к которой относится неполадка.
В SNMP используется два вида ловушек – помимо Trap, это еще и Inform. Разница в том, что второй тип ловушек предполагает подтверждение менеджера о ее получении.
Особенности применения
SNMP позволяет сисадмину работать с различными приложениями и облачными сервисами. Протокол имеет функционал для выполнения следующих операций:
Существующие версии
Разработано три версии протокола, которые получили соответствующие названия – SNMPv1, SNMPv2c и SNMPv3. Все они активно используются даже сегодня, однако самой распространенной остается вторая версия. Расскажем о каждой разновидности подробнее:
Вопросы безопасности
Протокол SNMP создавался в те времена, когда угроза взлома и несанкционированного доступа к данным была практически нулевой. Поэтому разработчики не уделяли этой проблеме особого внимания. Версия SNMPv1 практические не имеет защиты от взлома, чем могут воспользоваться злоумышленники.
Вторая версия разрабатывалась с учетом анализа предыдущих недочетов и ошибок протокола. Эта версия SNMP стала более безопасной, однако на деле ее сложно назвать самой стабильной и надежной.
Практически все ошибки безопасности удалось решить только в третьей версии. Для обеспечения безопасности в протоколе применяется несколько моделей: Community-based, Party-based и User-based Security.
Выводы
Сегодня протокол SNMP является наиболее простым и эффективным методом сбора и передачи данными между сетевыми устройствами, мониторинга и управления их работой. Особенно актуальным применение такого протокола является при совмещении устройств, функционирующих на разном ПО и выпущенных разными вендорами. SNMP прост в работе, достаточно надежный, а самое главное – полностью бесплатный для использования. Этим не может похвастать практически ни один существующий набор правил.
Остались вопросы по работе SNMP? Специалисты Xelent обязательно ответят на них – оставьте заявку на сайте или свяжитесь с нами по указанным телефонам.
Zabbix Documentation 4.0
Sidebar
Table of Contents
3 SNMP трапы
Обзор
Получение SNMP трапов является полной противоположностью запросам к SNMP устройствам.
В этом случае информация отправляется с SNMP устройства и собирается или «ловится» Zabbix’ом.
Обычно трапы отправляются при наступлении некоторых условий и агент подключается на 162 порт сервера (в отличии от 161 порта на стороне агента, который используется для запросов). Использование трапов может помочь обнаружить некоторые кратковременные проблемы, которые происходят между интервалами опроса и могут быть пропущены при запросах данных.
Последовательность действий при получении трапа:
1 Настройка SNMP трапов
Настройка следующих полей в веб-интерфейсе является специфичной для этого типа элементов данных:
В Настройка → Узлы сети, в поле Интерфейсы узла сети добавьте SNMP интерфейс с корректными IP или DNS адресами. Адрес из каждого полученного трапа сравнивается с IP и DNS адресами всех SNMP интерфейсов для поиска соответствующих узлов сети.
В поле Ключ используйте один из ключей SNMP трапов:
Многострочное совпадение по регулярному выражению в данный момент времени не поддерживается.
Укажите Тип информации равным ‘Журнал (лог)’ для обработки штампов времени. Обратите внимание, что другие форматы, такие как ‘Числовой’ также приемлемы, но для этого может потребоваться пользовательский обработчик трапов.
Для того чтобы мониторинг SNMP трапов работал, он должен быть сначала корректно настроен.
2 Настройка мониторинга SNMP трапов
Настройка Zabbix сервера/прокси
Для чтения трапов, Zabbix сервер или прокси должны быть настроены на запуск процесса SNMP траппера и должны знать абсолютный путь к файлу с трапами, который заполняется при помощи SNMPTT или получателя трапов Perl. Чтобы это сделать, измените файл конфигурации (zabbix_server.conf или zabbix_proxy.conf):
Если используется systemd параметр PrivateTmp, этот файл вряд ли заработает в /tmp.
Настройка SNMPTT
Для начала, snmptrapd необходимо настроить на использование SNMPTT.
Для лучшей производительности, SNMPTT необходимо сконфигурировать демоном с использованием snmptthandler-embedded для передачи ему трапов. Смотрите инструкции по настройке SNMPTT на его сайте:
http://snmptt.sourceforge.net/docs/snmptt.shtml
При конфигурировании SNMPTT на получение трапов, настройте SNMPTT на журналирование этих трапов:
Теперь отформатируйте трапы, чтобы они распознавались Zabbix’ом (измените snmptt.conf):
Настройка получателя Perl трапов
Получатель трапов Perl (ищите в misc/snmptrap/zabbix_trap_receiver.pl) можно использовать для передачи трапов в Zabbix сервер напрямую с snmptrapd. Для его настройки:
Если имя скрипта не заключено в кавычки, snmptrapd откажется запускаться с сообщениями наподобие этих:
Формат SNMP трапа
Все пользовательские получатели трапов perl и конфигурация SNMPTT трапов должны форматировать трап следующим образом:
[штамп времени] [трап, часть 1] ZBXTRAP [адрес] [трап, часть 2], где
Обратите внимание, что «ZBXTRAP» и «[адрес]» при обработке отрезаются из сообщения. Если трап форматируется как-то иначе, Zabbix может разобрать такие трапы неожиданным образом.
3 Требования к системе
Поддержка больших файлов
У Zabbix имеется «Поддержка больших файлов» для файлов SNMP трапов. Максимальный размер файла, который Zabbix может прочитать, это 2^63 (8 Эбайт). Обратите внимание, что файловая система может иметь меньшее ограничение на максимальный размер файлов.
Ротация журнала
Файловая система
Из-за реализации файла с трапами, Zabbix’у требуется файловая система с поддержкой inode для того чтобы различать файлы (эта информация берется из вызова stat()).
4 Пример установки
Этот пример использует snmptrapd + SNMPTT для передачи трапов Zabbix серверу. Установка:
В этом примере используется SNMPTT как traphandle. Для лучшей производительности на продуктивных системах используйте встроенный Perl для передачи трапов от snmptrapd к SNMPTT или напрямую Zabbix’у.
Понимание SNMP
Howard
Купить FS коммутаторы для компаний
SNMP (Simple Network Management Protocol) представляет собой стандартный интернет-протокол для управления устройствами в IP-сетях на основе архитектур TCP/UDP, который позволяет отслеживать управляемые сетевые устройства, включая маршрутизаторы, сетевые коммутаторы, серверы, принтеры и другие устройства, которые включены через IP через единую систему управления/программное обеспечение.
Как работает SNMP?
Чтобы понять принципы работы SNMP, важно сначала узнать модель управления SNMP.
Компоненты SNMP
В модели управления протокола SNMP всегда присутствуют три компонента:
Базы данных MIB представляют собой набор вопросов, которые SNMP-менеджер может задать агенту. Агент собирает эти данные локально и сохраняет их, как определено в MIB. Таким образом, диспетчер SNMP должен знать эти стандартные и частные вопросы для каждого типа агента;
SNMP-агент (то, что в других сетевых системах называется сервером) — это часть программного обеспечения, которое поставляется вместе с сетевым устройством (маршрутизатором, коммутатором, сервером, Wi-Fi и т. д.), Которое при включении и настройке выполняет всю тяжелую работу для Менеджера путем компиляции и хранения всех данных из своего данное устройство в базу данных (MIB);
MIB относится к базе данных, которая содержит переменные, поддерживаемые управляемыми устройствами (информация может запрашиваться и устанавливаться агентом).
Менеджер (NMS) — это просто часть программного обеспечения, которое установлено на компьютере (которое при объединении называется Network Management System), которое проверяет устройства в вашей сети, как часто вы указываете информацию.
SNMP принципы работы
Здесь используется SNMPv2c для объяснения принципов работы SNMP. Он выполняет следующие операции для извлечения данных, изменения переменных объекта SNMP и отправки уведомлений.
Get | GetNext | GetBulk | Set | Response | Trap | Inform |
---|---|---|---|---|---|---|
Это запрос, отправленный NMS на управляемое устройство. И это выполняется для получения одного или нескольких значений из MIB. | Это похоже на GET. Но обычно он получает значение следующего OID (Идентификатор объекта) в дереве MIB. | Он используется для получения массы данных из большой таблицы MIB. | Он выполняется NMS для изменения значения управляемого устройства. | Он выполняется NMS для изменения значения управляемого устройства. Он выполняется агентом в ответ на операции GetRequest, GetNextRequest, GetBulkRequest и SetRequest. | Эта операция инициируется агентом. Он используется для уведомления NMS о ошибке или событии, которое происходит на управляемом устройстве. | Эта операция инициируется агентом. Это похоже на TRAP, но после того, как агент отправит запрос на информирование, NMS должна отправить пакет InformResponse в качестве ответа агенту. |
Обратите внимание, что SNMPv1 не поддерживает операции GetBulk и Inform.
На рисунке 2 показан процесс Get/GetNext/GetBulk/Set приложения SNMPv2c.
Когда NMS отправляет агенту пакет запроса Get/GetNext/GetBulk/Set, агент сначала аутентифицирует версию SNMP и имя сообщества. Затем, когда аутентификация успешна, агент отправляет соответствующее значение в NMS как пакет ответа. Если агент не может получить соответствующее значение, он возвращает сообщение об ошибке в NMS. Обратите внимание, что операция GetBulk эквивалентна последовательным операциям GetNext. Пользователь может установить количество операций GetNext, включенных в операцию GetBulk, без повторного выполнения операции GetNext.
На рисунке 3 показан процесс Trap/Inform приложения SNMPv2c.
Общие ЧАВО и решения
1. Как настроить SNMP?
SNMP использует центральный компьютер с программным обеспечением SNMP для управления сетевыми коммутаторами. Сегодня большинство сетевых коммутаторов на рынке, будь то гигабитные коммутаторы или коммутаторы 40G, поддерживают SNMP. SNMP предоставляет унифицированный и простой способ управления этими коммутаторами. Взяв в качестве примера конфигурацию SNMPv2c, процесс включает:
A) Настроить IP-адреса на компьютерах и управляемых коммутаторах.
C) Настроить права доступа, чтобы компьютеры могли управлять назначенными коммутаторами..
D) Проверить результат конфигурации.
Для получения более подробной информации о конфигурации SNMP, посетите Конфигурация SNMP на коммутаторах серии FS 3900, пожалуйста..
2. NMS не удалось получить Trap.
В конфигурации по умолчанию не все Trap включены. В системном представлении пользователи могут:
Zabbix Documentation 5.4
Sidebar
Table of Contents
3 SNMP трапы
Обзор
Получение SNMP трапов является полной противоположностью запросам к SNMP устройствам.
В этом случае информация отправляется с SNMP устройства и собирается или «ловится» Zabbix’ом.
Обычно трапы отправляются при наступлении некоторых условий и агент подключается на 162 порт сервера (в отличии от 161 порта на стороне агента, который используется для запросов). Использование трапов может помочь обнаружить некоторые кратковременные проблемы, которые происходят между интервалами опроса и могут быть пропущены при запросах данных.
Последовательность действий при получении трапа:
1 Настройка SNMP трапов
Настройка следующих полей в веб-интерфейсе является специфичной для этого типа элементов данных:
В Настройка → Узлы сети, в поле Интерфейсы узла сети добавьте SNMP интерфейс с корректными IP или DNS адресами. Адрес из каждого полученного трапа сравнивается с IP и DNS адресами всех SNMP интерфейсов для поиска соответствующих узлов сети.
В поле Ключ используйте один из ключей SNMP трапов:
Многострочное совпадение по регулярному выражению в данный момент времени не поддерживается.
Укажите Тип информации равным ‘Журнал (лог)’ для обработки штампов времени. Обратите внимание, что другие форматы, такие как ‘Числовой’ также приемлемы, но для этого может потребоваться пользовательский обработчик трапов.
Для того чтобы мониторинг SNMP трапов работал, он должен быть сначала корректно настроен.
2 Настройка мониторинга SNMP трапов
Настройка Zabbix сервера/прокси
Для чтения трапов, Zabbix сервер или прокси должны быть настроены на запуск процесса SNMP траппера и должны знать абсолютный путь к файлу с трапами, который заполняется при помощи SNMPTT или получателя трапов Perl. Чтобы это сделать, измените файл конфигурации (zabbix_server.conf или zabbix_proxy.conf):
Если используется systemd параметр PrivateTmp, этот файл вряд ли заработает в /tmp.
Настройка SNMPTT
Для начала, snmptrapd необходимо настроить на использование SNMPTT.
Для лучшей производительности, SNMPTT необходимо сконфигурировать демоном с использованием snmptthandler-embedded для передачи ему трапов. Смотрите инструкции по настройке SNMPTT на его сайте:
http://snmptt.sourceforge.net/docs/snmptt.shtml
При конфигурировании SNMPTT на получение трапов, настройте SNMPTT на журналирование этих трапов:
Теперь отформатируйте трапы, чтобы они распознавались Zabbix’ом (измените snmptt.conf):
Настройка получателя Perl трапов
Получатель трапов Perl (ищите в misc/snmptrap/zabbix_trap_receiver.pl) можно использовать для передачи трапов в Zabbix сервер напрямую с snmptrapd. Для его настройки:
Если имя скрипта не заключено в кавычки, snmptrapd откажется запускаться с сообщениями наподобие этих:
Формат SNMP трапа
Все пользовательские получатели трапов perl и конфигурация SNMPTT трапов должны форматировать трап следующим образом:
[штамп времени] [трап, часть 1] ZBXTRAP [адрес] [трап, часть 2], где
Обратите внимание, что «ZBXTRAP» и «[адрес]» при обработке отрезаются из сообщения. Если трап форматируется как-то иначе, Zabbix может разобрать такие трапы неожиданным образом.
3 Требования к системе
Поддержка больших файлов
У Zabbix имеется «Поддержка больших файлов» для файлов SNMP трапов. Максимальный размер файла, который Zabbix может прочитать, это 2^63 (8 Эбайт). Обратите внимание, что файловая система может иметь меньшее ограничение на максимальный размер файлов.
Ротация журнала
Файловая система
Из-за реализации файла с трапами, Zabbix’у требуется файловая система с поддержкой inode для того чтобы различать файлы (эта информация берется из вызова stat()).
4 Пример установки
Этот пример использует snmptrapd + SNMPTT для передачи трапов Zabbix серверу. Установка:
В этом примере используется SNMPTT как traphandle. Для лучшей производительности на продуктивных системах используйте встроенный Perl для передачи трапов от snmptrapd к SNMPTT или напрямую Zabbix’у.