首页 / 日志 / 三剑客实战Nginx日志分析
三剑客实战Nginx日志分析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了三剑客实战Nginx日志分析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2017字,纯文字阅读大概需要3分钟。
内容图文
三剑客grep、sed、awk、正则总结
正则分为普通正则和扩展正则
普通正则:
1. .*可以匹配多个任意字符
2. \b是匹配单词的,匹配有空格的单词
扩展正则:
1.支持扩展正则 如grep时,要加 -E参数
2. 注意??grep不支持正则中的\d 用[0-9]还有\w
3. grep -P 意思是支持perl语法
? ? 实战场景:对Nginx log日志分析,目录:/tmp/nginx.log ? shell脚本命令以后无论是 adb shell查看日志信息,想分析手机中的性能,docker还是jenkins使用shell脚本都会用到,因此很重要!! 不懂怎么用命令的时候 就用man grep,man awk?找出log中的404 500的报错有多少条
1)grep -E '\s500\s|\s404\s' nginx.log | wc -l (使用扩展正则)
2)grep -cE '\s500\s|\s404\s' nginx.log (grep -c 和wc -l使用效果是一样的,都是统计条数)
3)awk '$9~/404|500/' nginx.log |wc -l (注意??$9~ 不加{print}默认就是print,如果 不加$9 默认为$0~,就是整行的意思,就默认整行中查找404和500,)
找出访问量最高的前三名ip
1)awk '{print $1}' nginx.log |sort|uniq -c|sort -nr; awk '{print $1}' nginx.log |sort|uniq -c|sort -nr|head -3
分析:sort 排序,是一个经常使用的命令; 将重复的放在一起进行排序, sort默认排序是字典序,相对数字排序必须要加上-n加r -nr是反转;
uniq合并在: 是合并相邻的 ,因此要先用sort排序, 将重复的数据放在一起 -c可以计算出重复的有多少个
head -3 取出头部前三名
另外如果 想要把前面的统计数字去掉,在后面在加上一个awk筛选: awk '{print $1}' nginx.log |sort|uniq -c|sort -nr|head -3|awk '{print $2}’
2) grep -o '^[0-9]*.[0-9]*.[0-9]*.[0-9]*' nginx.log |sort|uniq -c|sort -nr|head -3(注意?? 加.是任意字符匹配的意思,不是ip中的. 加参数 -o 只显示匹配到的字符)
也可以通过grep 加正则的形式筛选出访问量前3的ip
只要思路清楚,命令可以一直通过练习加强
学习方法:学习shell脚本编程的时候,可以把平时用python写的代码转化成shell脚本用来练习
将topics后面的数字替换成number
grep 'topics' nginx.log | sed 's@/topics/[0-9]*@/topics/numbers@g'
分析:注意??sed 's后的/可以用@替换,或者其他#、*都可以,为了区别于其他的/
将IP地址横向打印
awk '{print $1}' nginx.log |sed ':f;N;s/\n/|/g;tf'
分析: sed的标记和跳转用法; 标记在前面 f(前面可以加f、1等任意字符):,;tf后面跳转也是
使用该命令后的效果:将一行一行的ip转换成一行,并用|隔开
内容总结
以上是互联网集市为您收集整理的三剑客实战Nginx日志分析全部内容,希望文章能够帮你解决三剑客实战Nginx日志分析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。