三剑客实战Nginx日志分析

学习资料

  • 高级Bash脚本编程指南
  • LINUX与UNIX SHELL编程指南
  • 鸟哥的Linux私房菜
  • IBM DeveloperWorks
  • 阮一峰的《bash脚本教程》
  • Google

实战内容

  • 日志数据检索
  • find_error_log

    编写一个函数 find_error_log()

    1.找出log中的404 500的报错 个数考察严谨性
    • awk '$9~/404|500/{print $9}' nginx.log |sort|uniq -c
    • .2.找出500错误时候的上下文 考察grep高级用法
      • grep -C 2 ' 500 ' nginx.log
  • 日志数据统计
    • 找出访问量最高的ip top10统计分析
      • awk '{print $1}' nginx.log|sort -nr|uniq -c|sort -nr|head -10
  • 数据文件修改
    • 找出访问量最高的页面地址 借助于sed的统计分析
      • awk -F " " '{print $7}' nginx.log | sed -e 's#/topics/[0-9]*/replies/[0-9]*/edit#/topics/int/replies/int/edit#g' |sed -e 's#/_img/uploads/photo/2018/[0-9a-zA-Z]*-.*#/_img/uploads/photo/2018/id.png!large#g'|sed -e 's#/topics/[0-9]*#/topics/int#g'|sort -nr -t'/'|uniq -c|sort -rn |head -20
      • url_avg_time
      • 统计访问首页路径 / 的平均响应时间

      • less nginx.log |awk '$7=="/"{print $0}'|grep -n '/'|awk '{t+=$(NF-2)}END{print t/NR}'
      • 性能统计

        打印阿里云盾进程的cpu、mem利用率与平均利用率。

      • top -b -d 1 -n 10|grep -i 'aliyundun$' --line-buffered |awk '{c+=$9;n+=$10;print $9,$10}END{print ""; print "CPU平均使用率为:" c/NR,"平均内存使用率:"n/NR}'   
原文地址:https://www.cnblogs.com/zwldyt/p/13022238.html