微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

php正则解析nginx的access log,下面的是小批量的, 大批量就用gif+elk

日志采集 aide_941 16℃

php正则解析nginx的access log:

  • 对于nginx的日志分析,awstats + jawstats 是一个很好的解决方案
    最近有个任务需要对接口的调用做二次分析统计,于是用php写了个正则解析日志,用Highcharts报表,
    nginx.conf 对log的默认格式是这样定义的:
log_format access 'remote_addr -remote_user [time_local] "request" '
                          'statusbody_bytes_sent "http_referer" '
                          '"http_user_agent" $http_x_forwarded_for';
^(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\s-\s(.*)\s\[(.*)\]\s"(.*)\"\s(\d{3})\s(\d+)\s"(.*)"\s\"(.*)\"(.*)$
  • 匹配每行的记录大概如下:
192.168.192.168 - - [31/Jul/2012:14:17:45 +0800] "GET /a/b/c/d.txt?device_id=BF771F68-6B0C-41D0-9F7E-3A24294B17DF HTTP/1.0" 200 1039 "-" "LifeStyleTiring-Room/1.0 CFNetwork/548.1.4 Darwin/11.4.0"
  • 每天用crontab把记录切割并解析,每次读入100行,提取有用部分预处理存入sql,为报表做准备,,目前数据量不多,还没有做性能测试,
  • 上面的是小批量的, 大批量就用gif+elk:

//还不知道ipv6的状况会如何

转载请注明:SuperIT » php正则解析nginx的access log,下面的是小批量的, 大批量就用gif+elk

喜欢 (0)or分享 (0)