来自Nginx访问日志-> Rsyslog或Syslog-> Fluentd-> Kinesis的数据流

时间:2019-05-28 06:48:06

标签: apache nginx amazon-kinesis fluentd rsyslog

我正在将nginx的访问日志传递给Fluentdaws kinesis传递给AWS S3 via kinesis firehose。 nginx日志将在AWS Glacier期间推送到log rotation

我处于起步阶段,需要通过syslog / rsyslog将nginx访问日志传递给fluentd。

使用的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以直接在syslog中编写。我担心这会在高流量期间减慢Nginx的速度。 https://docs.nginx.com/nginx/admin-guide/monitoring/logging/#logging-to-syslog

方法3:跳过rsyslog / syslog并通过模块https://github.com/fluent/nginx-fluentd-module将数据从nginx直接传递到fluentd。在这里,我担心该模块是否可靠,或者是否由于使用该模块而使nginx的响应速度变慢。

  

达到目标的最佳方法是什么,目标是实时的   从nginx访问日志到fluentd的数据流,而不会阻塞nginx   服务请求。

1 个答案:

答案 0 :(得分:0)

由于有一个多月没有回复,请与我分享选择的方式。

使用模块imfile,并更新rsyslog.conf,如https://petermolnar.net/log-nginx-to-rsyslog/

所示