Nginx 日志分析
目录:
- 日志分析
- 日志的常用需求分析
- Nginx 日志切割
日志分析
Nginx 默认日志路径/usr/local/nginx/logs/,其中包含访问日志 access.log 和错误 记 录 日 志 error.log。
查看 nginx 访问日志 :
cat /usr/local/nginx/logs/access.log | more
Nginx 访问日志打印的格式可以自定义,例如 Nginx 日志打印格式配置如下, Log_format 用来设置日志格式,Name(模块名) Type(日志类型),可以配置多个日志模块,分别供不同的虚拟主机日志记录所调用:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $request_time';
Nginx 日志格式内部变量及函数参数说明:
$remote_addr 记录客户端 IP 地址;$server_name 虚拟主机名称;$http_x_forwarded_for HTTP 的请求端真实的 IP;$remote_user 记录客户端用户名称;$request 记录请求的 URL 和 HTTP 协议;$status 记录返回 HTTP 请求的状态;$uptream_status upstream 的状态;$ssl_protocol SSL 协议版本;$body_bytes_sent 发送给客户端的字节数,不包括响应头的大小;$bytes_sent 发送给客户端的总字节数;$connection_requests 当前通过一个连接获得的请求数量;$http_referer 记录从哪个页面链接访问过来的;$http_user_agent 记录客户端浏览器相关信息;$request_length 请求的长度,包括请求行,请求头和请求正文;$msec 日志写入时间;$request_time 请求处理时间,单位为秒,精度毫秒,Nginx 接受用户请求的第一个字节到发送完响应数据的时间,包括:接收请求数据时间、程序响应时间、输出、响应数据时间。$upstream_response_time 应用程序响应时间,Nginx 向后端服务建立连接开始到接受完数据然后关闭连接为止的总时间。
回到目录
日志的常用需求分析
通过 Nginx 日志,可以简单分析 WEB 网站的运行状态、数据报表、IP、UV(unique visitor)、PV(page view)访问量等需求
- 统计 Nginx 服务器独立 IP 数。
[root@cacti logs]# awk '{print $1}' access.log | sort -r | uniq -c | wc -l
713739
- 统计 Nginx 服务器总 PV 量。
[root@linux-node2 ~]# awk '{print $7}' access.log | wc -l
130586
- 统计 Nginx 服务器 UV 统计
[root@linux-node2 ~]# awk '{print $11}' access.log | sort -r| uniq -c | wc -l
10
- 分析 Nginx 访问日志截止目前为止访问量前 20 的 IP 列表。
[root@linux-node2 ~]# awk '{print$1}' access.log | sort | uniq -c | sort -nr |head -2088466 10.0.0.517441 192.168.5.2525431 119.130.230.1012446 119.130.229.2172142 192.168.40.831238 192.168.40.2381129 192.168.40.2321065 192.168.40.118663 192.168.40.88528 192.168.40.153517 192.168.40.146510 192.168.40.134474 192.168.40.124450 192.168.40.73414 192.168.40.200333 192.168.40.164321 192.168.40.177318 73.171.171.150306 192.168.40.81306 192.168.40.116
- 分析 Nginx 访问日志早上 9 点至中午 12 点的总请求量
[root@linux-node2 ~]# awk '/2019:00:00/,/2019:12:00/' access.log | wc -l
27008
- 分析 Nginx 访问日志状态码 404、502、503、500、499 等错误信息页面,打印错误出现次数大于 20 的 IP 地址。
[root@linux-node2 ~]# awk '{if ($12~/502|499|500|503|404/) print $1,$12}' access.log |sort |uniq -c|sort -nr | awk '{if($1>20) print $2}'
- 分析 Nginx 访问日志访问最多的页面。
[root@linux-node2 ~]# awk '{print $7}' access.log |sort |uniq -c|sort -nr|head -20
- 分析 Nginx 访问日志请求处理时间大于 5 秒的 URL,并打印出时间、URL、访客IP
[root@linux-node2 ~]# awk '{if ($(NF-4)>5) print $(NF-4),$7,$1}' access.log|sort -nr|more
回到目录
Nginx 日志切割
示例:vim /data/sh/auto_nginx_log.sh
#!/bin/bash
#
#auto mv nginx log shellS_LOG=/usr/local/nginx/logs/access.log
D_LOG=/data/backup/`date +%Y%m%d`echo -e "\033[32mPlease wait start cut shell scripts...\033[1m" sleep 2if [ ! -d $D_LOG ];then
mkdir -p $D_LOG
fimv $S_LOG $D_LOGkill -USR1 `cat /usr/local/nginx/logs/nginx.pid`echo "------------------------------------"echo "The Nginx log Cutting Successfully!"echo "You can access backup nginx log $D_LOG/access.log files."
在/var/spool/cron/root 中添加
0 0 * * * /bin/sh /data/sh/auto_nginx_log.sh >>/tmp/nginx_cut.log 2>&1
回到目录
Nginx 日志分析相关推荐
- python nginx日志分析_Nginx日志分析及脚本编写
在我们日常的运维中,当Nginx服务器正常运行后,我们会经常密切关注Nginx访问日志的相关情况,发现有异常的日志信息需要进行及时处理. 那今天我将跟大家一起来研究和分析Nginx日志,nginx默认 ...
- 使用elk+redis搭建nginx日志分析平台(引)
http://www.cnblogs.com/yjf512/p/4199105.html elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎 ...
- ELK+redis搭建nginx日志分析平台
ELK+redis搭建nginx日志分析平台 发表于 2015-08-19 | 分类于 Linux/Unix | ELK简介 ELKStack即Elasticsearch + Logs ...
- nginx日志分析脚本
#!/usr/bin/env bashecho "" echo " =================================================== ...
- SRE从踩坑到牛逼(二)利用Python进行Arcgis站点分析+Nginx日志分析
前面是日记,或者是牢骚吧 就感觉挺可惜的,一月份的时候因为分析日志的需求,写过一个几十行的代码,能够做到Arcgis站点分析,并且录入到Excel,根据Arcgis站点信息进行日志分析的部分还没写,这 ...
- Nginx日志分析系统——Elastic Stack的系列产品的使用
目录 1.Nginx日志分析系统 1.1.项目需求 2.部署安装Nginx 3.Beats 简介 4.Filebeat 4.1.架构 4.2.部署与运行 4.3.读取文件 4.4.自定义字段 4.5. ...
- php 监控nginx日志文件,Nginx 日志分析及实时监控
本文档以 Nginx 日志为例,介绍如何使用日志分析服务来分析 Nginx 日志中的各种指标. 许多个人站长选取了 Nginx 作为服务器搭建网站,在对网站访问情况进行分析时,需要对 Nginx 访问 ...
- Nginx日志分析工具
Nginx日志分析工具 1. 介绍三个关于分析nginx日志信息的工具. 2. nginx_log_analysis 这个工具是由一位叫LEO的网友提供的,它的博客是http://linux5588. ...
- shell进行nginx日志分析
shell进行Nginx日志分析 日志格式 log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'' ...
- 基于awk的nginx日志分析
基于awk的nginx日志分析 基于awk的nginx日志分析 定义 nginx日志 awk分析示例 基于awk的nginx日志分析 在系统调优的时候,经常要去分析nginx的请求日志,统计.分析各个 ...
最新文章
- 5款没有专利纠葛的Linux发行版
- centos7 mysql安装
- 滴滴重磅开源跨平台统一 MVVM 框架 Chameleon
- java txt 写入_JAVA 写入TXT文件
- 栈应用(中缀表达式转后缀表达式并计算后缀表达式的值)
- Android公共jar,使用JitPack管理Android项目中公共模块库
- 十八、数据容器、数据访问宽度、端口(计算机对数据处理方式:读取、写入、运算;数据可存放三个地方:CPU内部、内存、端口)
- SqlBulkCopy类进行大数据(一万条以上)插入测试
- 【OpenCV】视频/图像背景减除方法
- “37岁,985毕业,年薪50万,被裁掉只用了10分钟”
- golang中的检验hash
- 台式计算机可以连接蓝牙吗,台式电脑可以连接蓝牙音响吗
- SpringAop实现原理
- 活动回顾 | 大咖云集“开源安全治理模型和工具”线上研讨会
- python制作模型排放清单_机动车尾气污染物排放模型研究综述.pdf
- ue4 vr连接_基于UE4的VR项目基础环境配置和Motion Controller控制配置
- Java6面向对象编程创建一个矩形类, 求周长 面积
- 2017第二届上海DAC体验
- Vue 脚手架搭建目录及文件详解
- 单页面SPA(如react,vue)网站的服务器渲染SSR之SEO大杀器rendertron(超详细配置+避坑)
热门文章
- ​创业15年,50岁回到农村过上退休的生活,上班和创业是两难的选择。
- ajax长轮询tornado,Tornado长轮询和WebSocket
- 极限题型二:求数列极限常见题型
- 使用java打开网页并截图
- 服务器整体爆率如何修改,土豪玩家是怎么玩游戏的?一口气收购全区物资,逼得官方修改爆率!...
- 小学用计算机画图单元教学要求,小学电脑绘画教学计划
- 用HTML画一个好看的玫瑰花
- 虚猕数藏数字藏品平台如何?平台藏品安全吗?
- 【区块链 | NFT】NFT游戏怎么开发?详细的开发指南来了【2022】
- v63.04 鸿蒙内核源码分析(文件系统) | 用图书管理说文件系统 | 百篇博客分析OpenHarmony源码