nginx 日志分析示例
nginx日志分析
配置nginx access_log,高并发可以适当增大buffer
在Http 模块定义一个日志格式
#注意:此指令只支持http块,不支持server块log_format access_json '{"@timestamp":"$time_iso8601",''"host":"$server_addr",''"clientip":"$remote_addr",''"size":$body_bytes_sent,''"responsetime":$request_time,' #总的处理时间'"upstreamtime":"$upstream_response_time",''"upstreamhost":"$upstream_addr",' #后端应用服务器处理时间'"http_host":"$host",''"uri":"$uri",''"xff":"$http_x_forwarded_for",''"referer":"$http_referer",''"tcp_xff":"$proxy_protocol_addr",''"http_user_agent":"$http_user_agent",''"status":"$status"}';
在server 级别就可以使用前面定义的log 格式
access_log logs/request.access.log access_json buffer=1024k;#默认main 日志格式
$remote_addr #客户端的ip地址(代理服务器,显示代理服务ip)$remote_user #用于记录远程客户端的用户名称(一般为“-”)$time_local #用于记录访问时间和时区$request #用于记录请求的url以及请求方法$status #响应状态码,例如:200成功、404页面找不到等。$body_bytes_sent #给客户端发送的文件主体内容字节数$http_user_agent #用户所使用的代理(一般为浏览器)$http_x_forwarded_for #可以记录客户端IP,通过代理服务器来记录客户端的ip地址$http_referer #可以记录用户是从哪个链接访问过来的
统计IP访问量
awk '{print $1}' access.log | sort -n | uniq | wc -l查看某一时间段的IP访问量(4-5点)
grep "07/Apr/2017:0[4-5]" access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l #查看2022年6月30 14-15点 访问最多的ip,可以根据需要调整时间 grep "30/Jun/2022:14:1[4-5]" ,14:14-15 分钟
grep "30/Jun/2022:1[4-5]" saastest.meifu123.com.log |awk '{print $1}' | sort -n |uniq -c | sort -rn | head -n 100查看访问最频繁的前100个IP
awk '{print $1}' access.log | sort -n |uniq -c | sort -rn | head -n 100查看访问100次以上的IP
awk '{print $1}' access.log | sort -n |uniq -c |awk '{if($1 >100) print $0}'|sort -rn查询某个IP的详细访问情况,按访问频率排序
grep '104.217.108.66' access.log |awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100 页面访问统计
查看访问最频的页面(TOP100)
awk '{print $7}' access.log | sort |uniq -c | sort -rn | head -n 100查看访问最频的页面([排除php页面】(TOP100)
grep -v ".php" access.log | awk '{print $7}' | sort |uniq -c | sort -rn | head -n 100 查看页面访问次数超过100次的页面
cat access.log | cut -d ' ' -f 7 | sort |uniq -c | awk '{if ($1 > 100) print $0}' | less查看最近1000条记录,访问量最高的页面
tail -1000 access.log |awk '{print $7}'|sort|uniq -c|sort -nr|less每秒请求量统计
统计每秒的请求数,top100的时间点(精确到秒)
awk '{print $4}' access.log |cut -c 14-21|sort|uniq -c|sort -nr|head -n 100每分钟请求量统计
统计每分钟的请求数,top100的时间点(精确到分钟)
awk '{print $4}' access.log |cut -c 14-18|sort|uniq -c|sort -nr|head -n 100每小时请求量统计
统计每小时的请求数,top100的时间点(精确到小时)
awk '{print $4}' access.log |cut -c 14-15|sort|uniq -c|sort -nr|head -n 100性能分析
在nginx log中最后一个字段加入$request_time列出传输时间超过 3 秒的页面,显示前20条cat access.log|awk '($NF > 3){print $7}'|sort -n|uniq -c|sort -nr|head -20
列出php页面请求时间超过3秒的页面,并统计其出现的次数,显示前100条cat access.log|awk '($NF > 1 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100
蜘蛛抓取统计
统计蜘蛛抓取次数grep 'Baiduspider' access.log |wc -l
统计蜘蛛抓取404的次数grep 'Baiduspider' access.log |grep '404' | wc -lTCP连接统计
查看当前TCP连接数
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nrawk '{print $1}' $logpath |sort -n|uniq|wc -l
echo "=====系统正在统计某一个时间段IP访问量为====="
#grep "16/Jun/2017:1[8:9]" $logpath |awk '{print $1}'|sort|uniq -c|sort -nr|wc -l
#sed -n "16/Jun/2017:18:00:00/,16/Jun/2017:21:30:00/"p $logpath|awk '{print $1}'|sort|uniq -c|sort -nr|wc -l
#sed -n '/16\/Jun\/2017:18:00:00/,/16\/Jun\/2017:21:00:00/p' $logpath|awk '{print $1}'|sort|uniq -c|sort -nr|wc -l
#sed -n '/16\/Jun\/2017:1[9]/,/16\/Jun\/2017:2[1]/p' /usr/local/nginx/logs/access.log |wc -l
sed -n '/22\/Jun\/2017:1[5]/,/22\/Jun\/2017:1[6]/p' $logpath|awk '{print $1}'|sort -n|uniq|wc -l
echo "=====访问100次以上的IP====="
awk '{print $1}' $logpath|sort -n|uniq -c|awk '{if($1>100) print $0}'|sort -rnecho "=====访问最频繁的请求(TOP50)====="
awk '{print $7}' $logpath |sort |uniq -c|sort -rn |head -n 50echo "=====统计每秒的请求数(TOP50)======"
awk '{print $4}' $logpath|cut -c 14-21|sort |uniq -c|sort -nr|head -n 50echo "=====统计每分钟的请求数(TOP50)====="
awk '{print $4}' $logpath|cut -c 14-18|sort|uniq -c|sort -nr|head -n 50echo "=====统计每小时请求数(TOP50)====="
awk '{print $4}' $logpath|cut -c 14-15|sort|uniq -c|sort -nr|head -n 50echo "=====传输时间超过1秒的请求(TOP20)====="
cat $logpath|awk '($NF > 1){print $7}'|sort -n|uniq -c|sort -nr|head -20
ip限制跟重定向配置
1.nginx 配置新旧域名过渡,把访问域名www.taobao.com的转发到新域名 www.tb.com上配置方式如下
server{server_name www.taobao.com;#方式1 rewrite ^/(.*)$ http://www.tb.com/$1 permanent;# 方式2 if($host != ‘www.tb.com’){rewrite ^/(.*)$ http://www.tb.com/$1 permanent;
}
}2.nginx 实现ip访问控制server{deny 192.168.66.80;allow 192.168.66.0/24;allow 192.16.88.0/16;deny all;
}3.nginx要禁止访问*.txt,*.doc配置如下:
location ~* \.(txt|doc)${root /data/index;deny all;
}
转载:https://blog.csdn.net/weixin_34101784/article/details/92620011
nginx 日志分析示例相关推荐
- Nginx 日志分析
目录: 日志分析 日志的常用需求分析 Nginx 日志切割 日志分析 Nginx 默认日志路径/usr/local/nginx/logs/,其中包含访问日志 access.log 和错误 记 录 日 ...
- 基于awk的nginx日志分析
基于awk的nginx日志分析 基于awk的nginx日志分析 定义 nginx日志 awk分析示例 基于awk的nginx日志分析 在系统调优的时候,经常要去分析nginx的请求日志,统计.分析各个 ...
- python nginx日志分析_Nginx日志分析及脚本编写
在我们日常的运维中,当Nginx服务器正常运行后,我们会经常密切关注Nginx访问日志的相关情况,发现有异常的日志信息需要进行及时处理. 那今天我将跟大家一起来研究和分析Nginx日志,nginx默认 ...
- 使用elk+redis搭建nginx日志分析平台(引)
http://www.cnblogs.com/yjf512/p/4199105.html elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎 ...
- ELK+redis搭建nginx日志分析平台
ELK+redis搭建nginx日志分析平台 发表于 2015-08-19 | 分类于 Linux/Unix | ELK简介 ELKStack即Elasticsearch + Logs ...
- nginx日志分析脚本
#!/usr/bin/env bashecho "" echo " =================================================== ...
- SRE从踩坑到牛逼(二)利用Python进行Arcgis站点分析+Nginx日志分析
前面是日记,或者是牢骚吧 就感觉挺可惜的,一月份的时候因为分析日志的需求,写过一个几十行的代码,能够做到Arcgis站点分析,并且录入到Excel,根据Arcgis站点信息进行日志分析的部分还没写,这 ...
- Nginx日志分析系统——Elastic Stack的系列产品的使用
目录 1.Nginx日志分析系统 1.1.项目需求 2.部署安装Nginx 3.Beats 简介 4.Filebeat 4.1.架构 4.2.部署与运行 4.3.读取文件 4.4.自定义字段 4.5. ...
- php 监控nginx日志文件,Nginx 日志分析及实时监控
本文档以 Nginx 日志为例,介绍如何使用日志分析服务来分析 Nginx 日志中的各种指标. 许多个人站长选取了 Nginx 作为服务器搭建网站,在对网站访问情况进行分析时,需要对 Nginx 访问 ...
最新文章
- (每日一题)CF1139D Steps to One 2021年天梯赛 L3-3 可怜的简单题(期望,莫比乌斯反演,杜教筛)
- 工业相机和镜头说明与图像采集
- linux下安装mysql初始化报错:bin/mysqld: error while loading shared libraries: libnuma.so.1
- LigerUI编辑表格组件单元格校验问题
- 内存资源的申请与释放(CC++)
- Java是先难后易吗_在解决问题的时候,是先难后易还是先易后难?
- linux用grep查找包含两个关键字的命令
- 12种获取节点和元素的代码
- Python基础---时间模块 (二)
- r语言入门与实践Linux,R 学习笔记《一》----R语言初学者指南
- springdata elasticsearch aggregation 操作
- springboot集成quartz
- smb服务器速度测试_360路由器做smb服务器各种情况拷贝速度测试外加加装5g网卡...
- linux分区btrfs,Linux文件系统之btrfs
- 【学习笔记】使用OpenSSL生成CA证书-配置Nginx代理服务器使用HTTPS协议
- 获取汉字拼音首字母和五笔首字母
- 3904三极管是什么功能_为什么有时候我们在电路中串联220电阻
- 射影几何----射影坐标系下点(1,0,1)的位置
- 如何应对学习知识、技能不用就会忘(节选自《穷查理宝典》第十一讲:人类误判心理学之不用就忘倾向)
- MATLAB程序设计与应用(第三版)刘卫国 答案(一)