Linux命令 - 统计log日志某接口用户访问频次并排序

背景

某天发现内部人员使用的app服务器访问突增,但不影响服务正常运行,想通过log统计接口的人员访问频次。
从监控平台可以看到访问激增的接口,因Nginx不缓存用户信息只有访问IP,日志清洗的Hive表只能访问前一天,不方便快速统计。
在这里插入图片描述

所以想直接用Linux命令检索log日志,快速输出分组排序结果。

实现方案

在知道是哪个接口被大量访问,以及访问时间段后, 可以圈定log检索范围。

log日志格式如下:

[xx-xx 16:00:00 007] 658d2xxxx-false INFO - logId=xxx uri=/api/submitOrder act=submitOrder 
param={"wxUid":"123456","wxName":null,"productPoolIdList":[1234213,1111111],"uid":22222,"proposer":"张三"}

要在上述日志信息中,统计各个wxUid访问接口 /api/submitOrder 频次,并根据频次倒序排列。

Linux命令如下:

grep "uri=/api/submitOrder" $logpath  | awk -F '("wxUid":|,"wxName":null)' '{print $2}'  
| sort   | uniq -c  | sort -nr
  • grep “uri=/api/submitOrder” $logpath
    框定查询范围。因log日志存放大量info信息,而我们只需要某个action的日志。logpath 为访问路径,此处可以指定访问某个时间段的log日志。

  • awk -F ‘(“wxUid”: |,“wxName”:null)’ ‘{print $2}’
    字符串切割输出需要字符串。用"wxUid": 或,“wxName”:null为分隔符,将上述日志分为三部分,
    1 —— [xx-xx 16:00:00 007] 658d2xxxx-false INFO - logId=xxx uri=/api/submitOrder act=submitOrder param={"wxUid":
    2 —— "123456"
    3 —— ,"wxName":null,"productPoolIdList":[1234213,1111111],"uid":22222,"proposer":"张三"}
    取出第二部分字符串,即"123456"。

  • sort
    对切割获取的结果排序。目的是将相同字符串聚集到一起。

  • uniq -c
    统计数量与去重

  • sort -nr
    对统计结果倒排。不指定会按正序排。

输出结果
在这里插入图片描述
其中:
1418089为该台服务器在这期间总访问次数;下面的数据,第一列为访问次数,第二列为用户wxuid,结果按访问次数倒序排。

参考文档

下面是一篇非常详细的实现博客,推荐阅读。

Linux awk+uniq+sort 统计文件中某字符串出现次数并排序

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

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

相关文章

行测-资料:2. 一般增长率、增长量

1、一般增长率 1.1 百分数和百分点 50%,20% 1.2 增长率和倍数 1.5;50 1.3 成数和翻番 1.4 增幅,降幅,变化幅度 A,A,D B,高于全国增速 2.3 个百分点,21.8 - 2.3 19.5。 5%&#xff0…

打开 IOS开发者模式

前言 需要 1、辅助设备:苹果电脑; 2、辅助应用:Xcode; 3、准备工作:苹果手机 使用数据线连接 苹果电脑; 当前系统版本 IOS 17.3 通过Xcode激活 两指同时点击 Xcode 显示选择,Open Develop…

重生奇迹MU平民玩家推荐的职业

女魔法师 女魔法师是一个非常适合平民玩家的职业选择。她拥有着强大的魔法攻击能力,可以轻松地击败敌人。而且女魔法师的装备价格相对较低,适合玩家们的经济实力。 精灵射手 精灵射手是一个非常灵活的职业选择。他们可以远程攻击,可以在战…

使用PCL进行法向量可视化

使用PCL进行法向量可视化 文章目录 1、使用PCL进行法向量可视化2、计算所有点的法线并显示3、计算一个子集的法线 1、使用PCL进行法向量可视化 #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/visualization/pcl_visualizer.h> #include &l…

element plus使用问题

文章目录 element plusvue.config.js注意1、有时候会报错 not a function2、使用 ElMessage 报错3、 element plus 版本过高4、警告Feature flag VUE_PROD_HYDRATION_MISMATCH_DETAILS is not explicitly defined.5、报错 ResizeObserver loop completed with undelivered noti…

Redis高级应用

文章目录 1.5.1 布隆过滤器BloomFilter1.5.1.1 原理1.5.1.2 使用场景 1.5.2 Redis分布式锁1.5.2.1 使用案例分析1.5.2.1.1 单机版没加锁1.5.2.1.2 单节点Redis实现分布式锁1.5.2.1.3 集群下的分布式及CAP1.5.2.1.4 Redisson可靠分布式锁1.5.2.1.5 Redis分布式锁-Redlock算法1.5…

Linux之进程间通信(system V 共享内存)

目录 一、共享内存 1、基本原理 2、共享内存的创建 3、共享内存的释放 4、共享内存的关联 5、共享内存的去关联 6、查看IPC资源 二、完整通信代码 三、共享内存的特点 四、信号量 1、相关概念 2、信号量概念 进程间通信的本质就是让不同的进程看到同一个资源。而前…

微信小程序(二十)Vant组件库的配置

教程很详细&#xff0c;直接上过程 上一篇 官方文档也有&#xff0c;但是因为版本的更新&#xff0c;官方文档并没有跟着改变&#xff0c;这里我写一份最新版能用的教程 &#xff08;口头禅还是不能少的&#x1f923;&#x1f923;&#x1f923;&#xff09; 灵魂拷问&#xf…

Android Studio 提示Use app:drawableStartCompat instead of android:drawableStart

每次提交代码时&#xff0c;AS这个老妈子总爱唠叨一堆warning&#xff0c;这些Warning都在讲什么&#xff1f; 1.Use app:drawableStartCompat instead of android:drawableStart 在Android开发中&#xff0c;android:drawableStart和app:drawableStartCompat是两个用于设置…

基于YOLOv8的摄像头吸烟行为检测系统(Python源码+Pyqt6界面+数据集)

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文主要内容:详细介绍了摄像头下吸烟行为检测系统&#xff0c;在介绍算法原理的同时&#xff0c;给出Pytorch的源码、训练数据集以及PyQt6的UI界面。在界面中可以选择各种图片、视频进行检测识别&#xff0c;可进行置信度、Iou阈值设定…

智能分析网关V4智慧冶金工厂视频智能监管方案

一、背景与需求 随着工业4.0的推进&#xff0c;冶金行业正面临着转型升级的压力。为了提高生产效率、降低能耗、保障安全&#xff0c;冶金智能工厂视频监管方案应运而生。该方案通过高清摄像头、智能分析技术、大数据处理等手段&#xff0c;对工厂进行全方位、实时监控&#xf…

详细解读vcruntime140_1.dll修复的手段,如何快速解决vcruntime140_1.dll丢失问题

当出现“无法找到vcruntime140_1.dll”或程序“未能正常启动”时&#xff0c;这通常指示系统中缺失了一个关键文件&#xff1a;vcruntime140_1.dll。作为Visual C Redistributable组件的一部分&#xff0c;这个小文件在很多用Visual Studio编译的C程序运行时发挥着重要作用。解…

Qslog开源库使用

Qslog源码下载地址&#xff1a;https://github.com/victronenergy/QsLog 1.QSLOG使用方式 &#xff08;1&#xff09;源码集成 在你的工程中&#xff0c;直接包含QsLog.pri文件&#xff0c;进行源码集成。当然你也可以包含QsLog.pri后&#xff0c;编译为xx.dll&#xff0c;在…

MVCC原理讲解(深入浅出)

目录 一、什么是MVCC 二、当前读、快照读都是什么鬼 三、当前读 四、快照读 五、数据库的并发场景 六、MVCC解决并发的哪些问题 1.解决问题如下&#xff1a; 七、MVCC的实现原理 1.版本链 八、undo日志 1.undo log 的用途 2.undo log主要分为两种 九、Read View…

简洁思路推理 KMP 算法——子字符串匹配

例题 28. 找出字符串中第一个匹配项的下标 暴力遍历解法 枚举原串 ss 中的每个字符作为「发起点」&#xff0c;每次从原串的「发起点」和匹配串的「首位」开始尝试匹配&#xff1a; 匹配成功&#xff1a;返回本次匹配的原串「发起点」。 匹配失败&#xff1a;枚举原串的下一个…

UI自动化搭建背景及优劣势分析

经常有人会问&#xff0c;什么样的项目才适合进行UI自动化测试呢&#xff1f;UI自动化测试相当于模拟手工测试&#xff0c;通过程序去操作页面上的控件。而在实际测试过程中&#xff0c;经常会遇到无法找到控件&#xff0c;或者因控件定义变更而带来的维护成本等问题。 哪些场…

Docker—入门及Centos7安装

1、Docker入门 1.1、Docker是什么&#xff1f; Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“Build&#xff0c;Ship&#xff0c;and Run Any App,Anywhere”&#xff0c;也就是通过对应组件的封装、分发、部署、运行等生命周期的管理&#xff0c;使用户的APP&…

docker环境搭建及其安装常用软件

centos安装docker Install Docker Engine on CentOS | Docker Docs 下载docker sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io…

MongoDB本地部署并结合内网穿透实现公网访问本地数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 4. 结语 前言 MongoDB是一个基于分布式文件…

TCP 三次握手 四次挥手以及滑动窗口

TCP 三次握手 简介&#xff1a; TCP 是一种面向连接的单播协议&#xff0c;在发送数据前&#xff0c;通信双方必须在彼此间建立一条连接。所谓的 “ 连接” &#xff0c;其实是客户端和服务器的内存里保存的一份关于对方的信息&#xff0c;如 IP 地址、端口号等。 TCP 可以…