fluentd - geoip x_forwarded_for iplist - PullRequest
0 голосов
/ 13 июля 2020

Мой вопрос касается передачи массива IP-адресов или одного IP-адреса в плагин GeoIP. В моем сценарии я могу получить IP-адрес или список IP-адресов для x_forwareded, как указано ниже:

Возможные значения x_forwarded_for: «ip_address» или «ip_address1, ip_address2, ip_address3 ..»

В настоящее время я пытаюсь использовать индекс массива внутри плагина фильтра geoip, как указано ниже:

    <filter nginx.access>
  @type geoip
  backend_library geoip2_c
  # Set key name for the client ip address values
  geoip_lookup_keys    $"{x_forwarded_for.first}"
  # Specify key name for the country_code values
  <record>
    city ${city.names.en["x_forwarded_for.first"]}
    latitude ${location.latitude["x_forwarded_for.first]"]}
    longitude ${location.longitude["x_forwarded_for.first"]}
    country_code ${country.iso_code["x_forwarded_for.first"]}
    country_name ${country.names.en["x_forwarded_for.first"]}
    region_code ${subdivisions.0.iso_code["x_forwarded_for.first"]}
    region_name ${subdivisions.0.names.en["x_forwarded_for.first"]}
  </record>
</filter>

Я пытался заменить x_forwarded_for.first на x_forwarded_for [0], но ничего не работает. Я получаю следующую ошибку в журнале ошибок td-agent:

2020-07-13 17:03:14 +0000 [warn]: #0 dump an error event: error_class=RuntimeError error="failed to expand `x_forwarded_for.first` : error = undefined local variable or method `x_forwarded_for' for #

Не могли бы вы предложить возможное решение.

Обратите внимание: конечная цель - получить сведения о местоположении geoip с помощью первый IP-адрес массива или IP-адрес в случае только одного IP-адреса из x_forwarded_for.

...