nginx日志统计分析

本文主要使用的是grep,awk,cut等工具来对nginx日志进行统计和分析,具体如下:

1,列出当天访问最多次数的ip地址

cut -d- -f 1 /usr/local/nginx/logs/20160329/access_2016032913.log |uniq -c | sort -rn | head -20

[[email protected] 20160329]# cut -d- -f 1 /usr/local/nginx/logs/20160329/access_2016032913.log |uniq -c | sort -rn | head -20  
     69 180.116.214.31 
     45 180.116.214.31 
     45 180.116.214.31 
     36 49.80.54.111 
     35 183.206.185.204 
     35 180.116.214.31 
     32 49.80.54.111 
     32 49.80.54.111 
     32 180.116.214.31 
     31 117.136.45.101 
     29 180.116.214.31 
     28 218.205.19.112 
     28 180.116.214.31 
     28 180.116.214.31 
     27 49.80.54.111 
     27 222.185.248.242 
     24 49.80.54.111 
     24 175.0.8.161 
     23 49.80.54.111 
     23 49.80.54.111

2,查看某一个页面被访问的次数

[[email protected] 20160329]#grep "/index.php" log_file | wc -l

3,查看每一个IP访问了多少页面并排序

awk ‘{++S[$1]} END {for (a in S) print a,S[a]}‘ access_2016032913.log |uniq|sort -rn|more

[[email protected] 20160329]# awk ‘{++S[$1]} END {for (a in S) print a,S[a]}‘ access_2016032913.log |uniq|sort -rn|more
223.94.229.51 148
223.73.166.191 1
223.68.252.103 156
223.68.167.66 2
223.68.106.138 43
223.67.99.72 7
223.67.153.173 12
223.66.93.152 15
223.66.38.31 103
223.65.191.181 1
223.65.191.135 11
223.65.190.71 13
223.65.141.78 3
223.64.63.71 31
223.64.63.229 7
223.64.62.242 59
223.64.62.23 27
223.64.62.216 1
223.64.62.160 40
223.64.61.136 28
223.64.60.80 13
223.64.60.21 12
223.64.237.37 187
223.64.209.247 2
223.64.158.4 15

其中,sort -rn 按照数字从大到小排序,uniq 将重复行去除。

4,查看某一个ip访问了那些页面:grep ^xx.xx.xx.xx log_file |awk ‘{print $1,$7}‘

[[email protected] 20160329]# grep ^223.147.39.194 17 access_2016032913.log |awk ‘{print $1,$7}‘          grep: 17: No such file or directory
access_2016032913.log:223.147.39.194 //customer/customerInfo/getCustUnReadMsgInfo.json
access_2016032913.log:223.147.39.194 //customer/customerInfo/getCustUnReadMsgInfo.json
access_2016032913.log:223.147.39.194 //remind/redDot/checkRedDot.json
access_2016032913.log:223.147.39.194 //remind/redDot/checkRedDot.json
access_2016032913.log:223.147.39.194 //thirdpartyapi/appaction/app_action/action_send_batch.json
access_2016032913.log:223.147.39.194 //customer/customerInfo/getCustUnReadMsgInfo.json
access_2016032913.log:223.147.39.194 //customer/customerInfo/getCustUnReadMsgInfo.json
access_2016032913.log:223.147.39.194 //remind/redDot/checkRedDot.json
access_2016032913.log:223.147.39.194 //remind/redDot/checkRedDot.json
access_2016032913.log:223.147.39.194 //customer/customerInfo/getCustUnReadMsgInfo.json
access_2016032913.log:223.147.39.194 //customer/customerInfo/getCustUnReadMsgInfo.json
access_2016032913.log:223.147.39.194 //remind/redDot/checkRedDot.json
access_2016032913.log:223.147.39.194 //remind/redDot/checkRedDot.json
access_2016032913.log:223.147.39.194 //customer/customerInfo/getCustUnReadMsgInfo.json
access_2016032913.log:223.147.39.194 //customer/customerInfo/getCustUnReadMsgInfo.json
access_2016032913.log:223.147.39.194 //remind/redDot/checkRedDot.json
access_2016032913.log:223.147.39.194 //remind/redDot/checkRedDot.json

5,去掉搜索引擎统计当天的页面:awk ‘{print $12,$1}‘ access_2016032913.log | grep ^\"Mozilla | awk ‘{print $2}‘ |sort | uniq | wc -l

[[email protected] 20160329]# awk ‘{print $12,$1}‘ access_2016032913.log | grep ^\"Mozilla | awk ‘{print $2}‘ |sort | uniq | wc -l      
35

6,查看一个小时内有多少ip访问:

[[email protected] 20160329]# awk ‘{print $4,$1}‘ access_2016032913.log | grep 29/Mar/2016:13 | awk ‘{print $2}‘| sort | uniq | wc -l   
1926
时间: 2024-10-21 06:59:04

nginx日志统计分析的相关文章

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

Nginx Access Log日志统计分析常用命令 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

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

Nginx Access Log日志统计分析常用命令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 查看某个时间点的IP访问量(

python处理nginx日志,并统计分析---我这个写的处理时间效率不高,有好方法,请大家指正

实际工作中,恰好需要处理一个nginx日志,做个简单的分析: 引子: 开发已经有日志分析平台和工具,但为了查一个问题,需要分析原始日志. 要求: 原始日志的倒数第二个字段不为空且不为'-'的情况下,统计倒数第四个字段不为空且不为'-'的且不重复的个数. python脚本如下: #!/usr/bin/env  python #encoding=utf-8 # nginx_log_analysis.py FileHd = open('aaa.com_access.log-20160506','r')

Nginx日志分析

日志服务支持通过数据接入向导配置采集Nginx日志,并自动创建索引和Nginx日志仪表盘,达到快速采集并分析Nginx日志. 很多个人站长选取Nginx作为服务器搭建网站,在对网站访问情况进行分析时,需要对Nginx访问日志统计分析,从中获得网站的访问量,访问时段等访问情况,传统模式下利用CNZZ模式,在前端页面插入js,用户访问的时候触发js,但只能记录页面的访问请求,像ajax之类的请求是无法记录的,还有爬虫信息也不会记录.或者利用流计算.离线统计分析Nginx访问日志,从日志中挖掘有用信息

ELK对nginx日志进行流量监控

ELK对nginx日志进行流量监控 一.前言 线上有一套ELK单机版,版本为5.2.1.现在想把nginx访问日志接入到elk里,进行各个域名使用流量带宽的统计分析.要把nginx日志传输到elk上,可以在存有nginx日志的服务器上使用logstash或者filebeat.但是因为logstash是jvm跑的,资源消耗比较大,启动一个logstash就需要消耗500M左右的内存(这就是为什么logstash启动特别慢的原因),而filebeat只需要10来M内存资源,所以最终决定使用fileb

shell脚本分析nginx日志

第一版,比较粗糙,仅限于能用 正在写入的文件不能用tar进行压缩 --------压缩日志---------------------- 94 access.log 95 tar: access.log: file changed as we read it 96 #### 压缩日志失败 #### #!/bin/sh #分析nginx日志 DATE=`date '+%Y%m%d-%H%M'` ARCHIVE=/usr/log_bak/nginx_$DATE.tar.gz MESSAGE=/usr/

Goaccess---良心nginx日志分析工具

Goaccess是一个非常良心的开源软件,它的良心之处体现在如下方面: 1)安装简单: 2)操作容易: 3)界面酷炫: 安装Goaccess十分的简单,在centos里直接#yum install goaccess,如果yum源里没有goaccess,可以先安装epel.安装epel的方法如下: wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http://rpms.famil

Nginx日志切割并计划任务自动上传到FTP服务器

枫城浪子原创,转载请标明出处! 微信bh19890922 QQ445718526,490425557 更多技术博文请见个人博客: https://fengchenglangzi.000webhostapp.com http://fengchenglangzi.blog.51cto.com 一.简述 Nginx WEB服务器每天会产生大量的访问日志,而且不会自动地进行切割,如果持续天数访问,将会导致该access.log日志文件容量非常大,不便于SA查看相关的网站异常日志,并且后期进行分割非常不易

Flume采集Nginx日志到HDFS

下载apache-flume-1.7.0-bin.tar.gz,用 tar -zxvf 解压,在/etc/profile文件中增加设置: export FLUME_HOME=/opt/apache-flume-1.7.0-bin export PATH=$PATH:$FLUME_HOME/bin 修改$FLUME_HOME/conf/下的两个文件,在flume-env.sh中增加JAVA_HOME: JAVA_HOME=/opt/jdk1.8.0_121 最重要的,修改flume-conf.pr