本文介绍在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 "\t" $15 "\t" $17 "\t" $20 "\t" $19}' | sort |uniq -c | sort -nr | head -20
本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/p/15095203.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
2019-08-03 golang中使用etcd
2019-08-03 etcd使用
2019-08-03 etcd
2018-08-03 CentOS7.x系统根目录分区扩容