首页/新闻资讯/正文详情

服务器运维(五十)linux nginx攻击慢请求检查 —东方仙盟

发布时间:2026/9/25 19:48:13 来源:云帆数科 栏目:资讯中心
服务器运维(五十)linux nginx攻击慢请求检查 —东方仙盟
网站慢请求批量读取nice -n 19 find /www/wwwlogs -maxdepth 1 -name *.log ! -name *.gz | xargs awk -v OFS| FILENAME ! lastfile {lastfileFILENAME} $4 ~ /04:|05:|06:|07:|08:/ { rt for(i1;iNF;i){ if($i ~ /^[0-9]\.[0-9]$/ $i 1000){ rt$i } } if(rt 3){ print FILENAME, $4, $1, $7, rt, $10, $0 } } | sort -t| -k5 -nr | head -300 /tmp/cyspy/slow_log_result2.txt一、命令整体目标以最低系统资源优先级批量遍历所有站点 Nginx 日志筛选凌晨 04-08 点、单次请求耗时超过 3 秒的慢请求按耗时从大到小排序取前 300 条结果保存到临时文件全程尽量不抢占网站业务 CPU/IO不会卡服务器。二、分段逐层拆解从左到右1.nice -n 19作用设置整条流水线所有进程 CPU 调度优先级为最低档 19规则Linux nice 范围-20 ~ 19数字越大 CPU 优先级越低线上 Nginx/MySQL/PHP 默认 nice0效果服务器 CPU 资源优先分给网站访客业务日志统计脚本仅在 CPU 空闲时运行不会因为分析几 GB 大日志挤占业务 CPU避免页面卡顿。2.find /www/wwwlogs -maxdepth 1 -name *.log ! -name *.gz遍历日志目录筛选待分析日志文件/www/wwwlogs宝塔默认日志根目录-maxdepth 1仅读取一级目录文件不递归子文件夹防止误扫描深层缓存 / 备份日志-name *.log只匹配未切割压缩的原始日志! -name *.gz排除已日志切割压缩的.gz归档文件避免解压消耗 IO。3.| xargs awk -v OFS| ...管道把 find 找到的日志文件名批量传给 awk 逐文件流式解析xargs分批把日志文件路径传给 awk流式逐行读取日志不会一次性把 2GB 大日志全载入内存解决大日志内存溢出问题-v OFS|定义输出分隔符为竖线|字段分割清晰后续 sort 可以精准按耗时排序单引号内部是 awk 处理逻辑下面单独拆分。awk 内部代码逐行解释awk# 缓存当前正在读取的日志文件名对应站点 FILENAME ! lastfile {lastfileFILENAME} # 匹配日志时间字段包含04、05、06、07、08点故障完整时段 $4 ~ /04:|05:|06:|07:|08:/ { rt # 循环遍历一整行日志所有字段自动匹配request_time解决日志字段错位问题 for(i1;iNF;i){ # 匹配规则小数数字、数值小于1000就是请求耗时rt单位秒 if($i ~ /^[0-9]\.[0-9]$/ $i 1000){ rt$i } } # 筛选耗时大于3秒的异常慢请求你设定阈值3秒正常业务3秒 if(rt 3){ # 输出7段内容用 | 分隔 # FILENAME日志文件名对应站点域名 # $4访问时间 # $1客户端IP # $7请求URL路径 # rt单次请求耗时秒排序关键字 # $10本次响应返回字节大小 # $0完整原始日志行方便回溯完整信息 print FILENAME, $4, $1, $7, rt, $10, $0 } }核心优势不依赖固定字段下标提取 request_time哪怕不同站点日志 UA、状态码字段数量不一致也能自动识别耗时数值解决之前输出乱码错位的问题。4.| sort -t| -k5 -nr对 awk 输出的慢请求结果排序-t|以竖线|作为字段分隔符-k5以第 5 列 rt 请求耗时作为排序依据-n按数字大小排序不是文本字典序-r倒序耗时最长的请求排在最前面。5.| head -300只保留耗时 TOP300 条异常记录避免输出几万行海量数据占用磁盘。6. /tmp/cyspy/slow_log_result2.txt把最终筛选、排序后的结果写入指定文件不在屏幕刷屏前置要求必须提前执行mkdir -p /tmp/cyspy创建文件夹否则会报无目录写入失败。三、输出文件每一行字段含义竖线分隔站点日志文件|访问时间|攻击IP|请求路径|耗时(秒)|返回字节|完整原始日志示例/www/wwwlogs/51.onelink.ynwlzc.cn.log|[29/May/2026:08:23:53|104.155.235.142|/database.ini|8.60|2095|完整原始日志文本四、配套补充优化解决 IO 占用极致低负载1. CPUIO 双重限流超大日志必用不打满磁盘 IObash运行nice -n 19 ionice -c 3 find /www/wwwlogs -maxdepth 1 -name *.log ! -name *.gz | xargs awk -v OFS| FILENAME ! lastfile {lastfileFILENAME} $4 ~ /04:|05:|06:|07:|08:/ { rt for(i1;iNF;i){ if($i ~ /^[0-9]\.[0-9]$/ $i 1000){ rt$i } } if(rt 3){ print FILENAME, $4, $1, $7, rt, $10, $0 } } | sort -t| -k5 -nr | head -300 /tmp/cyspy/slow_log_result2.txtionice -c 3IO 闲置调度仅当磁盘无业务读写时才读取日志杜绝扫描日志把磁盘 IO 打满。2. 查看结果命令bash运行cat /tmp/cyspy/slow_log_result2.txt # 分页查看 less /tmp/cyspy/slow_log_result2.txt五、关键适用场景 优缺点优点原生系统工具不装第三方程序数据不外泄符合你安全要求nice -n19最低 CPU 优先级不抢占线上业务流式读取日志不会一次性加载几 GB 日志进内存自动匹配 request_time兼容所有宝塔不同格式日志无字段错位乱码按耗时倒序优先展示危害最大的慢速扫描 IP/URL。局限nice仅限制 CPU不限制磁盘 IO超大日志建议搭配ionice重启 Nginx 时被强制杀死的超长未完成连接不会写入日志无法捕获仅筛选 04-08 点其他时段慢请求不会抓取。人人皆为创造者共创方能共成长每个人都是使用者也是创造者是数字世界的消费者更是价值的生产者与分享者。在智能时代的浪潮里单打独斗的发展模式早已落幕唯有开放连接、创意共创、利益共享才能让个体价值汇聚成生态合力让技术与创意双向奔赴实现平台与伙伴的快速成长、共赢致远。原创永久分成共赴星辰大海原创创意共创、永久收益分成是东方仙盟始终坚守的核心理念。我们坚信每一份原创智慧都值得被尊重与回馈以永久分成锚定共创初心让创意者长期享有价值红利携手万千伙伴向着科技星辰大海笃定前行拥抱硅基 生命与数字智能交融的未来共筑跨越时代的数字文明共同体。东方仙盟拥抱知识开源共筑数字新生态在全球化与数字化浪潮中东方仙盟始终秉持开放协作、知识共享的理念积极拥抱开源技术与开放标准。我们相信唯有打破技术壁垒、汇聚全球智慧才能真正推动行业的可持续发展。开源赋能中小商户通过将前端异常检测、跨系统数据互联等核心能力开源化东方仙盟为全球中小商户提供了低成本、高可靠的技术解决方案让更多商家能够平等享受数字转型的红利。共建行业标准我们积极参与国际技术社区与全球开发者、合作伙伴共同制定开放协议 与技术规范推动跨境零售、文旅、餐饮等多业态的系统互联互通构建更加公平、高效的数字生态。知识普惠共促发展通过开源社区 、技术文档与培训体系东方仙盟致力于将前沿技术转化为可落地的行业实践赋能全球合作伙伴共同培育创新人才推动数字经济 的普惠式增长阿雪技术观在科技发展浪潮中我们不妨积极投身技术共享。不满足于做受益者更要主动担当贡献者 。无论是分享代码、撰写技术博客还是参与开源项目 维护改进每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地我们携手在此探索硅基 生命为科技进步添砖加瓦。Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Dont just be the one reaping all the benefits; step up and be a contributor too. Whether youre tossing out your code snippets , hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. Were gonna team up and explore the whole silicon - based life thing, and in the process, well be fueling the growth of technology

相关推荐

【课程设计/毕业设计】基于 Django 的智慧家装全屋定制推荐平台的设计与实现 数据驱动的全屋定制智能方案推荐系统【附源码、数据库、万字文档】
【课程设计/毕业设计】基于 Django 的智慧家装全屋定制推荐平台的设计与实现 数据驱动的全屋定制智能方案推荐系统【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… · 2026/9/24 16:11:38

【毕业设计】基于 Django 的物品协同过滤智能音乐播放系统的设计与实现 基于协同过滤算法的 Django 音乐推荐播放系统(源码+文档+远程调试,全bao定制等)
【毕业设计】基于 Django 的物品协同过滤智能音乐播放系统的设计与实现 基于协同过滤算法的 Django 音乐推荐播放系统(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… · 2026/9/24 8:22:30

基于 DAG 拓扑排序的并行 AI 工作流引擎
基于 DAG 拓扑排序的并行 AI 工作流引擎

基于 DAG 拓扑排序的并行 AI 工作流引擎 一、从嵌套调用到 DAG 调度 构建企业级 AI 应用时,常需将大模型调用、外部 API 和数据库查询组合成工作流。如果仅使用线性调用链,随着流程复杂化,代码很容易退化为难以维护的嵌套结构。 另一个常见问… · 2026/9/19 18:41:37

AI 编程工具内存泄露与卡顿治理:大型代码库下的 IDE 优化配置
AI 编程工具内存泄露与卡顿治理:大型代码库下的 IDE 优化配置

AI 编程工具内存泄露与卡顿治理:大型代码库下的 IDE 优化配置随着 AI 编程助手(Cursor、GitHub Copilot、Claude Code 等)在工程团队中成为每日标配,一个几乎所有深度用户都会遭遇的工程痛点随之而来: 在打开包含数十万… · 2026/9/25 19:48:04

中医AI辅助诊断系统四诊合参精准辩证体会——一例老年女性湿疮患者治疗实录
中医AI辅助诊断系统四诊合参精准辩证体会——一例老年女性湿疮患者治疗实录

慢性湿疹是皮肤科常见顽疾,以皮损多形、剧烈瘙痒、反复发作为特征,病程动辄几月至数年。中医认为其病位在肌腠,其本在脾,其标湿、热、痰、燥和瘀错杂。本文依托知医邦中医AI辅助诊疗系统四诊合参,以一例老年女性湿疮患… · 2026/9/25 19:47:14

2024数学建模A题板凳龙:运动学模型、欧拉法代码与论文排版全解析
2024数学建模A题板凳龙:运动学模型、欧拉法代码与论文排版全解析

简介:这份资源是2024年全国大学生数学建模竞赛A题“板凳龙”的完整参赛成果,包含一篇Word论文与配套源代码,面向具备数学建模与编程基础的高校学生及研究人员,尤其适合关注运动学建模、路径优化与数值求解的群体。压缩包内共1个do… · 2026/9/25 19:47:08

Atlas 300V 24G推理卡部署YOLO全流程:从环境搭建到性能优化
Atlas 300V 24G推理卡部署YOLO全流程:从环境搭建到性能优化

1. 先搞清楚它是什么卡:Atlas 300V 24G的真实定位1.1 "300V"和"24G"背后的产品身份"Atlas"这个名字在不同领域出现过很多次,有做数据库中间件的,有做机器人控制的,但在AI部署这个圈子里&#xff0c… · 2026/9/25 19:47:08

AWQ、MinMax、GPTQ 三大校准算法原理与选型指南:Model Optimizer 量化精度怎么选
AWQ、MinMax、GPTQ 三大校准算法原理与选型指南:Model Optimizer 量化精度怎么选

AWQ、MinMax、GPTQ 三大校准算法原理与选型指南:Model Optimizer 量化精度怎么选 【免费下载链接】Model-Optimizer A unified library of SOTA model optimization techniques like quantization, distillation, pruning, neural architecture search, speculative… · 2026/9/25 19:46:49

Butterbase 模板实战:如何一键克隆 butterbaseCRM 与 butterSupport 两个生产级应用
Butterbase 模板实战:如何一键克隆 butterbaseCRM 与 butterSupport 两个生产级应用

Butterbase 模板实战:如何一键克隆 butterbaseCRM 与 butterSupport 两个生产级应用 【免费下载链接】butterbase-oss Open-source backend-as-a-service. Postgres, auth, storage, functions, AI gateway, MCP. 项目地址: https://gitcode.com/gh_mirrors/bu/bu… · 2026/9/25 19:46:43

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码