我正在将nginx
的访问日志传递给Fluentd
到aws 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 服务请求。
答案 0 :(得分:0)
由于有一个多月没有回复,请与我分享选择的方式。
使用模块imfile,并更新rsyslog.conf,如https://petermolnar.net/log-nginx-to-rsyslog/
所示