zoukankan      html  css  js  c++  java
  • 在CentOS 8中,使用awk+sort+uniq进行Apache访问日志分析

    本文介绍在CentOS 8中,通过AWK、Sort、Uniq三个命令,对Apache日志进行分析。

    基础准备:
    1. 查看Apache Log的格式

    通过命令head /var/log/httpd/access_log,获取Apache日志如下。

    10.10.0.1 - - [23/Mar/2020:16:43:12 +0800] "GET /noindex/common/css/styles.css HTTP/1.1" 200 71634 "http://10.10.3.212/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0"

    2. 按照空格进行分割后,该日志可以拆解为20个字段,具体如下。

    第01字段:10.10.0.1
    第02字段:-
    第03字段:-
    第04字段:[23/Mar/2020:16:43:12
    第05字段:+0800]
    第06字段:"GET
    第07字段:/noindex/common/css/bootstrap.min.css
    第08字段:HTTP/1.1"
    第09字段:200
    第10字段:99548
    第11字段:"http://10.10.3.212/"
    第12字段:"Mozilla/5.0
    第13字段:(Windows
    第14字段:NT
    第15字段:10.0;
    第16字段:Win64;
    第17字段:x64;
    第18字段:rv:74.0)
    第19字段:Gecko/20100101
    第20字段:Firefox/74.0"

    分析案例:
    访问量最高的10个来源IP地址
    cat /var/log/httpd/access_log | awk '{print $1}' | sort | uniq -c | sort -nr | head -1

    访问次数最多的文件或页面
    cat /var/log/httpd/access_log | awk '{print $11}' | sort | uniq -c | sort -nr | head -20

    访问量最高的视频文件
    cat /var/log/httpd/access_log | awk '($7~/.css/) { print $7} ' | sort -nr | uniq -c | head -10

    文件大小超过40M的视频文件的访问量
    cat /var/log/httpd/access_log | awk '($10 > 40000000 && $7~/.mp4/){print $7}' | sort -n | uniq -c | sort -nr | head -100

    统计网站流量                                                                                                                
    cat /var/log/httpd/access_log | awk '{sum+=$10} END {print sum/1024/1024 "MB"}'

    发生404响应的用户请求
    cat /var/log/httpd/access_log | awk '($9 ~/404/)' | awk '{print $9,$7}' | sort | uniq -c

    统计http status
    cat /var/log/httpd/access_log | awk '{print $9}' | sort | uniq -c | sort -nr

    网站访问最常用的协议
    cat /var/log/httpd/access_log | awk '{print $8}' | sort | uniq -c | sort -nr

    用户访问网站最常用的浏览器
    cat /var/log/httpd/access_log | awk '{print $20}' | sort |uniq -c | sort -nr | head -20

    访问网站的客户端设备使用情况
    cat /var/log/httpd/access_log | awk '{print $16 " " $15 " " $17 " " $20 " " $19}' | sort |uniq -c | sort -nr | head -20 

  • 相关阅读:
    Benelux Algorithm Programming Contest 2016 Preliminary K. Translators’ Dinner(思路)
    Benelux Algorithm Programming Contest 2016 Preliminary Target Practice
    Benelux Algorithm Programming Contest 2016 Preliminary I. Rock Band
    Benelux Algorithm Programming Contest 2016 Preliminary A. Block Game
    ICPC Northeastern European Regional Contest 2019 Apprentice Learning Trajectory
    ICPC Northeastern European Regional Contest 2019 Key Storage
    2018 ACM ICPC Asia Regional
    2018 ACM ICPC Asia Regional
    Mybatis入库出现异常后,如何捕捉异常
    优雅停止 SpringBoot 服务,拒绝 kill -9 暴力停止
  • 原文地址:https://www.cnblogs.com/sunlong88/p/15095203.html
Copyright © 2011-2022 走看看