攻防演练,作为蓝方,分析nginx日志,统计访问为200的请求路径及其次数

本文主要是介绍攻防演练,作为蓝方,分析nginx日志,统计访问为200的请求路径及其次数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

请求结果为状态码 200 的日志条目。这需要调整正则表达式来捕获状态码,并基于此值进行过滤。

以下是更新后的脚本:

import redef parse_log_file(file_path, output_file_path):# 正则表达式,用于匹配日志条目中的请求URL部分和状态码pattern = re.compile(r'\"GET\s(.*?)\sHTTP/\d\.\d\"\s(200)\s')# 字典,用于存储路径计数path_counts = {}with open(file_path, 'r') as file:for line in file:match = pattern.search(line)if match:url = match.group(1)# 分割URL以获取路径部分,限制到最多4个段path_parts = url.split('?')[0].split('/')# 仅考虑最多4个段的路径filtered_path = '/'.join(path_parts[:5])if filtered_path in path_counts:path_counts[filtered_path] += 1else:path_counts[filtered_path] = 1# 将结果写入输出文件with open(output_file_path, 'w') as output_file:for path, count in sorted(path_counts.items(), key=lambda item: item[1], reverse=True):output_file.write(f"{path}: {count}\n")# 日志文件路径
log_file_path = '/mnt/data/nginx_logs.txt'
output_file_path = '/mnt/data/print.txt'# 解析日志文件并写入输出
parse_log_file(log_file_path, output_file_path)

变更内容:

  1. 正则表达式调整:模式现在捕获特定返回 200 状态码的 GET 请求。
  2. 过滤逻辑:脚本检查捕获的状态码为 ‘200’ 后,再处理 URL 以计算路径计数。

确保日志文件 nginx_logs.txt 已上传到 /mnt/data/ 目录中,以便脚本可以找到并处理它。这个脚本将其结果输出到同一目录下的 print.txt 中,提供了以 200 状态码结果的 GET 请求的路径计数排序。

这篇关于攻防演练,作为蓝方,分析nginx日志,统计访问为200的请求路径及其次数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/918749

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类