nginx日志自定义和统计处理

1.默认日志配置解析

  • access.log日志用处

    • 统计站点访问IP来源、某个时间段的访问频率
    • 查看访问最频的页面、http响应状态码、接口性能
    • 接口秒级访问量、分钟访问量、小时和天访问量
  • 默认配置解析

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
  • 案例

    192.168.1.1 - - [11/Apr/2024:04:48:01 +0800] "GET / HTTP/1.1" 200 615 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
    
  • 解析

    $remote_addr:客户端IP地址
    $remote_user:远程用户
    [$time_local]:请求时间 
    "$request":请求方式
    $status:请求响应状态码
    $body_bytes_sent:响应body的大小
    "$http_referer":URL跳转来源,若是直接打开域名浏览时就会为-
    "$http_user_agent":用户终端浏览器等信息
    

2.运维统计awk

  • 查看访问最频繁的前3个IP

    awk '{print $1}' access.log | sort -n | uniq -c | sort -rn | head -n 3
    
  • 基础

    • awk是文本处理工具,默认按照空格切分,$N是切割后第几列,从1开始
    • sort命令用于将文本文件内容加以排序,-n按照数值顺序排,-r按照倒序排
    • uniq去除重复出现的行列,-c在每列旁边显示该行重复出行的次数

3.自定义日志格式

  • 日志格式增加$request_time

    • 从接收用户请求的第一个字节到发送完响应数据的时间,即包括接收请求数据时间、程序响应时间、输出响应数据时间
    • $upstream_response_time:指从nginx向后端建立连接开始到接收完数据然后关闭连接为止的时间
    • request_time一般会比upstream_response_time大,因为用户网络差或者传递数据较大时,前者会耗时大很多
  • 自定义日志配置

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for" $request_time $upstream_response_time';----------------------------------------------------server {listen       80;server_name  localhost a.com;access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;}location /img {alias /usr/local/img/;}
    }
    
  • 统计耗时接口,列出传输时间超过2秒的接口,显示前3条

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/827054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

四信AI睿析—边缘智脑:赋能农业新时代,开启智慧种植新篇章

方案简介 本系统前端安装土壤墒情监测站,包括温湿度传感器、二氧化碳传感器、PH值传感器、土壤电导率传感器、土壤温湿度传感器、光照传感器等组成;高清枪机摄像头等、负责种植区域温湿度、土壤EC、土壤温湿度、光照等环境因子、视频数据、农作物生长图…

Djange解决跨域问题

Djange解决跨域问题 安装 django-cors-headers将 CORS 中间件添加到项目设置配置 CORS 策略为特定的 API 视图开启 CORS 在 Django 中解决跨域资源共享(CORS)问题,通常涉及到后端接受来自不同域的前端请求。为了安全起见,浏览器限…

CSS3多列(详解网页多列布局应用)

目录 一、多列介绍 1.概念 2.特点 3.常用功能 二、多列用法 1.列数和宽度控制 2.列间距和规则 3.跨列和分列内容 4.列宽度自动调整 5.垂直对齐 三、多列实例 1.多列布局 2.导航菜单 四、总结 一、多列介绍 1.概念 CSS3 多列布局是一种用于排列文本内容的 CSS 模块…

加速大数据分析:Apache Kylin使用心得与最佳实践详解

Apache Kylin 是一个开源的分布式分析引擎,提供了Hadoop之上的SQL接口和多维分析(OLAP)能力以支持大规模数据。它擅长处理互联网级别的超大规模数据集,并能够进行亚秒级的查询响应时间。Kylin 的主要使用场景包括大数据分析、交互…

全自动开箱机:从原理到应用,全面解析自动化装箱技术

随着科技的飞速发展,自动化技术在各行各业的应用越来越广泛。其中,全自动开箱机作为现代物流领域的重要设备,以其高效、精准的特点,受到了广大企业的青睐。与星派全面解析全自动开箱机的原理、应用领域以及它所带来的变革。 一、…

Vins-mono中的IMU预积分【SLAM】

世界系下连续时间的IMU积分 w w w代表世界系, b k b_{k} bk​代表第k帧图像。 在 [ t k , t k 1 ] [t_{k}, t_{k1}] [tk​,tk1​]时间段内,有通过加速度和角速度在连续时间下的积分: p b k 1 w p b k w v b k w Δ t k ∬ t ∈ [ t k ,…

插入排序的可视化实现(Python)

插入排序的Python代码 import tkinter as tk import random import timeclass InsertionSortVisualizer:def __init__(self, root, canvas_width800, canvas_height400, num_bars10):self.root rootself.canvas_width canvas_widthself.canvas_height canvas_heightself.nu…

单片机 VS 嵌入式LInux

linux 嵌入式开发岗位需要掌握Linux的主要原因之一是,许多嵌入式系统正在向更复杂、更功能丰富的方向发展,需要更强大的操作系统支持。而Linux作为开源、稳定且灵活的操作系统,已经成为许多嵌入式系统的首选。以下是为什么嵌入式开发岗位通常…

国家市场监督管理总局令第90号

非法定计量单位限制使用管理办法 2024年3月18日国家市场监督管理总局令第90号公布 自2024年6月1日起施行 第一条 为了保证国家计量单位制的统一,加强非法定计量单位的使用管理,根据《中华人民共和国计量法》等有关法律、行政法规,制定本办…

什么是掩码补丁位置?

掩码补丁位置(Masked Patch Position)是一个在视觉任务处理中使用的概念,特别是在处理图像分割等任务时。 在深度学习和计算机视觉领域,掩码(Mask)常用于指示模型关注或忽略输入数据的特定部分。在基于补丁…

登录的几种方式

一、session 1、客户端发送请求,服务器将登录信息存储在 Session 中,Session 依赖于 Cookie(cookie指的就是在浏览器里面存储的一种数据,仅仅是浏览器实现的一种数据存储功能。Cookie实际上是一小段的文本信息。)&…

【行为型模式】状态模式

一、状态模式概述 状态模式的定义:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。(对象行为型) 策略模式和状态模式是双胞胎,在出生时才分开。 策略模式是围绕可以互换的算法来创建成功业务的。状态模式走的是更崇高的路&#xff0…

全民拼购:社交电商与拼购玩法的完美结合

大家好,我是微三云周丽,今天给大家分析当下市场比较火爆的商业模式! 小编今天跟大伙们分享什么是社交电商与拼购玩法的wan美结合? 随着社交电商和拼购玩法的兴起,全民拼购模式正逐渐成为电商行业的新宠。结合了人性化…

CSS中的display: flex;

display: flex; 是CSS(层叠样式表)中用于设置容器为弹性盒子模型(Flexbox)的属性值。弹性盒子模型是CSS3中引入的一个新的布局模式,它设计用来更好地在容器中布局、对齐和分配空间给子元素(即容器内的项目&…

Github账号注册

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

深度学习与神经网络入门

前言 人工智能(AI)与机器学习(ML)与深度学习(DL)的关系: DL包含于ML,ML包含于AI。 即深度学习是机器学习一部分,机器学习又是人工智能的一个分支。 那么深度学习到底有…

运气变好的几个小妙招

首先不要总是说一些丧气话,因为老天爷是听不到主语的,即使你当时说的是”谁谁谁好烦人啊“类似的句式,但传到上帝耳朵的时候会失去主语,也就会潜移默化的带到自己身上。 那我们应该怎么做呐? 1. 避免消极语言 首先&…

本文为解决:前端json传String格式时间参数,后端无法解析。

有的人说单独写一个localDateTime配置类,看了一下可以不用。 直接写WebMvcConfig里面就行 import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToS…

CSS flex弹性布局属性

容器属性 flex-direction 设置主轴方向,默认水平方向 row 默认值,主轴为水平方向(从左向右排水平布局) row-reverse 主轴为水平方向(从右向左排水平布局) column 主轴为垂直方向(从上到下垂直布局&#x…

学习笔记——微信小程序var与let、bindtap与bindinput、全局变量与局部变量的区别

1、var与let的区别 var申明的为全局变量,作用域为所在的函数内,其他函数调用会出现变量未定义的报错 let声明的为局部变量,只会作用于最近的{}中,其他区域无法调用 2、全局变量与局部变量 全局变量是在整个小程序运行周期内都…