精华内容
下载资源
问答
  • 摘要 腾兴网为您分享:Linux系统怎么分析Nginx日志,追书神器,有信,虚拟机,天气预报等软件知识,以及云软件,东方财富股票软件,扑飞,名片扫描王,微信加人软件安卓,微主题,每日金股,电脑硬盘检测,韩剧tvapp,...

    摘要 腾兴网为您分享:Linux系统怎么分析Nginx日志,追书神器,有信,虚拟机,天气预报等软件知识,以及云软件,东方财富股票软件,扑飞,名片扫描王,微信加人软件安卓,微主题,每日金股,电脑硬盘检测,韩剧tvapp,ntoskrnl.exe,衡水人才,安德鲁维金斯,柚米,体育场地统计调查系统,etfc等软件it资讯,欢迎关注腾兴网。Linux系统下Nginx 日志可以查看系统运行记录和出错说明,对Nginx 日志的分析可以了解系统运行的状态。那么Linux系统Nginx日志怎么分析呢? Nginx 日志相关配置有 2 个地方:access_log 和 lo...

    Linux系统下Nginx 日志可以查看系统运行记录和出错说明,对Nginx 日志的分析可以了解系统运行的状态。那么Linux系统Nginx日志怎么分析呢?

    93f307e0350b7d77e71536a5f79ed5ab.png

    Nginx 日志相关配置有 2 个地方:access_log 和 log_format 。

    默认的格式:

    access_log /data/logs/nginx-access.log;

    log_format old ‘$remote_addr [$time_local] $status $request_time $body_bytes_sent ’

    ‘“$request” “$http_referer” “$http_user_agent”’;

    相信大部分用过 Nginx 的人对默认 Nginx 日志格式配置都很熟悉,对日志的内容也很熟悉。但是默认配置和格式虽然可读,但是难以计算。

    Nginx 日志刷盘相关策略可配置:

    比如,设置 buffer,buffer 满 32k 才刷盘;假如 buffer 不满 5s 钟强制刷盘的配置如下:

    access_log /data/logs/nginx-access.log buffer=32k flush=5s;

    这决定了是否实时看到日志以及日志对磁盘 IO 的影响。

    Nginx 日志能够记录的变量还有很多没出现在默认配置中:

    比如:

    请求数据大小:$request_length

    返回数据大小:$bytes_sent

    请求耗时:$request_time

    所用连接序号:$connection

    当前连接发生请求数:$connection_requests

    Nginx 的默认格式不可计算,需要想办法转换成可计算格式,比如用控制字符 ^A (Mac 下 ctrl+v ctrl+a 打出)分割每个字段。

    log_format 的格式可以变成这样:

    log_format new ‘$remote_addr^A$http_x_forwarded_for^A$host^A$time_local^A$status^A’

    ‘$request_time^A$request_length^A$bytes_sent^A$http_referer^A$request^A$http_user_agent’;

    这样之后就通过常见的 Linux 命令行工具进行分析了:

    查找访问频率最高的 URL 和次数:

    cat access.log | awk -F ‘^A’ ‘{print $10}’ | sort | uniq -c

    查找当前日志文件 500 错误的访问:

    cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’

    查找当前日志文件 500 错误的数量:

    cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’ | wc -l

    查找某一分钟内 500 错误访问的数量:

    cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’ | grep ’09:00’ | wc-l

    查找耗时超过 1s 的慢请求:

    tail -f access.log | awk -F ‘^A’ ‘{if($6》1) print $0}’

    假如只想查看某些位:

    tail -f access.log | awk -F ‘^A’ ‘{if($6》1) print $3″|”$4}’

    查找 502 错误最多的 URL:

    cat access.log | awk -F ‘^A’ ‘{if($5==502) print $11}’ | sort | uniq -c

    查找 200 空白页

    cat access.log | awk -F ‘^A’ ‘{if($5==200 && $8 《 100) print $3″|”$4″|”$11″|”$6}’

    查看实时日志数据流

    tail -f access.log | cat -e

    或者

    tail -f access.log | tr ‘^A’ ‘|’

    照着这个思路可以做很多其他分析,比如 UA 最多的访问;访问频率最高的 IP;请求耗时分析;请求返回包大小分析;等等。

    这就是一个大型 Web 日志分析系统的原型,这样的格式也是非常方便进行后续大规模 batching 和 streaming 计算。

    以上就是Linux系统Nginx日志怎么分析的全部内容了,可以看出来Nginx日志还是有很强大的作用的。

    相关推荐

    展开全文
  • nginx查看日志

    千次阅读 2021-05-14 16:53:34
    nginx的log日志分为access log 和 error log其中access log 记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息error log 则是记录服务器错误日志错误日志的形式如下:10.1.1.1 - - [22/Aug/2014:16:48:14...

    nginx的log日志分为access log 和 error log

    其中access log 记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息

    error log 则是记录服务器错误日志

    错误日志的形式如下:

    10.1.1.1 - - [22/Aug/2014:16:48:14 +0800] "POST /ajax/MbpRequest.do HTTP/1.1" 200 367 "-" "Dalvik/1.6.0 (Linux; U; Android 4.1.1; ARMM7K Build/JRO03H)" "119.189.56.175" 127.0.0.1:8090 0.022 0.022

    10.1.1.1 - - [22/Aug/2014:16:48:19 +0800] "POST /ajax/MbpRequest.do HTTP/1.1" 200 616 "-" "Dalvik/1.6.0 (Linux; U; Android 4.0.4; GT-I9103 Build/IMM76D)" "36.250.89.22" 127.0.0.1:8090 0.036 0.036

    从上面我们可以看出几部分信息:

    1.客户端(用户)IP地址。如:上例中的 10.1.1.1 (内网负载均衡地址)

    2.访问时间。如:上例中的 [22/Aug/2014:16:48:19 +0800]

    3.访问端口。如:上例中的 127.0.0.1:8080

    4.响应时间。如:上例中的 0.022

    5.请求时间。如:上例中的 0.022

    6.用户地理位置代码(国家代码)。

    7.请求的url地址(目标url地址)的host。如:上例中的 /....

    8.请求方式(GET或者POST等)。如:上例中的 GET

    9.请求url地址(去除host部分)。如:上例中的 /html/test.html

    10.请求状态(状态码,200表示成功,404表示页面不存在,301表示永久重定向等,具体状态码可以在网上找相关文章,不再赘述)。如:上例中的 "200"

    11.请求页面大小,默认为B(byte)。如:上例中的 2426

    12.来源页面,即从哪个页面转到本页,专业名称叫做“referer”。如:上例中的 "http://a.com"

    13.用户浏览器语言。如:上例中的 "es-ES,es;q=0.8"

    14. 用户浏览器其他信息,浏览器版本、浏览器类型等。如:上例中的  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11"

    其实nginx access日志的格式不是一成不变的,是可以自定义的。

    在nginx的nginx.conf配置文件找到:log_format 这里就是日志的格式

    看一下和上述日志匹配的log格式设置:

    #access日志格式配置,具体参数不再细说,上面都已经说过了,自己对应一下即可

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

    '$status $body_bytes_sent "$http_referer" '

    '"$http_user_agent" "$http_x_forwarded_for"'

    '$upstream_addr $upstream_response_time $request_time ';

    access_log  logs/access.log  main;

    #配置access log日志的存储位置及文件,注意:access.log文件是可以按日期进行分割的,方便查看及处理

    access_log  /usr/local/nginx/log/access.log  main;

    相关说明解释

    1.$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址;

    2.$remote_user :用来记录客户端用户名称;

    3.$time_local : 用来记录访问时间与时区;

    4.$request : 用来记录请求的url与http协议;

    5.$status : 用来记录请求状态;成功是200,

    6.$body_bytes_s ent :记录发送给客户端文件主体内容大小;

    7.$http_referer :用来记录从那个页面链接访问过来的;

    8.$http_user_agent :记录客户端浏览器的相关信息;

    展开全文
  • 那么Linux系统Nginx日志怎么分析呢?Nginx 日志相关配置有 2 个地方:access_log 和 log_format 。默认的格式:access_log /data/logs/nginx-access.log;log_format old ‘$remote_addr [$t...

    Linux系统下Nginx 日志可以查看系统运行记录和出错说明,对Nginx 日志的分析可以了解系统运行的状态。那么Linux系统Nginx日志怎么分析呢?

    a3e933f8c192e4b7fb1ee38bf8022769.png

    Nginx 日志相关配置有 2 个地方:access_log 和 log_format 。

    默认的格式:

    access_log /data/logs/nginx-access.log;

    log_format old ‘$remote_addr [$time_local] $status $request_time $body_bytes_sent ’

    ‘“$request” “$http_referer” “$http_user_agent”’;

    相信大部分用过 Nginx 的人对默认 Nginx 日志格式配置都很熟悉,对日志的内容也很熟悉。但是默认配置和格式虽然可读,但是难以计算。

    Nginx 日志刷盘相关策略可配置:

    比如,设置 buffer,buffer 满 32k 才刷盘;假如 buffer 不满 5s 钟强制刷盘的配置如下:

    access_log /data/logs/nginx-access.log buffer=32k flush=5s;

    这决定了是否实时看到日志以及日志对磁盘 IO 的影响。

    Nginx 日志能够记录的变量还有很多没出现在默认配置中:

    比如:

    请求数据大小:$request_length

    返回数据大小:$bytes_sent

    请求耗时:$request_time

    所用连接序号:$connection

    当前连接发生请求数:$connection_requests

    Nginx 的默认格式不可计算,需要想办法转换成可计算格式,比如用控制字符 ^A (Mac 下 ctrl+v ctrl+a 打出)分割每个字段。

    log_format 的格式可以变成这样:

    log_format new ‘$remote_addr^A$http_x_forwarded_for^A$host^A$time_local^A$status^A’

    ‘$request_time^A$request_length^A$bytes_sent^A$http_referer^A$request^A$http_user_agent’;

    这样之后就通过常见的 Linux 命令行工具进行分析了:

    查找访问频率最高的 URL 和次数:

    cat access.log | awk -F ‘^A’ ‘{print $10}’ | sort | uniq -c

    查找当前日志文件 500 错误的访问:

    cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’

    查找当前日志文件 500 错误的数量:

    cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’ | wc -l

    查找某一分钟内 500 错误访问的数量:

    cat access.log | awk -F ‘^A’ ‘{if($5 == 500) print $0}’ | grep ’09:00’ | wc-l

    查找耗时超过 1s 的慢请求:

    tail -f access.log | awk -F ‘^A’ ‘{if($6》1) print $0}’

    假如只想查看某些位:

    tail -f access.log | awk -F ‘^A’ ‘{if($6》1) print $3″|”$4}’

    查找 502 错误最多的 URL:

    cat access.log | awk -F ‘^A’ ‘{if($5==502) print $11}’ | sort | uniq -c

    查找 200 空白页

    cat access.log | awk -F ‘^A’ ‘{if($5==200 && $8 《 100) print $3″|”$4″|”$11″|”$6}’

    查看实时日志数据流

    tail -f access.log | cat -e

    或者

    tail -f access.log | tr ‘^A’ ‘|’

    照着这个思路可以做很多其他分析,比如 UA 最多的访问;访问频率最高的 IP;请求耗时分析;请求返回包大小分析;等等。

    这就是一个大型 Web 日志分析系统的原型,这样的格式也是非常方便进行后续大规模 batching 和 streaming 计算。

    以上就是Linux系统Nginx日志怎么分析的全部内容了,可以看出来Nginx日志还是有很强大的作用的。

    展开全文
  • (本文内全部centos的系统命令使用斜杠加粗的形式表示,方便各位阅读)linux我想很多人跟我同样,在最开始接触Linux的时候,从心底是很反感的,明明放着windows那么图文并茂的系统不用,恰恰要搞这个黑乎乎的系统界面...

    (本文内全部centos的系统命令使用斜杠加粗的形式表示,方便各位阅读)linux

    我想很多人跟我同样,在最开始接触Linux的时候,从心底是很反感的,明明放着windows那么图文并茂的系统不用,恰恰要搞这个黑乎乎的系统界面,总以为有一种重返DOS的感受。并且最重要的是,Windows的配置是在软件界面里,对着配置的地方点点鼠标或者选择一下地址栏等等,比较容易上手。并且windows的编辑界面都支持ctrl+z这个撤销命令,要是一些配置不当心被本身碰了,只要不关界面大不了就ctrl+z就能还原成原始的样子,不能进步咱还至少能保持不变。而linux的逆操做命令基本是没有,命令行界面下的文件删除了那就删除了,把文件mv到了本身记不住的地方,一旦history找不到这条命令,那基本无法抢救了,因此再这样的操做环境里工做不免总给人一种独木桥上走路的感受。nginx

    By the way,shell的逆操做虽然基本没有,可是vim的逆操做仍是有的。esc后按u,就是能够撤销一次操做,只要不关闭和保存,按u能够一直按到文件初始状态,若是你想把用u撤销的东西还原回来,那就ctrl+r。shell

    言归正传,此次的内容全是配置,依旧是各类nginx的基本配置,并且基本都是在vim下操做的,一旦把初始的.conf文件改了,就u回原来的样子。vim

    日志配置windows

    日志是一个很重要的玩意儿,维护人员要根据日志来反推以前的操做,并且必要的时候须要把日志文件输出。nginx的日志配置路径仍是在nginx文件下的/conf/nginx.conf文件里,vim一下。而后定位log-format那一行,如图。centos

    115fe2bd2c95056a5d1fa61b49a9e170.png

    红色内容就是日志配置,上面的server_token是安全令牌,防止机器人刷要求的,这里说一下log_format里面每一项的意义:浏览器

    $remote_addr:客户端的地址安全

    $remote_user[$time_local]:客户端的姓名[本地的时间]bash

    $request:客户端所请求的url服务器

    $status:请求状态

    $body_bytes_sent:发送给客户端的字节数

    $http_refere:原网页,即客户端是从那个网页来这里的

    $http_user_agent:客户端的浏览器信息

    $http_x_forward_for:客户端的ip地址

    access_log off:当前的日志记录功能没开,能够改为on。

    日志文件的记录数据就是按红框内的顺序记录的,能够说客户端的操做都会被日志文件记录,可是这样的话,日志文件会积压的愈来愈多,致使查询起来很不容易,那么就须要自动切割日志文件。

    假如说但愿天天的23点59分但愿能够切割一下日志文件,即把当天的日志保存成日期名字,而后同时开启一个新的日志文件来保存新的一天日志。这样咱们要在/logs/目录下创建一个批处理文件,起名叫cutlog.sh,而后vim了它,进行编辑,如图:

    fd98d9212309e13122b04e8fd57348be.png而后退出返回到log目录下,#crontab -e。

    可是若是你事前没有用过crontab的话,系统会报错,提示crontab:command not found,但是#man crontab,倒是有结果的。这里咱们就须要安装crond模块。

    #yum -install -y vixie-cron

    此时出现安装过程,安装完成后,#chkconfig --list crond,检测是不是开机即启动,而后在#service crond start.这样就可使用crontab了。

    #crontab -e,这时会出现一个shell,咱们输入“23 59 *** /bin/bash /usr/local/nginx/logs/cutlog.sh”,而后保存退出的时候,系统会确认时间格式,若是时间格式不对,会提示没法创建相关文件。咱们按n就行,按y的话,就是返回继续编辑。

    至此,自动切割日志文件的过程就到此结束了,效果就是在/usr/local/nginx/logs/cutlog.sh路径下天天都会生成一个当天日期命名的文件来记录服务器的日志。

    展开全文
  • 要安装ngxtop ,首先需要在Linux中安装PIP ,一旦您的系统上安装了pip ,就可以使用以下命令安装ngxtop 。... 这将解析/var/log/nginx/access.log,并在后续模式运行(在写入访问日志时注意新行)。$ sudo ngxto...
  • Nginx由于轻巧和高效的设计风格,去掉了一些额外的功能,所以它不像apache那样有自动切割日志。但是这个功能在实际项目中应用是非常重要的,日志文件如果不进行切割会随着时间的增长而变得越大越庞大。其实要实现这...
  • 本篇文章主要讲述的是在Linux系统nginx和php实现清理服务器网站日志,具有一定参考价值,感兴趣的朋友可以了解一下,希望对你能有所帮助。1.清空nginx站点日志的内容(如果删除日志文件,只有重启服务器才能重新...
  • Nginx日志文件累积的太多,最后充满了整个磁盘空间,所以昨天做了一个可以定期自动删除的脚本。#!/bin/bashfind/usr/local/nginx/logs/-mtime+15-typef-name*.log|xargsrm-f上述脚本是将ng...
  • 下面就是Linux清理Nginx日志的方法介绍,因为Nginx日志没有自动清理的功能,一般采用切割日志的方法进行处理。nginx日志文件需要手动分割,创建脚本文件clear_log.sh文件路径/usr/local/nginx/clear_log.shvi clear_...
  • 一、首先查看nginx版本,我使用的是1.9.7的版本,安装目录在/application/nginx-1.9.7[root@AnSheng ~]# /application/nginx-1.9.7/sbin/nginx -Vnginx version: nginx/1.9.7built by gcc 4.4.7 20120313 (Red Hat ...
  • 1、nginx日志文件access.log的打包一、在物理机上访问虚拟机server1的index.html文件,使得在server1端生成相应的日志文件,为打包日志作准备node[root@foundation83 Desktop]# ab -c 10 -n 100000 ...
  • Nginx由于轻巧和高效的设计风格,去掉了一些额外的功能,所以它不像apache那样有自动切割日志。但是这个功能在实际项目中应用是非常重要的,日志文件如果不进行切割会随着时间的增长而变得越大越庞大。其实要实现这...
  • 日志存储目录: /opt/www/logs/nginx备案存储目录: /opt/www/logs/all日志文件格式: yyyy-mm-dd.tar.bz2#!/bin/bash# powered by www.baidu.org.tw# author:kethinc# useage: crontab -e# 0 0 * * * sh /opt/www/...
  • nginx日志上传oss备份并清空脚本编写 oss上传文件shell 该脚本可以将文件上传只oss中 #!/bin/bash host="oss-cn-beijing-internal.aliyuncs.com" bucket="bucket-name" Id="ossId" Key="ossKey" # 参数1,PUT:上传...
  • 一旦开启了Nginx日志功能,每天Nginx都会生成一定大小的日志文件,如果系统稳定运行,没有任何问题,那么日志基本上不会去查看。但这些日志如不及时清理,日渐积累,对服务器的磁盘空间占用也将是比较恐怖的。为了...
  • Nginx访问日志文件内容如下:10.9.40.134 - - [01/Aug/2016:06:29:42 +0800] "POST / HTTP/1.1" 302 0 "-" "python-requests/2.4.3 CPython/2.7.9 Linux/3.16.0-4-amd64"10.9.40.134 - - [01/Aug/2016:06:29:42 +...
  • 访问日志统计 用cut分割日志以空格为分隔符取第一列 使用sort排序 使用uniq -c 取重复的值得次数 使用sort倒序排序(默认为第一列) 使用head取前三行 cut -d " " -f1 access_log | sort | uniq -c |sort -nr | ...
  • 前提背景及需求nginx运行日志默认保存在nginx安装目录的/usr/local/nginx/logs文件夹, 包含access.log和error.log两个文件.(1)access.log记录了哪些用户、哪些页面以及用户浏览器、ip和其他的访问信息;...
  • windows nginx日志滚动

    2021-05-14 20:19:39
    @echo offrem 这个脚本是为了完成Nginx服务日志滚动rem nginx工作目录set workspace=D:\NIIS\Nginxrem 日志存放目录set logdir=D:\NIIS\Nginx\logsrem 查看系统中正在运行的nginx进程rem tasklist /fi "p_w_...
  • shell获取某个时间段的nginx日志内容小醉90s 2014-04-06 16:40:36 15297 收藏 1分类专栏: linux版权从nginx日志中获取2014:04:01日 21:30至21:50的日志内容# cat web.log192.168.16.105 - - [01/Apr/2014:21:26:21 ...
  • Shell没基础,但是需要实现nginx日志每日切割的效果,在网上找了一些照搬都没怎么成功,最后自己试验出来的才是真正能用的不是嘛参考文章:https://www.cnblogs.com/kaitu...1.在某目录创建需要定时执行的脚本# cd...
  • Linux系统下Nginx日志可以查看系统运行记录和出错说明,对Nginx 日志的分析可以了解系统运行的状态。那么Linux系统Nginx日志怎么分析呢?“电信行业IT运维管理系统”是以IT部门在日常运行维护管理流程为核心,以事件...
  • 要想恢复的话,前提是没有重启nginx服务。首先要来介绍/proc目录。/proc 是一个虚拟的目录,不占用...但是前提是没有重启nginx服务1,备份nginx的error日志,然后删除error日志2,查看nginx的pid,然后到...
  • 使用Linux系统自带的命令logrotate对Nginx日志进行切割。Nginx安装目录:/usr/local/nginx/Nginx日志目录:/usr/local/nginx/logs/、/usr/local/nginx/logs/nginx_logs/1、添加nginx日志切割脚本cd /etc/logrotate.d...
  • 它通过解析nginx访问日志(默认位置始终为/var/log/nginx/access.log )来收集数据,并显示nginx服务器的有用指标,从而帮助您实时监控Web服务器。 它还允许您从远程服务器解析Apache日志。如何在Linux中安装和使用...
  • 平时运维遇到最多的就是nginx的日志分析了,...假设我的nginx日志如下:.......211.253.43.23 - - [03/Jun/2019:11:41:02 +0800] "GET211.253.43.23 - - [03/Jun/2019:11:41:25 +0800] "POST211.253.43.23 - - [03/...
  • Nginx安装快速安装的Shell脚本脚本2019年2月15日的稳定版本注意自己现在所在根目录 /新建脚本vim nginx-install.sh#!/bin/bashecho "开始执行"cd /usr/localwget ...
  • 使用Linux系统自带的命令logrotate对Nginx日志进行切割。 Nginx安装目录:/usr/local/nginx/ Nginx日志目录:/usr/local/nginx/logs/ 1、添加nginx日志切割脚本 cd /etc/logrotate.d #进入目录 vi /etc/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,865
精华内容 35,146
关键字:

linux下查看nginx日志

linux 订阅