配置Nginx
格式化Nginx日志并推送到远程服务器,其实很简单,我们只需要在Nginx服务器的配置文件nginx.conf中进行简单的配置即可。例如,我们可以在nginx.conf文件中添加如下配置。
log_format common "$remote_addr,$http_ip,$http_mac,$time_local,$status,$request_length,$bytes_sent,$body_bytes_sent,$http_user_agent,$http_referer,$request_method,$request_time,$request_uri,$server_protocol,$request_body,$http_token"; log_format main "$remote_addr,$http_ip,$http_mac,$time_local,$status,$request_length,$bytes_sent,$body_bytes_sent,$http_user_agent,$http_referer,$request_method,$request_time,$request_uri,$server_protocol,$request_body,$http_token"; access_log logs/access.log common; access_log syslog:server=192.168.1.100:9999,facility=local7,tag=nginx,severity=info main; map $http_upgrade $connection_upgrade { default upgrade; '' close; }
上述配置是将Nginx的日志各项参数以逗号分隔的形式进行输出,同时将Nginx日志实时推送到192.168.1.100:9999上。
此时,我们只需要在192.168.1.100服务器上部署一个TCP或UDP服务,监听端口为9999,并在192.168.1.100服务器的防火墙开放9999端口。我们写的TCP或UDP服务就会实时接收到Nginx服务器发送过来的日志。
通过这种方式,我们就可以将Nginx日志实时收集到某个存储集群中,对Nginx日志进行统一存储、维护和分析。