当前位置: 首页 > ai >正文

nginx日志分析笔记

nginx日志分析基础

nginx日志通常存储在/var/log/nginx/目录下,默认包含access.logerror.log两种日志文件。access.log记录客户端请求信息,error.log记录服务器错误信息。

日志格式可通过nginx配置文件自定义,常见默认格式如下:

log_format combined '$remote_addr - $remote_user [$time_local] ''"$request" $status $body_bytes_sent ''"$http_referer" "$http_user_agent"';

常用分析工具

AWK命令行分析
快速统计HTTP状态码分布:

awk '{print $9}' access.log | sort | uniq -c | sort -rn

GoAccess实时分析
安装后生成HTML报告:

goaccess access.log -o report.html --log-format=COMBINED

ELK技术栈
使用Elasticsearch+Logstash+Kibana搭建可视化分析平台,Logstash配置示例:

input {file {path => "/var/log/nginx/access.log"start_position => "beginning"}
}
filter {grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}
}
output {elasticsearch {hosts => ["localhost:9200"]}
}

Python分析示例

使用pandas进行流量分析:

import pandas as pdlogs = pd.read_csv('access.log', sep=r'\s(?=(?:[^"]*"[^"]*")*[^"]*$)', engine='python',header=None,names=['ip','ident','user','time','request','status','size','referer','agent']
)
top_ips = logs['ip'].value_counts().head(10)

关键指标分析

流量异常检测
计算每分钟请求量突增:

SELECT DATE_FORMAT(time, '%Y-%m-%d %H:%i') AS minute,COUNT(*) AS requests
FROM nginx_logs
GROUP BY minute
ORDER BY requests DESC
LIMIT 10;

慢请求分析
筛选处理时间超过5秒的请求(需日志包含$request_time字段):

awk '$NF > 5 {print $7}' access.log | sort | uniq -c | sort -nr

安全分析

检测可能的恶意扫描:

from collections import Counterwith open('access.log') as f:urls = [line.split()[6] for line in f]suspect_patterns = ['wp-admin', 'etc/passwd', '.git/']
hits = [url for url in urls if any(p in url for p in suspect_patterns)]
print(Counter(hits).most_common(10))
http://www.xdnf.cn/news/10060.html

相关文章:

  • 每日一题:H指数
  • Vue 3前沿生态整合:WebAssembly与TypeScript深度实践
  • systemctl实现定时任务(比crontab好用)
  • Python中的变量、赋值及函数的参数传递概要
  • ch12 课堂参考代码 及 题目参考思路
  • E. Melody 【CF1026 (Div. 2)】 (求欧拉路径之Hierholzer算法)
  • shadcn/ui
  • 探索智能仓颉:Cangjie Magic开发体验全记录
  • 昂瑞微在蓝牙亚洲大会上隆重推出新一代超低功耗蓝牙SoC芯片OM6627
  • 基于微服务架构的社交学习平台WEB系统的设计与实现
  • 换行符在markdown格式时异常
  • 无人机视角海上漂浮物检测与人员救援检测数据集VOC+YOLO格式2903张6类别
  • Linux安装及管理程序
  • 经营分析会,财务该怎么做?
  • 智能制造全场景数字化解决方案
  • 虚拟旅游:打破时空界限的新体验
  • Centos7搭建zabbix6.0
  • Python训练营---Day40
  • 操作系统学习(五)——线程通信
  • 调用Gensim库训练Word2Vec模型
  • 缓存穿透、缓存击穿、缓存雪崩目前记录(纯日记)
  • cocosCreator 1.8 升级到 2.4
  • 制作一款打飞机游戏63:自动保存
  • SpringAI系列 - 升级1.0.0
  • 大模型-modelscope下载和使用chatglm3-6b模型
  • 运维 pgsql 安装完后某次启动不了
  • 骨架工程—组织主数据管理
  • MySQL常见故障排查与性能优化
  • ReactJS 中的 JSX工作原理
  • Haption在危险、挑战性或受限环境中操作的情况提供了一种创新的遥操作解决方案