时间:2021-05-19
Nginx日志描述
通过访问日志,你可以得到用户地域来源、跳转来源、使用终端、某个URL访问量等相关信息;通过错误日志,你可以得到系统某个服务或server的性能瓶颈等。因此,将日志好好利用,你可以得到很多有价值的信息。
参数明细表:
$remote_addr 客户端的ip地址(代理服务器,显示代理服务ip) $remote_user 用于记录远程客户端的用户名称(一般为“-”) $time_local 用于记录访问时间和时区 $request 用于记录请求的url以及请求方法 $status 响应状态码,例如:200成功、404页面找不到等。 $body_bytes_sent 给客户端发送的文件主体内容字节数 $http_user_agent 用户所使用的代理(一般为浏览器) $http_x_forwarded_for 可以记录客户端IP,通过代理服务器来记录客户端的ip地址 $http_referer 可以记录用户是从哪个链接访问过来的Nginx日志分隔
nginx的日志文件没有rotate功能。编写每天生成一个日志,我们可以写一个nginx日志切割脚本来自动切割日志文件。
第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,Linux是靠文件描述符而不是文件名定位文件。
第二步向nginx主进程发送USR1信号。nginx主进程接到信号后会从配置文件中读取日志文件名称,重新打开日志文件(以配置文件中的日志名称命名),并以工作进程的用户作为日志文件的所有者。重新打开日志文件后,nginx主进程会关闭重名的日志文件并通知工作进程使用新打开的日志文件。工作进程立刻打开新的日志文件并关闭重名名的日志文件。然后你就可以处理旧的日志文件了。[或者重启nginx服务]。
Nginx日志格式
打开nginx.conf配置文件:vim /usr/local/nginx/conf/nginx.conf
查看Nginx的nginx.conf文件,可以看到这样一条信息
#access_log logs/access.log main;
这说明该server访问日志的文件是 logs/host.access.log,使用的格式”main”格式。
日志生成的到Nginx根目录logs/access.log文件,默认使用“main”日志格式,也可以自定义格式。
main格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#参数解释$remote_addr 客户端IP地址;$remote_user 客户端用户名;$time_local 访问的时间和时区;$request 访问请求的类型,POST或者GET;$status 记录请求状态,404、304、200等等;$body_bytes_sent 客户端给服务器发送的文件主体内容的大小;$http_referer 访问来源——从哪个链接过来的;$http_user_agent 用户代理信息,一般是浏览器的标记,有时候也是爬虫标记。$http_x_forwarded_for 直接访问该服务器的IP地址,可能是客户端IP也可能是代理服务器IP#应用main格式的日志实例47.97.66.214 - - [05/May/2018:02:18:26 +0800] "GET /solr/ HTTP/1.1" 404 571 "http://44.186.245.237/solr/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, li Gecko) Chrome/59.0.3071.115 Safari/537.36"47.97.66.214 - - [05/May/2018:02:18:26 +0800] "GET /wcm/ HTTP/1.1" 404 571 "http://44.186.245.237/wcm/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, li Gecko) Chrome/59.0.3071.115 Safari/537.36"80.82.78.50 - - [05/May/2018:03:53:56 +0800] "GET http:/// HTTP/1.1" 404 169 "-" "Mozilla"112.193.171.197 - - [05/May/2018:06:52:06 +0800] "GET http:/// HTTP/1.1" 200 462 "-" "python-requests/2.6.0 CPython/2.7.5 Linux/3.10.0-693.11.1.el7.x86_64"除了main格式,你可以自定义其他格式,只需要把上述参数重新组合即可。
nginx的默认log存放在logs/access.log里,但也允许针对不同的server做不同的log,只需要在对应server下加入如下语句
access_log logs/access_8080.log mylog;#声明一个log #log存放目录和名称 #log格式(可自定义)修改nginx.conf之后需要重启Nginx才能使配置生效
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
nginx的日志配置可以参见《nginx日志配置指令详解》一文。如果要想以json格式记录nginx日志以便logstash分析,该如何指定日志格式呢?可以按照
项目的一个需求是解析nginx的日志文件。简单的整理如下:日志规则描述首先要明确自己的Nginx的日志格式,这里采用默认Nginx日志格式:log_format
环境介绍:OS:CentOS6.XNginx版本:1.4.7以上打印Nginx日志,对于排查错误必不可缺!因为Nginx基本都是由模块控制的,参考链接:http
Linux下nginx生成日志自动切割的实现方法1、编辑切割日志的shell程序,目录自定#vi/data/nginx/cut_nginx_log.sh输入代码
系统日志是一个很重要的东西但同时如果我们不定时清除空间就会给日志占完了,下面我来介绍定期删除日志实现方法,各位同学可参考。Nginx的日志文件累积的太多,最后充