利用Nginx日志记录分析网页游戏玩家操作

目的

记录游戏玩家操作步骤时间,根据时间顺序分析玩家操作的流程、最后停留操作、流失前操作等;

操作
1.在游戏主程序中加入cookie记载的代码:
$user_id = 10447; //游戏中玩家ID
$user_name = ‘sujun.info’; //游戏中玩家名
setcookie( ‘_UID’, $user_id, time() + 3600 );  //cookie中”_UID”用来记载用户游戏ID
2.在Nginx配置文件nginx.conf中进行如下配置:
http {
……

log_format  vgame  ‘[$time_local] $_uid “$request”‘;

server {

……


set $_UID ”-”;

if ( $http_cookie ~* “_UID=(\S+)(;.*|$)” ){

     set $_uid $1;

}

location ~ .*\.(js|css|jpg|png|html)?$
{

access_log off;

#expires 30d;

}

access_log  logs/vgame.log  vgame;


……

}

……
}
3.重启Nginx后,访问游戏,会发现vgame.log中有如下格式的记录:
(日志格式: [时间与时区] 用户游戏ID ”请求的url与http协议”
[11/May/2012:22:54:53 +0800] 10447 “GET / HTTP/1.1″
[11/May/2012:22:54:53 +0800] 10447 “GET /js/jsDebug.js HTTP/1.1″
[11/May/2012:22:54:53 +0800] 10447 “GET /js/game.js HTTP/1.1″
[11/May/2012:22:54:53 +0800] 10447 “GET /js/gStorage.js HTTP/1.1″
[11/May/2012:22:54:53 +0800] 10447 “GET /js/callback.js HTTP/1.1″
[11/May/2012:22:54:53 +0800] 10447 “GET /css/jsDebug.css HTTP/1.1″
[11/May/2012:23:09:49 +0800] 10447 “GET /?a=role&c=info HTTP/1.1″
[11/May/2012:23:09:49 +0800] 10447 “GET /tpl/role.html?1336748989148 HTTP/1.1″
[11/May/2012:23:10:47 +0800] 10447 “POST /?a=role&c=info&uid=11 HTTP/1.1″
[11/May/2012:23:12:04 +0800] 10447 “POST /?a=role&c=info&uid=11 HTTP/1.1″ 

[12/May/2012:10:38:42 +0800] 10447 ”GET / HTTP/1.1″
[12/May/2012:10:38:43 +0800] 10447 “GET /?a=role&c=info HTTP/1.1″
[12/May/2012:10:38:45 +0800] 10447 “GET /?a=role&c=error HTTP/1.1″
[12/May/2012:10:38:45 +0800] 10447 “GET /?a=role&c=error2 HTTP/1.1″
[12/May/2012:10:38:46 +0800] 10447 “GET /?a=mission&c=detail HTTP/1.1″
[12/May/2012:10:38:47 +0800] 10447 “GET /?a=mission&c=reward HTTP/1.1″
[12/May/2012:10:38:49 +0800] 10447 “GET /?a=mission&c=step HTTP/1.1″
[12/May/2012:10:39:42 +0800] 10447 “GET /?a=main&c=tool&type=run&code=echo%201123; HTTP/1.1″
[12/May/2012:10:39:57 +0800] 10447 “GET /?a=mission&c=detail HTTP/1.1″
[12/May/2012:10:39:58 +0800] 10447 “GET /?a=mission&c=reward HTTP/1.1″
[12/May/2012:10:39:59 +0800] 10447 “GET /?a=mission&c=step HTTP/1.1″
优化
1.只记录操作请求,不记录js、css、jpg等资源请求日志;
2.按照需求增加记录POST请求的数据($request_body);
3.建立一份正常升级操作比照表,将日志同正常操作做比对,筛选出异常操作分布,分析原因;

深圳行(五)

深圳第三周,《楚河汉界》开了两个体验服,QQ很是给力,用户涨得唰唰的,几十万Tips。
一周多的底层DB锁方面的优化尝试,发现在一些复杂逻辑处理上,可能会产生一些问题,不得不砍掉。
换了家宾馆,遇见北京游戏谷《魔幻大陆》 两人,这个游戏也测试,第三次了,好像。

深圳行,目标达成,第一周。
回上海的日子大概定下来,很想回去了……

又见老同学,车公庙、3人、咖啡,一下午 。

关键字:
版本控制、不辩解

老友记

卡布奇洛,
溶化,在杯中。
盯着,电话响起。
起身,寻找地铁C。
路过,星巴克,仍在。

十三年,老同学。
地铁口,样子还是当年,
见面,如同多年的老友般。
寻找,小坐的空间,
避开,星巴克。
喔咔,卡布奇洛仍在,
未动,板娘留置。

一杯咖啡,当年人、事、物,
两位老友,近年见、闻、行。

深圳行(四)

昨日,6.28,16:00,《楚河汉界》终于不删档测试了。
一年多了,可算等到这一天,进入新阶段。
延迟几天, 开了。
不管如何,要开始新的征程了。

关键字:
充值、丢包、超时、新手引导、军团建设

深圳行(三)

早上有些小郁闷,有些燥,说话声音有些大。
中午腾讯餐厅吃饭,遇见今天刚刚入职的鱼鳞,呵呵。
原以为深圳就认识两人, 今天QQ不隐身,突然发现很有一些熟人在这边。
当隐身是一种生活态度时,偶尔在线 ,感觉不错。
通过聊天,知道台风原来也会影响深圳,知道东部华侨城值得一玩……

有些关系,不是需要靠经常联系来维系的,
N久N年未联系,再见,感觉还在。

深圳行(二)

19号早上的飞机,上海虹桥机场到深圳宝安机场。
到达深圳,入住酒店,到腾讯领门牌,准备搭建工作环境,补觉……
20号,开工,至深夜。
21号2:15,惊魂。。。
当前人员:海狸、中医、俺。
当前时间:21号05:25。
当前关键字:深圳、腾讯、万利达大厦、惊魂、通宵……

经验教训总结:
备份很重要,不管何时!
SVN库备份很有必要!
操作要慎重!!!
历史教训有多次,不要再犯了。。。