首页 > 系统相关 >nginx日志分析: 每小时请求量最高的IP

nginx日志分析: 每小时请求量最高的IP

时间:2023-09-26 11:58:07浏览次数:42  
标签:10 IP nginx logname print awk 日志

按小时来统计, 当前指定日志的每小时最高流量的前10个IP, 并显示出请求的状态码.

nginx.conf中配置的日志格式为:

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

# 功能: 按小时来统计, 当前指定日志的每小时最高流量的前10个IP, 并显示出请求的状态码.
# 使用方法: "./analysis_logs_with_nginx.bash 路径/日志文件名"
# 制作人: zl
# 制作时间: 2023.09.26

#!/bin/bash

# 接收指定的文件名
logname=$1

# 获取日志记录的最新的一条的小时数
ntime=$(tail -n 1 $logname | awk '{print $4}' | grep -oE "[0-9][0-9][0-9][0-9]:[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" | awk -F: '{print $2}')

# 获取指定日志的当前年份
cyear=$(tail -n 1 $logname | awk '{print $4}' | grep -oE "[0-9][0-9][0-9][0-9]:[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" | awk -F: '{print $1}')

# 按指定日志记录的最大时间,开始循环输出统计结果
i=0
while [ $i -le $ntime ]
do
# 判断1-9点之间时拼接小时字符串, 否则跳过
if [ $i -lt 10 ];
then 
ctime="0$i" 
else
ctime="$i"
fi
# 统计并显示指定日志文件中每小时请求次数最高的前10个IP
echo "以下为$logname日志中, $ctime点00分~59分时间段内, 请求最高的10个IP值: "
cat $logname | grep "$cyear:$ctime:" | awk '{print $1,$9}' | sort | uniq -c | sort -rn | head -10
((i++))
echo -e "\n"
done

 

标签:10,IP,nginx,logname,print,awk,日志
From: https://www.cnblogs.com/zhaolongisme/p/17729758.html

相关文章

  • IP协议:连接你我,掌握互联网的关键
    IP基本认识在之前的章节中,我们已经详细介绍了应用层和传输层的相关概念和原理,了解了进程之间如何进行可靠的数据传输。我们知道,传输层的头部包含了进程所使用的端口信息,这是为了确保数据能够正确地传递到目标进程。今天,我们将进一步探讨网络层的IP协议,以了解主机之间如何进行通......
  • 易基因:ChIP-seq揭示组蛋白修饰H3K27me3调控高温下棉花的雄性不育机制|Plant Com
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。气候变化导致极端天气事件更加频繁地发生,包括反常的高温(hightemperature,HT),HT胁迫对作物的生长发育和产量有严重的负面影响,如平均生长温度每升高1°C,水稻产量就会下降10%,这一下降主要是由于对生殖发育的影响。棉花(Gos......
  • nginx-clojure nginx 1.25.2 版本docker 镜像
    主要是测试下nginx-clojure有nginx1.25.2的兼容性,顺便基于原有的构建弄一个方便测试的debug版本的镜像构建构建命令实际结合业务修改下./configure--prefix=--sbin-path=nginx--conf-path=conf/nginx.conf--error-log-path=logs/error.log--http-log-path......
  • centos配置nginx防盗链
    一、全站的防盗链方法在sudovi/etc/nginx/conf.d/default.conf(nginx安装方式不一样,配置文件位置也不一样) 文件要添加防盗链的server段里添加下面的代码:location~.*\.(gif|jpg|jpeg|png|bmp|swf)${valid_referersnoneblocked192.168.10.111;#改成自己的if($......
  • Comparing QCN9274 and QCN9074: WPA3 Support in Qualcomm Wi-Fi Chips
    EnhancingIndustrialWirelessSecuritywithWPA3-CapableRouterBoardsandNetworkCardsIntoday'sindustriallandscape,wirelessconnectivityplaysapivotalroleinoptimizingoperations,monitoringequipment,andfacilitatingdataexchange.Howeve......
  • apache日志类型及作用
    apache标准中规定了4类日志: 错误日志 访问日志 传输日志 Cookie日志 其中:传输日志和Cookie日志被Apache2.0认为已经过时,同时错误日志和访问日志被Apache2.0+默认设置 访问日志 访问服务器的远程机器的地址:可以得知浏览者来自何方 浏览者访问的资源:可以得知......
  • nginx服务器,从access_log里面提取需要的数据
    #!/bin/bash#author:xxxstart_time=`date+'%d/%b/%Y:%H:00:00'-d'-1hours'`end_time=`date+'%d/%b/%Y:%H:59:59'-d'-1hours'`#echo$start_time#echo$end_time#每小时运行一次#cat/data/log/nginx/xxx.com|grep'......
  • 490_用iPad学习,这个PDF阅读器果然给力!
    这是一篇原发布于2020-02-2115:06:00得益小站的文章,备份在此处。iPad自诞生以来似乎一直处于一种“鸡肋”的状态,而最近手机大屏化的趋势,使得iPad的生存空间又进一步缩小了。有多少人抱着获取一部生产力工具的想法购买了iPad,却又以“买后爱奇艺”的结局告终。是iPad真的鸡肋吗?我......
  • 无涯教程-JavaScript - STANDARDIZE函数
    描述STANDARDIZE函数从以均值和standard_dev为特征的分布返回归一化值。语法STANDARDIZE(x,mean,standard_dev)争论Argument描述Required/OptionalXThevalueyouwanttonormalize.RequiredMeanThearithmeticmeanofthedistribution.RequiredStandard_de......
  • pip安装包如何强制使用源码构建
    pip--no-binary是pip命令的一个选项,用于控制是否从二进制分发包中下载Python包。当您使用pip安装Python包时,默认情况下,pip会尝试从预编译的二进制分发包中下载包,以提高安装速度。但有时候,您可能希望强制pip从源代码构建包,而不是使用预编译的二进制包,这可以在以下情况......