分析nginx中access.log日志统计状态为500

发现系统存在的问题

我们可以使用下面的命令行,统计服务器返回的状态码,发现系统可能存在的问题。

 awk ‘{print $9}‘ access.log | sort | uniq -c | sort

正常情况下,状态码 200 或 30x 应该是出现次数最多的。40x 一般表示客户端访问问题。50x 一般表示服务器端问题。

下面是一些常见的状态码:

  • 200 - 请求已成功,请求所希望的响应头或数据体将随此响应返回。
  • 206 - 服务器已经成功处理了部分 GET 请求
  • 301 - 被请求的资源已永久移动到新位置
  • 302 - 请求的资源现在临时从不同的 URI 响应请求
  • 400 - 错误的请求。当前请求无法被服务器理解
  • 401 - 请求未授权,当前请求需要用户验证。
  • 403 - 禁止访问。服务器已经理解请求,但是拒绝执行它。
  • 404 - 文件不存在,资源在服务器上未被发现。
  • 500 - 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
  • 503 - 由于临时的服务器维护或者过载,服务器当前无法处理请求。

HTTP 协议状态码定义可以参阅:Hypertext Transfer Protocol -- HTTP/1.1

有关状态码的 awk 命令示例:

1. 查找并显示所有状态码为 404 的请求

 awk ‘($9 ~ /404/)‘ access.log

2. 统计所有状态码为 404 的请求

 awk ‘($9 ~ /404/)‘ access.log | awk ‘{print $9,$7}‘ | sort

现在我们假设某个请求 ( 例如 : URI: /path/to/notfound ) 产生了大量的 404 错误,我们可以通过下面的命令找到这个请求是来自于哪一个引用页,和来自于什么浏览器。

 awk -F\" ‘($2 ~ "^GET /path/to/notfound "){print $4,$6}‘ access.log

原文地址:https://www.cnblogs.com/friendwrite/p/10398697.html

时间: 2024-08-05 23:32:11

分析nginx中access.log日志统计状态为500的相关文章

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访问量(

Android中对Log日志文件的分析

一,Bug出现了, 需要“干掉”它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只要你会看bug, android里应用开发也就很简单了. 那我们先来看看android里的ANR,怎么出现ANR呢,很简单. # adb shell # cd data/app #  monkey   -p  com.xxx.xxx   -v   3000      (com.xxx.xxx是你应用程序的包名,如果想知

nginx的error.log日志常见的几个错误解决方法

nginx.conf里会有两个日志,分为access.log 和 error.log.其中这两个日志可以细化,一般来说在nginx目录下会有一个logs会保存,然后也可以在对应的server目录里可以分别的设定access.log和error.log来了解对应server的情况. access.log主要是记录"谁来登陆了,从哪里登陆的,登陆后发生了什么",具体格式可以在nginx.conf里设定. error.log主要记录的是检查nginx.conf里发现的错误,比如: "

elk分析nginx日志和tomcat日志

一.介绍 Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案. Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是一个完全开源的工具,它可以对你的日志进行收集.分析,并将其存储供以后使用 kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web

Nginx切割access.log

Nginx 默认Log记录在$Nginx_home/logs/access.log里面,每次用户的请求都会追加到access.log后面,久而久之,access.log就会变得巨大,占用磁盘空间.所以就有了需求用来切割Nginx日志.使用shell脚本如下: #!/bin/bash # This script run at 00:00 # The Nginx logs path logs_path="/usr/local/nginx/logs/" mkdir -p ${logs_pat

Shell 中常见的日志统计方法

前面我发布过"Hadoop兮,杀鸡别用牛刀,python+shell实现一般日志文件的查询.统计", 需要结合python, 可能还是有一定的门槛, 现将shell部分剥离出来. 举例一些最基本的日志统计方法. (1)查看文件 more crawler.log 查看crawler.log日志 tail -n 100 crawler.log 查看crawler.log的最后100行 (2)匹配统计 cat *.log | grep "ERROR" |wc -l 统计在

GoAccess 视图化access.log 日志

1.安装GoAccess 工具可以直接使用 apt-get install goaccess 2.使用goaccess命令将日志生成html文件 goaccess 日志路径 -o 输出HTML的路径 --real-time-html --time-format="%H:%M:%S" --date-format="%d/%b/%Y" --log-format=COMBINED --real-time-html  表示实时的显示日志内容 --time-format   

shell分析nginx access log日志

统计访问最多的ip1. tail -n 10000 xxaccess_log | cut -d " " -f 1 |sort|uniq -c|sort -rn|head -10 |more2.tail -n 10000 xx-access_log | awk '{print $1}'|sort|uniq -c|sort -rn|head -10 | more 统计访问最多的urltail -n 10000 xx-access_log |awk '{print $7}'| sort|un