Nginx日志格式设置

Nginx日志格式设置,第1张

一、日志格式设置

除了默认的main格式,可以自定义其他格式的日志

1、默认的日志格式: main

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"'

默认的main日志格式,记录这么几项

远程IP- 远程用户/用户时间 请求方法(如GET/POST) 请求体body长度 referer来源信息

http-user-agent用户代理/蜘蛛 ,被转发的请求的原始IP

http_x_forwarded_for:在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP

log_format mylog '$remote_addr- "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"'

在下面的server/location,我们就可以引用 mylog

Nginx允许针对不同的server做不同的Log

access_log logs/access_8080.log mylog

二、日志分割脚本:

#!/bin/bash

base_path='/usr/local/nginx/logs'

log_path=$(date -d yesterday +"%Y%m")

day=$(date -d yesterday +"%d")

mkdir -p $base_path/$log_path

mv $base_path/access.log $base_path/$log_path/access_$day.log

#echo $base_path/$log_path/access_$day.log

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

服务器上nginx的日志体积日益增大,已经到了打开都要加载很久的地步了,无法忍受,想配置日志按天保存,方便查看。网上搜了一下,基本有两种思路:

主要思路是写一个定时任务脚本,每天特定时间把现在的日志重命名,XXXX2021-01-05.log,然后 nginx -s reopen 重启nginx来实现目的。

考虑了一下nginx重启会导致线上项目服务终止影响用户体验,所以放弃了。

通过nginx.conf配置来实现自动化的按天保存日志,nginx无需重启,好处显而易见,我选择了这种方式实现。

$time_iso8601 是nginx 内嵌变量,可以用来获取当前时间,时间格式如下: 2018-09-21T16:01:02+02:00 。然后使用 正则表达式 来获取所需时间的数据。按yyyy-mm-dd格式获取当前日期的字符串,通过变量 $time 来设置日志文件名,这样当日期改变时,日志文件名就会更新,nginx会以新的文件名记录日志,实现按天保存日志的效果。

实现过程并不顺利,主要遇到了以下几个问题。

1. access_log 可以通过变量配置文件名,但是 error_log 用同样的方法配置后不生效,不过 error_log 的记录相对较少,目前还不是问题,暂时放弃。

2.保证日志目录可被 nginx 用户组有读写权限,这个踩坑了,配置后日志目录下没有出现日志,nginx.conf里配置的用户名是 nginx ,改了权限之后就可以正常生成了。

nginx的log日志分为access log 和 error log

access log :记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息

error log :是记录服务器错误日志

access.log日志的形式如下:

其实nginx access日志的格式不是一成不变的,是可以自定义的。

在nginx的nginx.conf配置文件找到:log_format 这里就是日志的格式

看一下和上述日志匹配的log格式设置:

配置access log日志的存储位置及文件,注意:access.log文件是可以按日期进行分割的,方便查看及处理


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11330470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存