如何分析Nginx日志?常用命令有哪些?

Nginx日志分析常用命令

一、IP相关统计

分析nginx日志常用命令

1、统计IP访问量:通过提取日志中的IP地址列,使用awk命令进行统计。

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

2、查看某一时间段的IP访问量:查看5-6点的IP访问量。

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

3、查看访问最频繁的10个IP

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

4、查询某个IP的详细访问情况:按访问频率排序,例如查询IP 172.168.1.10的访问详情。

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

二、页面访问统计

1、查看访问最频繁的页面(TOP10)

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

2、查看访问最频繁的页面(排除php页面)(TOP10)

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

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

分析nginx日志常用命令

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

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

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

三、请求量统计

1、每秒请求数TOP10的时间点(精确到秒)

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

2、每分钟请求数TOP100的时间点(精确到分钟)

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

3、每小时请求数TOP100的时间点(精确到小时)

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

四、性能分析

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

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

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

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

五、蜘蛛抓取统计

1、统计蜘蛛抓取次数

分析nginx日志常用命令

   grep 'Baiduspider' access.log | wc -l

2、统计蜘蛛抓取404的次数

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

六、TCP连接统计

1、查看当前TCP连接数

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

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

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

七、实例脚本

1、获取前一分钟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

2、获取前一分钟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

相关问题与解答

问题一:如何统计独立IP数?

答案:可以使用以下命令来统计独立IP数:

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

问题二:如何统计每秒客户端请求数TOP5的时间点(精确到秒)?

答案:可以使用以下命令来统计每秒客户端请求数TOP5的时间点(精确到秒):

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

到此,以上就是小编对于“分析nginx日志常用命令”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/674911.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-11-25 18:18
Next 2024-11-25 18:21

相关推荐

  • 如何分析Nginx日志并屏蔽采集者IP?

    分析Nginx日志并屏蔽采集者IP在现代网络环境中,Web服务器的日志文件是了解网站运行状态、用户行为和潜在安全威胁的重要工具,Nginx作为高性能的Web服务器,其日志记录功能非常强大且灵活,能够详细记录每一个HTTP请求的信息,本文将详细介绍如何通过分析Nginx日志来识别并屏蔽采集者IP,以保障网站的安全……

    2024-11-25
    06
  • 如何分析Nginx日志脚本?

    分析Nginx日志脚本1. 引言Nginx是一款高性能的HTTP服务器和反向代理服务器,广泛用于互联网服务,为了优化性能和监控网站状态,分析Nginx日志是必要的工作,本文将介绍如何编写脚本来分析Nginx日志,以提取有用的信息,2. Nginx日志格式在开始编写脚本之前,我们需要了解Nginx日志的格式,Ng……

    2024-11-25
    04
  • 如何高效分析与处理Nginx日志以优化网站性能?

    分析处理nginx日志Nginx是一款高性能的HTTP和反向代理服务器,广泛用于负载均衡、静态内容服务以及作为反向代理,在日常运维过程中,监控和分析Nginx日志是非常重要的,它帮助我们了解服务器运行状态、用户行为以及排查问题,本文将介绍如何分析处理Nginx日志,Nginx日志类型Nginx主要生成两种类型的……

    2024-11-26
    04

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入