nginx日志分析方法
2024-08-30 12:27:46
供稿:网友
一、从nigx上截取的条nginx日志
- 122.59.14.12 122.59.14.12 - - [24/Apr/2011:10:37:06 +0800] "GET /product/sellerscore.do?returnpage=0&supplierid=ff8080811fdc4c29011feaa9ed165c11 HTTP/1.1" 499 0 "http://www.dhgate.com/wholesale/store.do?act=sellerStore&sellerid=ff8080811fdc4c29011feaa9ed165c11&datatype=&winid=all&sortinfo=operatedate&sorttype=down&sort=operatedate,down&keyword=i phone&freeshipping=0&wholesale=0&price=0&minprice=&maxprice=&pagesize=40&catalogid=" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; FunWebProducts; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CPNTDF; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; .NET4.0C)" rBABeU2RGgBXQj3OA46vAg==
二、在nginx配置文件中有关nginx日志的配置
$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $secure_dhgate_auth '
三、以下是对nginx日志记录每段记录的解释
1、122.59.14.12
这是一个请求到nginx服务器的客户端ip($remote_addr)。
2、122.59.14.12
这是一个请求到nginx服务器的客户端用户($remote_user)。
3、[24/Apr/2011:10:37:06 +0800]([$time_local])
记录请求时间(格式为[day/month/year:hour:minute:second zone],最后的+0800表示服务器所处的时区为东八区)
4、"GET /product/sellerscore.do?returnpage=0&supplierid=ff8080811fdc4c29011feaa9ed165c11 HTTP/1.1"
($request)
这一项整个记录中最有用的信息,首先,它告诉我们的服务器收到的是一个GET请求,其次,是客户端请求的资源路径,第三,客户端使用的协议时HTTP/1.1,整个格式为"%m %U%q %H",即"请求方法/访问路径/协议"
5、 499 (对于499状态码得解释我会写一篇文章专门解释)--($status)
这是一个状态码,由服务器端发送回客户端,它告诉我们客户端的请求是否成功,或者是重定向,或者是碰到了什么样的错误,这项值为200,表示服务器已经成功的响应了客户端的请求,一般来说,这项值以2开头的表示请求成功,以3开头的表示重定向,以4开头的标示客户端存在某些的错误,以5开头的标示服务器端存在某些错误,详细的可以参见 HTTP specification (RFC2616 section 10).[http://www.w3.org/Protocols/rfc2616/rfc2616.txt]
6、0 ($body_bytes_sent )
这项表示服务器向客户端发送了多少的字节,在日志分析统计的时侯,把这些字节加起来就可以得知服务器在某点时间内总的发送数据量是多少
7、"http://www.dhgate.com/wholesale/store.do?act=sellerStore&sellerid=ff8080811fdc4c29011feaa9ed165c11&datatype=&winid=all&sortinfo=operatedate&sorttype=down&sort=operatedate,down&keyword=i phone&freeshipping=0&wholesale=0&price=0&minprice=&maxprice=&pagesize=40&catalogid="
($http_referer)
这一项是($http_referer)客户端输入的http请求。
8、Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; FunWebProducts; GTB6.6; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CPNTDF; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; .NET4.0C)"
($http_user_agent)
这项主要记录客户端的信息
9、rBABeU2RGgBXQj3OA46vAg==
$secure_dhgate_auth
四、实用的日志分析脚本
1.查看nginx的进程数
# ps -aux|grep nginx|wc -l
2、分析日志查看当天的ip连接数
# grep "23/Apr/2011" logs/www.dhgate.access.log|wc -l
3.查看指定的ip在当天究竟访问了什么url
# grep "23/Apr/2011" logs/www.dhgate.access.log|grep "69.248.213.128"|awk '{print $9}'
4.查看当天访问排行前10的url
# grep "23/Apr/2011" logs/www.dhgate.access.log|awk '{print $9}'|sort |uniq -c |sort -nr |head -n 10
5、查看访问次数最多时间以小时为单位(热点)
# grep "24/Apr/2011" logs/www.dhgate.access.log|awk '{print $6}'|cut -c14-15|sort |uniq -c |sort -nr|head