Зная, с какой машины процессор ListenHTTP получает запрос - PullRequest
0 голосов
/ 08 июля 2019

У меня есть конвейер nifi, который выглядит следующим образом:

(LisitenHTTP)-[success]->(EvaluateJsonPath)-[failure,unmatched]->(ExecuteStreamCommand)       
                                |  
                            [matched]
                                |
                                V
                        rest of the pipeline

Итак, в основном ListenHTTP получает запрос на обработку (как json) на один из портов.Он передает его на EvaluateJsonPath, который решает, как обрабатывать.Однако, если ему не удается проанализировать входной json, он отправляет файл потока на ExecuteStreamCommand, который записывает уведомления об ошибках на приборную панель.

В последнее время мы получали большое количество уведомлений о сбоях на панелях мониторинга, хотя вся система работает нормально.Так что я угадал, что происходит не так.Я проверил происхождение данных ExecuteStreamCommand и понял, что мы получаем много недействительных запросов, большинство из которых были даже не в формате json.Поэтому я пытался выяснить, откуда мы можем знать, откуда мы получаем эти фиктивные запросы.Есть ли способ узнать, откуда мы получали эти запросы, может быть IP-адрес компьютера, отправляющего эти запросы?Есть ли способ включить детальную регистрацию на процессоре ListenHTTP, чтобы мы могли узнать IP / имя хоста компьютера, регистрирующего такие запросы?Также кто-нибудь может придумать какой-нибудь другой способ исправить это?

1 Ответ

1 голос
/ 08 июля 2019

Mahesha999,

Эта информация доступна в заголовке запроса: X-Forwarded-For и X-Forwarded-Host

As@daggett указал, что если у вас есть настройка брандмауэра, вы можете настроить брандмауэр так, чтобы он передавал эти заголовки или сопоставлял их с чем-то вроде «client-ip»

...