第一部分:日志格式详解
nginx的log日志分为:access.log 和 error.log。
access.log:主要是记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息。
error.log:主要记录服务器错误日志。
日志格式语法:log_format main 格式样式。打印出来的日志样式
#access日志格式配置如下:
log_format main '$remote_addr - $remote_user [$time_local] '
'fwf[$http_x_forwarded_for] tip[$http_true_client_ip] '
'$upstream_addr $upstream_response_time $request_time '
'$http_host $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_accept_language" "$http_user_agent" ';
#配置access log日志的存储位置及文件,注意:access.log文件是可以按日期进行分割的,方便查看及处理
access_log /usr/local/nginx/log/access.log main;
打印出来的日志信息
201.0.69.2 - - [26/Jul/2018:03:17:20 +0800] fwf[-] tip[-] 127.0.0.1:7029 0.037 0.037 180.159.12.115:7029 POST /HLXY99/dex.htm HTTP/1.1 "200" 2426 "http://abc.com" "es-ES,es;q=0.8" "Jakarta Commons-HttpClient/3.0"
具体格式分析
从上面我们可以看出几部分信息: 01.【$remote_addr】客户端(用户)IP地址。如:上例中的 201.0.69.2 02.【$remote_user】 记录客户端用户名称 03.【[$time_local]】访问时间。如:上例中的 [26/Jul/2018:03:17:20 +0800] 04.【$upstream_addr】访问端口。如:上例中的 127.0.0.1:7029 05.【$upstream_response_time】响应时间。如:上例中的 0.037 06.【$request_time】请求时间。如:上例中的 0.037 07.【$http_host】请求的url地址(目标url地址)的host。如:上例中的 180.159.12.115:7029 08.【$request】请求方式(GET或者POST等)。如:上例中的 POST 09.请求url地址(去除host部分)。如:上例中的 /HLXY99/dex.htm 10.【"$status"】请求状态(状态码,200表示成功,404表示页面不存在,301表示永久重定向等)。如:上例中的 "200" 11.【$body_bytes_sent】请求页面大小,默认为B(byte)。如:上例中的 2426 12.【"$http_referer"】来源页面,即从哪个页面转到本页,专业名称叫做“referer”。如:上例中的 "http://abc.com" 13.【"$http_accept_language"】用户浏览器语言。如:上例中的 "es-ES,es;q=0.8" 14.【"$http_user_agent"】用户浏览器其他信息,浏览器版本、浏览器类型等。如:上例中的 "Jakarta Commons-HttpClient/3.0" 15.【$time_iso8601】ISO8601标准格式下的本地时间。 其实nginx access。log日志的格式不是一成不变的,是可以自定义的。 在nginx的nginx.conf配置文件找到:log_format 这里就是日志的格式 |
第二部分:日志文件按日期进行分割
步骤1:编写shell脚本(在/usr/local/nginx/shellTask/下,编辑vi nginx_log.sh)
#nginx日志切割脚本
#author:lixy
#!/bin/bash
#设置日志文件存放目录
logs_path="/home/nginx/nginx/logs/"
#设置pid文件
pid_path="/home/nginx/nginx/logs/nginx.pid"
#重命名日志文件
mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log
#向nginx主进程发信号重新打开日志
kill -USR1 `cat ${pid_path}`
步骤2:设置定时任务,crontab 设置作业
设置定时任务,crontab 设置作业 1.编辑任务 crontab –e 2.每天凌晨00:00定时执行这个脚本
3.查看任务 crontab -l 4.删除任务(适时使用) crontab -r |