shell脚本-Nginx访问日志分析

这篇具有很好参考价值的文章主要介绍了shell脚本-Nginx访问日志分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

shell脚本-Nginx访问日志分析

1.原理

可以通过/usr/local/nginx/logs/access.log 文件-查看nginx的日志

[root@localhost scripts]# tail -f /usr/local/nginx/logs/access.log  
192.168.70.1 - [17/Jul/2023:17:35:21 +0800] "GET / HTTP/1.1" 200 173833 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.82" "-"
192.168.70.1 - [17/Jul/2023:20:53:37 +0800] "GET / HTTP/1.1" 200 173833 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.82" "-"

/usr/local/nginx/conf/nginx.conf 文件-定义了日志输出的格式

shell脚本-Nginx访问日志分析

可以通过awk命令来取出所需要的数据

[root@localhost scripts]# awk '{print $0}' /usr/local/nginx/logs/access.log
192.168.70.1 - [17/Jul/2023:17:35:21 +0800] "GET / HTTP/1.1" 200 173833 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.82" "-"
192.168.70.1 - [17/Jul/2023:20:53:37 +0800] "GET / HTTP/1.1" 200 173833 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.82" "-"

[root@localhost scripts]# awk '{print $1}' /usr/local/nginx/logs/access.log
192.168.70.1
192.168.70.1

2.shell脚本

Nginx访问日志分析脚本文章来源地址https://www.toymoban.com/news/detail-574333.html

#!/bin/bash
# 1.访问最多的IP
# 2.根据时间段来访问最多的IP
# 3.访问量超过2次的页面
# 4.访问页面状态码数量

LOG_FILE=$1
echo "统计访问最多的10个IP"
awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print a[v] v}' $LOG_FILE |  sort -k1 -nr | head -10
echo "----------------------------------------"

echo "统计一个时间段访问最多的10个IP"
awk '$3>="[16/Jul/2023:17:35:21" && $3<="[17/Jul/2023:18:00:00"{a[$1]++}END{print "UV:",length(a);for(v in a)print a[v] v}' $LOG_FILE |  sort -k1 -nr | head -10
echo "----------------------------------------"

echo "统计访问量超过2次的页面"
awk '{a[$7]++}END{print "PV:",length(a);for(v in a){if(a[v]>2)print a[v],v}}' $LOG_FILE | sort -k1 -nr
echo "----------------------------------------"

echo "统计访问页面状态码数量"
awk '{a[$7" "$8]++}END{for(v in a)print a[v],v}' $LOG_FILE | sort -k1 -nr
[root@localhost scripts]# bash 13.sh /usr/local/nginx/logs/access.log 
统计访问最多的10个IP
2192.168.70.1
UV: 1
----------------------------------------
统计一个时间段访问最多的10个IP
1192.168.70.1
UV: 1
----------------------------------------
统计访问量超过2次的页面
PV: 1
----------------------------------------
统计访问页面状态码数量
2 HTTP/1.1" 200

到了这里,关于shell脚本-Nginx访问日志分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包