一、從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