nginx日志统计分析-shell

摘要:
nginx日志分析常用命令,包括IP相关统计、页面访问统计、性能分析、蜘蛛抓取统计、TCP连接统计等相关命令的总结1.IP相关统计1.1ip访问量统计awk'{print$1}'access.log|sort-n|uniq|wc-l1.2查看某一时间段的IP访问量(5-6点)grep"07/Jan/2019:0[5-6]"access.log|awk'{print$1}'|sort|uniq-c|

nginx日志分析常用命令,包括IP相关统计、页面访问统计、性能分析、蜘蛛抓取统计、TCP连接统计等相关命令的总结

1. IP相关统计

1.1 ip访问量统计

awk '{print $1}' access.log | sort -n | uniq | wc -l

1.2 查看某一时间段的IP访问量(5-6点)

grep "07/Jan/2019:0[5-6]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l

1.3 查看访问最频繁的10个ip

awk '{print $1}' access.log | sort -n |uniq -c | sort -rn | head -n 10

1.4 查询某个IP的详细访问情况,按访问频率排序

grep '172.168.1.10' access.log |awk '{print $7}'|sort |uniq -c |sort -rn |head -n 10

2.页面统计访问

2.1 查看访问最频的页面(TOP10)

awk '{print $7}' access.log | sort |uniq -c | sort -rn | head -n 10

2.2 查看访问最频的页面([排除php页面】(TOP10)

grep -v ".php" access.log | awk '{print $7}' | sort |uniq -c | sort -rn | head -n 10

2.3 查看页面访问次数超过100次的页面

cat access.log | cut -d ' ' -f 7 | sort |uniq -c | awk '{if ($1 > 100) print $0}' | less

2.4 查看最近1000条记录,访问量最高的页面

tail -1000 access.log |awk '{print $7}'|sort|uniq -c|sort -nr|less

3. 请求量统计

3.1统计每秒的请求数,top10的时间点(精确到秒)

awk '{print $4}' access.log |cut -c 14-21|sort|uniq -c|sort -nr|head -n 100

每分钟请求量统计

3.2 统计每分钟的请求数,top100的时间点(精确到分钟)

awk '{print $4}' access.log |cut -c 14-18|sort|uniq -c|sort -nr|head -n 100

每小时请求量统计

3.3 统计每小时的请求数,top100的时间点(精确到小时)

awk '{print $4}' access.log |cut -c 14-15|sort|uniq -c|sort -nr|head -n 100

4.性能分析

在nginx log中最后一个字段加入$request_time

列出传输时间超过3秒的页面,显示前20条

cat access.log|awk '($NF > 3){print $7}'|sort -n|uniq -c|sort -nr|head -20

列出php页面请求时间超过3秒的页面,并统计其出现的次数,显示前100条

cat access.log|awk '($NF > 1 && $7~/.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100

5.蜘蛛抓取统计

5.1统计蜘蛛抓取次数

grep 'Baiduspider' access.log |wc -l

5.2 统计蜘蛛抓取404的次数

grep 'Baiduspider' access.log |grep '404' | wc -l

6. TCP链接统计

6.1 查看当前TCP连接数

netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l

6.2 用tcpdump嗅探80端口的访问看看谁最高

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr

实例脚本

获取前一分钟nginx访问日志条数

#!/bin/bash

export LANG=C
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
TIME=$(date -d "1 minute ago" +"%d/%h/%Y:%H:%M")

grep "$TIME" /var/log/nginx/access.log | wc -l

获取前一分钟nginx错误日志条数

#!/bin/bash

export LANG=C
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
TIME=$(date -d "1 minute ago" +"%Y-%m-%d %H:%M")

grep "$TIME" /var/log/nginx/error.log | wc -l

原文链接:https://blog.csdn.net/wanchaopeng/article/details/86235893

免责声明:文章转载自《nginx日志统计分析-shell》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring学习笔记(14)——SpELnmcli命令使用以及网卡绑定bond下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

HTTP访问控制(CORS)

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS 当一个资源请求一个其它域名或者另外一个端口的资源时会产生一个跨域HTTP请求(cross-origin HTTP request)。比如说,http://domaina.example的某HTML页面通过 <im...

SpringDataJPA对数据库的操作的几种方式

1:SpringDataJPA是JPA规范的再次封装抽象,底层还是使用了Hibernate的JPA技术实现,是属于Spring的生成体系中的一部分 2:SpringData的结构(七个接口) 操作数据库的方式一:继承JpaRepository口后操作数据库   1:在Repository层新建一个基础接口   1 @NoRepositoryBean /...

Access-Control-Allow-Origin跨域解决及详细介绍

重要声明:本文章仅仅代表了作者个人对此观点的理解和表述。读者请查阅时持自己的意见进行讨论。 本文更新不及时,建议到原文地址浏览:跨域解决及详细介绍。 首先,跨域不是问题。是一种安全机制。 这是你在开发时、上线前就必须提前考虑到的安全问题并且采取合适的手段去避免这个问题带来的程序错误。 一、跨域是什么 跨域是浏览器加载了与当前域名、协议、端口不同另一站点...

在CentOS上安装和配置Guacamole

一、环境说明 操作系统:CentOS 6.4 x86_64 主机IP:192.168.38.20 登录账户:root 二、安装编译和运行环境 1. 关闭防火墙 在Shell中运行以下命令: chkconfig iptables off service iptables stop 2. 修改SELinux运行模式 在Shell中运行以下命令: se...

【mongoDB中级篇②】索引与expain

索引的操作 数据库百分之八十的工作基本上都是查询,而索引能帮我们更快的查询到想要的数据.但是其降低了数据的写入速度,所以要权衡常用的查询字段,不必在太多字段上建立索引. 在mongoDB中默认是用btree来组织索引文件,并且可以按字段升序/降序来创建,便于排序. 数据准备 for (var i = 1; i <100000; i++) { db...

RAC一个节点自动重启问题分析

题记:在RAC数据库的故障当中,节点重启的现象很常见,在这种问题的处理当中,有一定的规律性。为了更好的说明这个问题的处理过程,保证出现该类问题的时候,能够有序的进行处理,特编写此文档。  问题现象描述   此问题的现象比较明显,也就是数据库自动重启,或者是节点自动重启,客户端在数据库重启期间无法连接数据库,导致业务断连的现象。这种情况如果出现在业务高峰期间...