Nginx 分析access日志文件

Nginx Access Log日志统计分析常用命令

IP相关统计

统计IP访问量

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

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

grep "07/Apr/2017:0[4-5]" access.log | awk ‘{print $1}‘ | sort | uniq -c| sort -nr | wc -l   

查看访问最频繁的前100个IP

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

查看访问100次以上的IP

awk ‘{print $1}‘ access.log | sort -n |uniq -c |awk ‘{if($1 >100) print $0}‘|sort -rn

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

grep ‘104.217.108.66‘ access.log |awk ‘{print $7}‘|sort |uniq -c |sort -rn |head -n 100   

页面访问统计

查看访问最频的页面(TOP100)

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

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

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

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

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

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

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

每秒请求量统计

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

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

每分钟请求量统计

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

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

每小时请求量统计

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

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

性能分析

在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

蜘蛛抓取统计

统计蜘蛛抓取次数

grep ‘Baiduspider‘ access.log |wc -l

统计蜘蛛抓取404的次数

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

TCP连接统计

查看当前TCP连接数

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

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

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." ‘{print $1"."$2"."$3"."$4}‘ | sort | uniq -c | sort -nr
时间: 2024-11-04 11:51:29

Nginx 分析access日志文件的相关文章

分析ngnix日志文件的开发程序记录

package com.school.statistics; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; impor

从Nginx的access日志统计PV、UV和热点资源

需求: 在阿里云-CDN管理控制台的监控页面里,有对PV.UV和热点资源的统计.于是自己也写了脚本来获取相关数据. 分析: PV:指网站的访问请求数.包含同一来源IP的多次请求. UV:值网站的独立访客数.同一来源IP的多次请求只计算一次. 来看一条Nginx的access日志信息: # head -1 access.log  192.165.158.238 - - 2017-03-06T20:47:04+08:00 "GET http://download.helloworld.com/ HT

如何分析网站日志文件

很多新手站长对于如何分析网站日志文件一筹莫展,打开.log日志文件看到的只有密密麻麻的数字和字母,细看能看出是什么含义,但是想要系统科学的去进行分析太耗时间,这时一般只能借助于第三方日志分析软件,而下面介绍一种不需要下载日志分析软件即可很有效率地分析log文件的方法: 步骤一:下载你的网站日志文件并打开,选择编辑替换功能,将空格替换成英文逗号: 步骤二:打开替换好的日志文件选择文件另存为,保存类型改成所有文件,文件名后缀为csv,比如log.csv,然后点击保存: 步骤三:新建一个excel表格

python实现对nginx的access日志的统计

老板有一个要求,说要看到一个url每日的访问量,然而系统在开发的时候并没有做这样的计数,于是我就想到,由于前段负载使用nginx做的,有access日志,尝试了一下从access日志中将结果分析出来,最终的效果是实现了,也许效率不是那么高,逻辑不是那么合理,起码效果达到了,本人菜鸟一个,如有不对,请不要喷,交流而已,对则对,不对交流. 脚本内容奉上: #!/usr/bin/python # _*_coding:utf-8 _*_ import os import shutil import sy

在Linux上使用logwatch分析监控日志文件

原文:http://seanlook.com/2014/08/23/linux-logwatch-usage/ 1. 介绍 在维护Linux服务器时,经常需要查看系统中各种服务的日志,以检查服务器的运行状态. 如登陆历史.邮件.软件安装等日志.系统管理员一个个去检查会十分不方便:且大多时候,这会是一种被动的检查,即只有在发现系统运行异常时才会想到去查看 日志以获取异常的信息.那么如何主动.集中的分析这些日志,并产生报告,定时发送给管理员就会显得十分重要. logwatch 是一款用 Perl 语

使用Mtools分析MongoDB日志文件

一 Mtools介绍 mtools是一组用来解析和过滤MongoDB日志文件的脚本.mtools包括以下几个工具: mlogfilter    可以根据时间切割日志文件,过滤慢查询等 mloginfo      返回日志文件信息,比如开始和结束时间等 mplotqueries   对日志文件进行视图展现 mlogvis      创建一个自定义html文件交互式展现 mlaunch      快速搭建本地测试环境,包括复制集合分片系统 mtools是用python写的,需要python2.6或者

分析IIS日志文件

"D:\Program Files (x86)\Log Parser 2.2\logparser.exe" "SELECT * FROM 'D:\u_ex160405.log' to MyMVC_WebLog" -i:IISW3C -o:SQL -oConnString:"Driver={SQL Server};server=RPBPC7OICVYFNTK\MSSQL2008R2;database=MyTestDb;Integrated Security=

nginx日志分析 Awstats日志工具

很多PHP搭建的网站都在由apache转向了nginx.nginx的日志信息如何分析呢?推荐一款结果信息非常详尽的开源工具——Awstats ,它基于perl编写,它的介绍如下: AWStats is a free powerful and featureful tool that generates advanced web, streaming, ftp or mail server statistics, graphically. This log analyzer works as a

向nginx发送reopen信号以重新打开日志文件

先移动日志文件 mv /usr/local/openresty/nginx/logs/access.log /usr/local/openresty/nginx/logs/access.log.20161024 发送信号重新打开日志文件 kill -USR1 $(cat /usr/local/openresty/nginx/logs/nginx.pid) 简单说明一下: 1.在没有执行kill -USR1 `cat ${pid_path}`之前,即便已经对文件执行了mv命令也只是改变了文件的名称