Приемник SNMP-ловушки в качестве собственного процессора в Apache Nifi - PullRequest
1 голос
/ 10 марта 2019

Цель: - Искать вариант использования механизма получения SNMP-ловушек в качестве настраиваемого процессора в Apache Nifi.

Посмотрел ссылки на то, как создать настраиваемый процессор в Nifi ( Apache docs и видео на YouTube ), исходный код Nifi GetSNMP (включая AbstractSNMPProcessor), ListenSysLog, GetFile и т. д.

Получили простой ( java-код ) приемник SNMPTrap, использующийБиблиотека SNMP4J и может прослушивать определенный адрес с портом на основе UDP или TCP.И тогда в случае Trap (может быть смоделирован простым Java-кодом из библиотеки SNMP4J) можно распечатать детали PDU.

Теперь, когда пытаюсь написать этот код в Nifi как пользовательский процессор, не уверен, куда поместить моймеханизм прослушивания и затем обработка фактической части PDUВид поражен здесь.

Подробнее: -

Процессор GetSNMP говорит о конкретном OID и, используя его, у нас есть варианты стратегий GET или Walk для получения информации.Здесь (для моей цели) ищем вариант, где сервер Nifi работает и хочет, чтобы ловушки SNMP выбирались из конкретной системы, где работает Nifi.И для моей цели - не получить контекст для расширения кода GetSNMP.

В ListenSyslogProcessor был механизм блокировки очереди.И из этого я не мог извлечь для прослушивания по IP-адресу для ловушек и как именно использовать ProcessContext, параметр ProcessSession метода onTrigger для пользовательского процессора Nifi.

Любые входные данные приветствуются ...

1 Ответ

0 голосов
/ 19 марта 2019

Одно из возможных решений: -

Не удалось создать пользовательский процессор в Apache Nifi для получения прерываний SNMP. Что-то еще было возможно, я проиллюстрирую это здесь. Это может быть полезным для других.

  1. Без изменений в Java-коде
  2. Использовал процессор ExecuteProcess от Nifi для запуска вышеуказанного Java-кода.
  3. В случае успеха результат передается другим компонентам в потоке Nifi.

На самом деле пытался перехватить SNMP-ловушки, используя команды linux, такие как net-snmp, snmptrapd. Эти параметры фактически не перехватывали ловушки SNMP, проверялись отправителем ловушек кода Java, а затем ловушками, генерируемыми с помощью команд из сетевых источников.

Если у вас есть лучшие идеи, пожалуйста, поделитесь.

...