免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4735 | 回复: 14
打印 上一主题 下一主题

[文本处理] 请教:awk分析nginx日志问题 [复制链接]

论坛徽章:
1
2015七夕节徽章
日期:2015-08-21 17:58:43
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-17 17:06 |只看该作者 |倒序浏览
本帖最后由 shreychen 于 2014-06-17 17:07 编辑

最近需要分析nginx日志,尝试了下awk脚本,求推荐awk学习资料,网上的比较零散
  1. #!/usr/bin/awk -f

  2. BEGIN{
  3.     FS="^A";
  4. }
  5. {
  6.         httpcode[$5]++;
  7.         if ($5 != 200){
  8.                 split($11,upstreams,", ");
  9.                 for (key in upstreams){
  10.                         ups=upstreams[key];
  11.                         upstream[ups]++;
  12.                 }
  13.         }
  14. }
  15. END{
  16.         for (code in httpcode) print httpcode[code],code;
  17.         for (ups in upsteam) print upsteam[ups],ups;
  18. }
复制代码
for (ups in upsteam) print upsteam[ups],ups;  不明白这个为啥没起作用

nginx日志样本
  1. 16/Jun/2014:09:53:40 +0800^A192.168.0.44^A-^AGET /search?dtype=news&duid=bd4d7010aee44b1b&tid=desc&q=0 HTTP/1.1^A200^A34080^A-^AMozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)^A-^A0.016^A192.168.201.90:8888^A0.016
  2. 16/Jun/2014:09:53:40 +0800^A192.168.0.44^A-^AGET /search?dtype=pubnote&duid=10b91cc33c6d74a2&tid=desc&q=0 HTTP/1.1^A200^A2123^A-^AMozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)^A-^A0.013^A192.168.201.87:8888^A0.013
  3. 16/Jun/2014:09:53:40 +0800^A192.168.0.55^A-^APOST /cm?type=dynamicdict HTTP/1.1^A200^A126^A-^AJakarta Commons-HttpClient/3.1^A-^A0.005^A192.168.201.191:19850, 192.168.201.192:19850^A0.100, 0.005
  4. 16/Jun/2014:09:53:40 +0800^A192.168.0.53^A-^APOST /search HTTP/1.1^A200^A5950^A-^AJakarta Commons-HttpClient/3.1^A-^A0.143
  5. ^A192.168.201.87:8888^A0.143
复制代码

论坛徽章:
0
2 [报告]
发表于 2014-06-17 17:14 |只看该作者
@shreychen

这个要看不懂,用awk分析nginx估计有难度。

for (ups in upsteam) print upsteam[ups],ups;

打印以ups为下标的数组upsteam值

论坛徽章:
1
2015七夕节徽章
日期:2015-08-21 17:58:43
3 [报告]
发表于 2014-06-17 17:20 |只看该作者
todayhero 发表于 2014-06-17 17:14
@shreychen

这个要看不懂,用awk分析nginx估计有难度。

不知道 upstream 这个数组为什么是空的

论坛徽章:
0
4 [报告]
发表于 2014-06-17 17:24 |只看该作者
@shreychen


别研究了,你想统计什么,让大家帮你写吧。

论坛徽章:
1
巨蟹座
日期:2014-06-10 23:03:47
5 [报告]
发表于 2014-06-17 17:42 |只看该作者
确认一下你日志里的httpcode是不是都是200吧?至少从样本里看都是200

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
6 [报告]
发表于 2014-06-17 17:50 |只看该作者
O'Reilly sed & awk 2nd Edition 英文版
http://bbs.chinaunix.net/viewthread.php?tid=1588614#pid11286082

O'Reilly sed & awk 2nd Edition 中文高清修订第3版
http://bbs.chinaunix.net/thread-1743038-1-1.html

论坛徽章:
1
2015七夕节徽章
日期:2015-08-21 17:58:43
7 [报告]
发表于 2014-06-17 20:21 |只看该作者
回复 6# Shell_HAT

收藏了,and thx very much

   

论坛徽章:
1
2015七夕节徽章
日期:2015-08-21 17:58:43
8 [报告]
发表于 2014-06-17 20:23 |只看该作者
zhleiling 发表于 2014-06-17 17:42
确认一下你日志里的httpcode是不是都是200吧?至少从样本里看都是200


就是因为有很多非200的才要统计,每天有千万+记录,样本是随便摘取了几行

论坛徽章:
768
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
9 [报告]
发表于 2014-06-17 20:23 |只看该作者
本帖最后由 Herowinter 于 2014-06-17 20:26 编辑

回复 1# shreychen
入门看这个蛮好的,我就是看这个吧,
1-2个下午就可以看完。
http://man.lupaworld.com/content/manage/ringkee/awk.htm

看了下楼主的代码,楼主需要进阶的啊,忽略这个吧。。。
   

论坛徽章:
1
2015七夕节徽章
日期:2015-08-21 17:58:43
10 [报告]
发表于 2014-06-17 20:24 |只看该作者
回复 4# todayhero

呵呵~ 打算自己折腾下,一直想学学awk来着


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP