首页 > 系统相关 >nginx日志分析

nginx日志分析

时间:2022-10-10 18:01:21浏览次数:82  
标签:分析 sort log access nginx awk print 日志

通过nginx日志利用shell统计日pv和uv 网上记录nginx日志统计访问量的脚本的文档很多,但是看来看去实际都是一个东西,如下: 1.根据访问IP统计UV awk '{print $1}'  access.log|sort | uniq -c |wc -l 269129    -  2017 年 81634   = 187495 2.统计访问URL统计PV awk '{print $7}' access.log|wc -l 59382452 - 2017年 15003912 = 44378540 3.查询访问最频繁的URL awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more 4.查询访问最频繁的IP awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more 5.根据时间段统计查看日志 cat  access.log| sed -n '/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p'|more 其中,第五条不好使,具体不说了,也没有统计当日的的pv和uv,自己为了zabbix写了一个,其实也很简单,记一下。 pv:cat  /usr/local/nginx/logs/access.log| sed -n /`date "+%d\/%b\/%Y"`/p |awk '{print $7}' |sort|wc -l uv:cat  /usr/local/nginx/logs/access.log| sed -n /`date "+%d\/%b\/%Y"`/p |awk '{print $1}' |sort|uniq -c |wc -l 这个是看当日的,看昨天的改日期格式就行。   原文:https://blog.csdn.net/qq_33324608/article/details/71171574 https://blog.csdn.net/qq_33324608/article/details/71171574 https://www.cnblogs.com/handongyu/p/6513185.html 如果需要得到请求处理的时间,需要在nginx log 里面加上$request_time,下面是我的log_format nginx.conf     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                                 '$status $body_bytes_sent $request_body "$http_referer" '                                 '"$http_user_agent" "$http_x_forwarded_for" "$request_time"';   修改之后重启nginx,查看nginx log的时候,就能看到nginx处理请求所花的时间了,这个时间基本就是后端所花的时间,所以可以根据这个字段来得到响应慢的请求 以下是就是我用到的一些命令了 获取pv数 $ cat /usr/local/nginx/logs/access.log | wc -l 获取ip数 $ cat /usr/local/nginx/logs/access.log | awk '{print $1}' | sort -k1 -r | uniq | wc -l 获取最耗时的请求时间、url、耗时,前10名, 可以修改后面的数字获取更多,不加则获取全部 $ cat /usr/local/class/logs/access.log | awk '{print $4,$7,$NF}' | awk -F '"' '{print $1,$2,$3}' | sort -k3 -rn | head -10 获取每分钟的请求数量,输出成csv文件,然后用excel打开,可以生成柱状图 $ cat /usr/local/class/logs/access.log  | awk '{print substr($4,14,5)}' | uniq -c | awk '{print $2","$1}' > access.csv 上面的图是用excel生成的,也可以用命令行工具gnuplot生成png,我也试了一下,没什么问题,直接以编程的形式得到报表,去掉人工操作部分,很方便,但是有一点就是x轴数据比较多的时候,不能像excel一样自动稀释数据,所以我还是喜欢用excel来生成 其实用来用去也就是那么几个命令: cat:输入文件内容 grep:过滤文本 'sort':排序 'uniq':去重 'awk':文本处理 命令组合使用,单个命令可以使用多次,来达到多重过滤的效果,前面一个命令的输出就是后一个命令的输入,流式处理,只要学会这个命令,有多看似复杂的东西,都变得异常简单。 上面介绍的都是命令,下面再介绍一个直接输出html的,其实就是利用go-access来分析nginx日志 cat /usr/local/nginx/logs/access.log | docker run --rm -i diyan/goaccess   --time-format='%H:%M:%S'   --date-format='%d/%b/%Y'   --log-format='%h %^[%d:%t %^] "%r" %s %b "%R" "%u"' > index.html go-access是以docker容器的形式运行的,只要你安装了docker,就能直接运行,免安装很方便 以上脚本,配合日志每天的日志分割,然后在crontab里面配置一下自动运行脚本,可生成每一天的nginx报表,网站情况一幕了然,当然这里也有缺点,因为不实时 想要统计实时数据,可以使用ngxtop 来查看,安装起来也很简单 $ pip install ngxtop 运行的话,先进到nginx目录,然后再运行,-c 指定配置文件,-t 刷新频率,单位为秒 $ cd /usr/local/nginx $ ngxtop -c conf/nginx.conf -t 1 但是这种实时的方式,还需要ssh远程登录,不太方便,还可以使用lua来进行实时统计,然后写一个界面把数据展示出来,通过lua-nginx-module,nginx/tengine 都可以用,如果直接安装openresty的话,就方便了,内嵌了lua,不需要重新编译nginx了 利用grep 过滤日志的条数   grep “myname”  www.shop.com.log | wc -l     说明:查询包含myname 的日志条数 另:利用 ELK系统分析Nginx日志并对数据进行可视化展示 https://www.cnblogs.com/hanyifeng/p/5857875.html  

标签:分析,sort,log,access,nginx,awk,print,日志
From: https://www.cnblogs.com/csxy-py/p/16776658.html

相关文章

  • 包的作用和基本语法及其本质分析
    1.包的三大作用      1)区分相同名字的类      2)当类很多时,可以很好的管理类      3)控制访问范围 2.包基本语法packagecom.hsped......
  • AF协议DF协议以及无协作的系统误码率仿真分析对比
    clc;clear;closeall;xindao_SD=2;xindao_SR=1;xindao_RD=1.5;M=16;%10种发射信噪比情况R=2;SNR_S=zeros(1,M);%源发射信噪比数组SNR=zeros(1,M);%......
  • 从源码分析 MGR 的新主选举算法
    MGR的新主选举算法,在节点版本一致的情况下,其实也挺简单的。首先比较权重,权重越高,选为新主的优先级越高。如果权重一致,则会进一步比较节点的server_uuid。server_uuid......
  • Nginx简介
    Nginx简介1.什么是nginx?Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。Nginx(en......
  • 日志服务管理
    一、日志介绍1.日志文件linux的日志文件可以说是最有用的了,日志文件可以让我们了解系统所处的状态,比如能查出哪些用户有登入,这也涉及相关的安全问题。如果我们不懂得分析......
  • 基于matlab的连续系统的频域分析
    一、实验目的:1、掌握连续时间系统变换区域分析的基本方法。二、实验设备:安装有matlab6.5以上版本的PC机一台。三、实验内容、源程序及执行结果如图所示系统:(1)对不同的RC值......
  • nginx日志定时自动切割shell脚本+crontab定时任务
    vimcat_nginx_log.sh #!/bin/bash#nginx日志文件的存放路径logs_path='/app/openresty/nginx/logs'mv$logs_path/access.log$logs_path/access.$(date+%Y%m%d).log......
  • nginx启停shell脚本
    #!/bin/bash#编写nginx启动脚本#本脚本编写完成后,放置在/etc/init.d/目录下,就可以被Linux系统自动识别到该脚本#如果本脚本名为/etc/init.d/nginx,则servic......
  • 布里渊频移仿真分析
         参考论文,里面有关于纤芯密度,折射率,杨氏模量,泊松比四个重要指标的公式推导过程。论文为:然后按公式分别计算出这四个变量关于温度的变化曲线。这四个图是这四个......
  • 校园电动车充电桩可行性分析报告
    一、引言随着现代社会的发展,车辆不断的增多,导致一到晚高峰就道路堵塞,而且买车成本也高,因此电动车成为大学生几乎不可少的坐骑,但是给电动车充电一直是个是个麻烦,所以因此开......