Feature #13
openSNMP Trap плагин
0%
Description
Нужен плагин для работы Stargazer с snmp trap.
Задача.
---
Основная задача плагина — получать со свитчей трапы, о мак адресах, которые изучил свитч, и писать о них в БД. В БД нужно писать обо всех мак адресах, которые приходят со свитчей. Конкретно в базе должна быть информация о дате первого появления мак адреса в сети, о дате последнего появления мак адреса в сети, сам мак адрес, свитч, с которого пришла трапа, порт свитча.
В случае обнаружения мак адреса абонента в порту или в свитче, отличном от порта или свитча, который соотнесен с этим абонентом, нужно автоматически менять порт или свитч для этого абонента.
Конфиг.
---
В плагине должны быть настраиваемыми параметры:
— порт, на котором слушать трапы (по умолчанию 162 udp и tcp). В некоторых свитчах порт, куда будут отсылатся трапы, конфигурируется, и на сервере могут стоят несколько обработчиков трап.
— oidы, по которому будут фильтроваться какие трапы принимать. Именно oid'ы, т.к. пока задача одна, а там все может быть :) Ну и для поддержки других свитчей. И в серии DES-3200 для каждой модели своя трапа.
— лог файл, путь к файлу, куда будут писаться логи, либо делать через сислог. Можно также, чтобы параметр принимал два значения: "syslog" с указанием facility или "path" с указанием пути.
— snmp version, версия snmp с которой будет работать плагин. Пока что хватит snmpv1, snmpv2. Сам еще не разбирался, как версии/авторизации влияют на трапы.
— список ip свитчей, с которыми будет работать плагин. С некоторых свитчей информация будет не нужна, некоторые свитчи тестовые, но конфиг то у всех один, так что трапы будут приходить. Поддержка подсетей в списках айпи.
Лог.
---
В лог нужно писать о таких событиях:
— обо всех событиях с мак адресами получаемых плагином на порт, это будет настоящий спам, поэтому лучше сделать уровни для логов. И этот режим можно использовать для отладки. Уровень: debug.
— об изменениях мак адресов, когда какой-то мак пропал с порта. Фактически это и есть момент перекращения использования сервиса. Уровень: notice.
— о событиях, когда абоненту был заменен свитч или порт. Уровень: warn.
Записи в логах должны содержать информацию о дате, свитче, порту, действии с мак адресом (появился/пропал), и о самом мак адресе, привереденном к маске (ff:ff:ff:ff:ff:ff).
Пример трапы.
---
2011-06-21 22:04:53 172.16.36.31 [UDP: [172.16.36.31]:161->[10.21.5.243]]:
iso.3.6.1.2.1.1.3.0 = 0:1:46:35.27 iso.3.6.1.6.3.1.1.4.1.0 = iso.3.6.1.4.1.171.11.113.1.1.2.20.0.2 iso.3.6.1.4.1.171.11.113.1.1.2.20.2.1.0 = "01 00 1D 60 1C E7 E8 00 0A 00 "
.1.3.6.1.2.1.1.3 — The time (in hundredths of a second) since the network management portion of the system was last re-initialized. — Время с последней загрузки свитча.
.1.3.6.1.6.3.1.1.4.1 — это собственн и есть oid трапы, по нему и можно фильтровать.
OIDы для DES-3200:
3200-10 — .1.3.6.1.4.1.171.11.113.1.1.2.20.0.2
3200-18 — .1.3.6.1.4.1.171.11.113.1.2.2.20.0.2
3200-28 — .1.3.6.1.4.1.171.11.113.1.3.2.20.0.2
3200-28F — .1.3.6.1.4.1.171.11.113.1.4.2.20.0.2
3200-26 — .1.3.6.1.4.1.171.11.113.1.5.2.20.0.2
.1.3.6.1.4.1.171.11.113.1.1.2.20.2.1 — а вот это собственно сама информация из трапы, для ее расшифровки можно использовать информацию из http://www.dlink.ru/ru/faq/62/193.html.
Пример:
"01 00 1D 60 1C E7 E8 00 0A 00 " — добавился мак адрес 00:1d:60:1c:e7:e8 на устройство 0 (наверное для стекирования применяется) порт 10.