首页 > 系统相关 >Linux下通过Nginx日志分析网站访问情况

Linux下通过Nginx日志分析网站访问情况

时间:2023-08-08 18:55:45浏览次数:51  
标签:sort log nginx 访问 Nginx awk Linux print 日志

1. 前言

作为一位站长, 了解网站的访问情况是日常的重要内容, 以下就是关于通过Nginx日志了解访问情况的一些常用命令.
这里罗列于此, 希望对您有所帮助, 更多关于开发, 运维, 以及产品方面的文章请访问鹏叔的技术博客空间, 该博客空间中涉及到的技术都是鹏叔在开发与维护网站过程中总结出来的.

2. 访问IP相关统计

2.1. 统计IP访问量(PV)


awk '{print $7}' /var/log/nginx/access.log | wc -l

2.2. 独立IP访问统计(UV)


awk '{print $7}' /var/log/nginx/access.log | sort -n | uniq |wc -l

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

grep '21/Jul/2023:0[4-5]' /var/log/nginx/access.log | awk '{print $1}' | sort -n | uniq | sort -nr |wc -l

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

 awk '{print $1}' /var/log/nginx/access.log  | sort -n | uniq -c | sort -nr | head -n  100

2.5. 查看访问次数在100次以上的IP

 awk '{print $1}' /var/log/nginx/access.log  | sort -n | uniq -c |  awk '{if($1 >100) print $0}' |  sort -nr 

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


grep '127.0.0.1' /var/log/nginx/access.log | awk '{print $1,$7}' | uniq -c | sort -rn | head -n 100

3. 页面访问统计

3.1. 查看访问最频繁的页面(top 50)

awk '{print $7}' /var/log/nginx/access.log  | sort | uniq -c | sort -rn | head -n 50

3.2. 查看访问最频繁的页面(排除js, css, 字体等页面)(top 50)

grep -vE '.js|.woff2|.woff|.css|.ico' /var/log/nginx/access.log | awk '{print $7}'  | sort | uniq -c | sort -rn | head -n 50

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


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

3.4. 查看最近1000条记录中访问量最高的页面


tail -1000 /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -rn | less

4. 请求量统计

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


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

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


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

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


awk '{print $4}' /var/log/nginx/access.log | cut -c 14-15| sort | uniq -c | sort -rn| head -n 10

5. 性能分析

前置条件:在nginx的log中最后一个字段加入$request_time

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

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

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

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

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 -rn 

搜索引擎蜘蛛访问行为

查看有哪些搜索引擎蜘蛛来过

cat /var/log/nginx/access.log |  grep sitemap

7. 后记

更多Nginx相关文章请访问 鹏叔的技术博客空间 - nginx专题

8. 参考文档

nginx 统计请求次数_Linux下通过Nginx日志分析网站访问情况的常用命令

标签:sort,log,nginx,访问,Nginx,awk,Linux,print,日志
From: https://www.cnblogs.com/guoapeng/p/17615154.html

相关文章

  • linux系统部署时间服务器
    1、安装NTPyum-yinstallntp2、启动NTP服务systemctlstartntpdsystemctlenablentpd3、查看NTP服务systemctlstatusntpd4、修改NTP配置文件vim/etc/ntp.conf5、重启NTP服务systemctlrestartntpd6、检查NTP同步状态ntpq-p7、使用ntpd命令同步ntpdatentp.aliyun.com8、查......
  • linux安装tcping工具包
    一、需求  tcping集成了ping和telnet的功能,有些时候为了直接测试网络和端口是否可达,可以考虑直接安装这个工具二、安装步骤2.1下载tcping工具和上传 2.2解压安装 2.3安装编译工具   由于没有外网,首先需要搭建本地yum源,备份本地repo文件,新建本地yum文件 ......
  • 在windows上使用_netrc文件让Git记住用户名和密码(Linux文件名为.netrc)
    windowsnetrc文件是什么。根据我搜索到的结果,windowsnetrc文件是一种用于保存网络身份验证信息的文件,例如用户名和密码。它可以被一些命令行工具和应用程序使用,比如Git、curl、ftp等。windowsnetrc文件的格式如下:machine<hostname>login<username>password<password>......
  • Linux异步通知---fasync_helper()、kill_fasync()函数介绍与使用
    转载:Linux异步通知---fasync_helper()、kill_fasync()函数介绍与使用_面朝大海0902的博客-CSDN博客一、fasync_helper()与kill_fasync()函数应用程序通过fcntl置FASYNC标志位,触发对应驱动文件的fasync()函数执行(上节有解释原因Linux异步通知—signal()、fcntl()函数介绍与使用),该......
  • linux I/O性能优化
    Linux文件系统磁盘和文件系统的关系:磁盘为系统提供了最基本的持久化存储。文件系统则在磁盘的基础上,提供了一个用来管理文件的树状结构。文件系统工作原理索引节点和目录项文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统......
  • 深入理解Linux内核——内存管理(1)
    提要:系列文章主要参考MIT6.828课程以及两本书籍《深入理解Linux内核》``《深入Linux内核架构》对Linux内核内容进行总结。内存管理的实现覆盖了多个领域:内存中的物理内存页的管理分配戴爱内存的伙伴系统分配较小内存的slab、slub、slob分配器分配非连续内存块的vmalloc分配......
  • ghost-on-docker、nginx-proxy-manager install
    #ghost安装dockerrun-d--nameblog-ghost-eNODE_ENV=development-edatabase__connection__filename='/var/lib/ghost/content/data/gggdb.db'-p8080:2368-v/path/to/ghost/blog:/var/lib/ghost/contentghost#nginx-proxy-manager中文安装docker-compose.yml......
  • linux学习,模拟资源占用
    公司有一些云服务器,在华为云上,很多云服务器资源占用率不高,处于空闲状态。我担心领导检测到这些资源空闲的云服务器,会要求我们降低配置,同时会降低云服务器的采购预算。所以就想写一个shell脚本,模拟资源占用思路使用stress对内存进行压测,占用剩余内存的80%,可以模拟CPU和内存消耗使用d......
  • Log4netHelper, 支持自定义日志文件生成间隔
    usinglog4net;usinglog4net.Appender;usinglog4net.Config;usinglog4net.Repository;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingstaticlog4net.Appender.FileAppender;namespa......
  • Linux防火墙firewalld&iptables(2)iptables开放指定端口开放指定端口
    一、CentOs6iptables基本操作#chkconfig--list|grepiptables 查看防火墙的服务#chkconfigiptablesoff 永久关闭防火墙#chkconfigiptableson 永久开启防火墙#servicestatusiptables 查看防火墙状态#servicestartiptables 启动防火墙#servicestopiptab......