Я работаю над передачей nginx
журналов доступа к Fluentd
на aws kinesis
на AWS S3 via kinesis firehose
. Журналы nginx будут переведены на AWS Glacier
во время log rotation
.
Я на начальных этапах, когда мне нужно передать журналы доступа nginx к fluentd через syslog / rsyslog.
Используемая версия Nginx - 1.14.
Моя ОС:
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
Есть много способов отправить журналы nginx в rsyslog.
Способ 1: Использование модуля imfile и обновление rsyslog.conf, как показано в https://petermolnar.net/log-nginx-to-rsyslog/
Способ 2: Обновление nginx.conf для записи непосредственно в системный журнал. Я беспокоюсь, что это замедлит работу nginx во время высокого трафика. https://docs.nginx.com/nginx/admin-guide/monitoring/logging/#logging-to-syslog
Путь 3: Пропустить rsyslog / syslog и напрямую передать данные из nginx в fluentd через модуль https://github.com/fluent/nginx-fluentd-module. Здесь я обеспокоен тем, что этот модуль надежен или нет, а также если nginx не должен стать менее отзывчивым из-за использования этого модуля.
Каков наилучший способ достижения цели, цель для реального времени
поток данных из журналов доступа nginx к fluentd, без блокировки nginx
обслуживать запросы.