Перейти к основному содержимому
Версия: 4.5.X

Плагин для нормализации логов nginx

nginx — это HTTP-сервер и обратный прокси-сервер, почтовый прокси-сервер, а также TCP/UDP прокси-сервер общего назначения. Подробнее о nginx можно прочитать здесь

Эта статья предназначена для объяснения работы плагина для нормализации логов nginx в ECS с помощью примеров.

Справка по параметрам конфига:

enabled - выбор типа логов для нормализации (access или error). Можно указать сразу 2 значения. 

format - формат логов (plain или json).

access-log-format - шаблон для парсинга access логов. По умолчанию используется стандартный шаблон nginx:

$remote_addr - $remote_user [$time_local] $status "$request" $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"

(Для error логов шаблон не нужен, они одного формата)

Пример конфига:

processors:
- module: nginx
enabled: [access]
format: plain
access-log-format: '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'

Пример логов:

216.128.162.80 - - [25/Oct/2016:14:49:33 +0200] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36"

Пример конфига:

processors:
- module: nginx
enabled: [access]
format: plain
access-log-format: '[$time_local] -- $geoip2_data_country_iso_code - $allowed_country -- $remote_addr - $remote_user - $server_name to: $upstream_addr: $request upstream_response_time $upstream_response_time msec $msec request_time $request_time'

Пример логов:

[01/Sep/2022:13:57:23 +0000] -- - - no -- 10.0.100.2 - gitlab-ids-robot - example.com to: 216.128.162.80: PUT /repository/ids/releases-ui/ids-ui-v2.0.15-dark.tar.gz HTTP/2.0 upstream_response_time 0.153 msec 1662040643.432 request_time 0.168