NGINX, извлечение пути URL из заголовка http - PullRequest
0 голосов
/ 29 февраля 2020

Итак, я отправляю свои Nginx журналы доступа в Datadog (решение APM).

Мой формат журнала выглядит следующим образом

  log_format json_custom 
    '{'
      '"http.version":"$request",'
      '"http.status_code":$status,'
      '"http.method":"$request_method",'
      '"http.referer":"$http_referer",'
      '"http.useragent":"$http_user_agent",'
      '"time_local":"$time_local",'
      '"remote_addr":"$remote_addr",'
      '"remote_user":"$remote_user",'
      '"body_bytes_sent":"$body_bytes_sent",'
      '"request_time":$request_time,'
      '"response_content_type":"$sent_http_content_type",'
      '"X-Forwarded-For":"$proxy_add_x_forwarded_for",'
      '"custom_key":"custom_value"'
    '}';

Я могу извлечь URL из поля referrer, и он выглядит так

http://example.com/foo/bar 

Я хочу только /foo/bar хотя. Это что-то, что я должен изменить в log_format?

Я видел пример из документации datadog, где они могут извлечь атрибут пути url, но нет примера конфигурации.

enter image description here

Ответы [ 2 ]

1 голос
/ 02 марта 2020

Если у вас уже есть атрибут, который содержит URL-адрес, очень простой способ сделать это - использовать конвейеры обработки и добавить процессор " анализатор URL-адресов " введите эти журналы. Вы просто подключаете атрибут, который содержит URL-адрес и путь к атрибуту, который вы хотите, чтобы он содержал все выходные данные из него (обычно http.url_details), и тогда для всех новых журналов будет применен дополнительный анализ URL-адреса.

Если к вашим журналам применен «source: nginx» (настроен в отправителе журналов), то у вас уже будет готовый конвейер обработки Nginx, который Datadog использует для структурирования стандарта Nginx синтаксис логов. Вы можете клонировать это, а затем просто добавить свой новый анализатор URL там. Или, если ваш синтаксис похож на стандартный синтаксис, вы можете просто изменить их предлагаемые парсеры по умолчанию (в клонированном конвейере). В любом случае, стоило бы взглянуть на этот конвейер по умолчанию, чтобы найти другие полезные вещи, помимо анализа URL.

0 голосов
/ 01 марта 2020

Datadog может обрабатывать журналы с помощью функции подбора конвейера

https://docs.datadoghq.com/logs/processing/pipelines/

...