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 日志分析示例相关推荐

  1. Nginx 日志分析

    目录: 日志分析 日志的常用需求分析 Nginx 日志切割 日志分析 Nginx 默认日志路径/usr/local/nginx/logs/,其中包含访问日志 access.log 和错误 记 录 日 ...

  2. 基于awk的nginx日志分析

    基于awk的nginx日志分析 基于awk的nginx日志分析 定义 nginx日志 awk分析示例 基于awk的nginx日志分析 在系统调优的时候,经常要去分析nginx的请求日志,统计.分析各个 ...

  3. python nginx日志分析_Nginx日志分析及脚本编写

    在我们日常的运维中,当Nginx服务器正常运行后,我们会经常密切关注Nginx访问日志的相关情况,发现有异常的日志信息需要进行及时处理. 那今天我将跟大家一起来研究和分析Nginx日志,nginx默认 ...

  4. 使用elk+redis搭建nginx日志分析平台(引)

    http://www.cnblogs.com/yjf512/p/4199105.html elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎 ...

  5. ELK+redis搭建nginx日志分析平台

    ELK+redis搭建nginx日志分析平台 发表于 2015-08-19   |   分类于 Linux/Unix   |   ELK简介 ELKStack即Elasticsearch + Logs ...

  6. nginx日志分析脚本

    #!/usr/bin/env bashecho "" echo " =================================================== ...

  7. SRE从踩坑到牛逼(二)利用Python进行Arcgis站点分析+Nginx日志分析

    前面是日记,或者是牢骚吧 就感觉挺可惜的,一月份的时候因为分析日志的需求,写过一个几十行的代码,能够做到Arcgis站点分析,并且录入到Excel,根据Arcgis站点信息进行日志分析的部分还没写,这 ...

  8. Nginx日志分析系统——Elastic Stack的系列产品的使用

    目录 1.Nginx日志分析系统 1.1.项目需求 2.部署安装Nginx 3.Beats 简介 4.Filebeat 4.1.架构 4.2.部署与运行 4.3.读取文件 4.4.自定义字段 4.5. ...

  9. php 监控nginx日志文件,Nginx 日志分析及实时监控

    本文档以 Nginx 日志为例,介绍如何使用日志分析服务来分析 Nginx 日志中的各种指标. 许多个人站长选取了 Nginx 作为服务器搭建网站,在对网站访问情况进行分析时,需要对 Nginx 访问 ...

最新文章

  1. (每日一题)CF1139D Steps to One 2021年天梯赛 L3-3 可怜的简单题(期望,莫比乌斯反演,杜教筛)
  2. 工业相机和镜头说明与图像采集
  3. linux下安装mysql初始化报错:bin/mysqld: error while loading shared libraries: libnuma.so.1
  4. LigerUI编辑表格组件单元格校验问题
  5. 内存资源的申请与释放(CC++)
  6. Java是先难后易吗_在解决问题的时候,是先难后易还是先易后难?
  7. linux用grep查找包含两个关键字的命令
  8. 12种获取节点和元素的代码
  9. Python基础---时间模块 (二)
  10. r语言入门与实践Linux,R 学习笔记《一》----R语言初学者指南
  11. springdata elasticsearch aggregation 操作
  12. springboot集成quartz
  13. smb服务器速度测试_360路由器做smb服务器各种情况拷贝速度测试外加加装5g网卡...
  14. linux分区btrfs,Linux文件系统之btrfs
  15. 【学习笔记】使用OpenSSL生成CA证书-配置Nginx代理服务器使用HTTPS协议
  16. 获取汉字拼音首字母和五笔首字母
  17. 3904三极管是什么功能_为什么有时候我们在电路中串联220电阻
  18. 射影几何----射影坐标系下点(1,0,1)的位置
  19. 如何应对学习知识、技能不用就会忘(节选自《穷查理宝典》第十一讲:人类误判心理学之不用就忘倾向)
  20. MATLAB程序设计与应用(第三版)刘卫国 答案(一)

热门文章

  1. 前端小奈叽须知---js/jquery(目前分不清)
  2. Java永远的伤-中国1927年12月31日午夜
  3. OpenGL 空间、投影、视角
  4. 白银实时价格应该在最适合的地方下注
  5. 网站建设供应商怎么选?
  6. Linux下的C学习笔记
  7. hmac java_java 创建 HMAC 签名
  8. 【Qt】QLineEdit点击调用surface触摸键盘
  9. mysql主从 复制新库_关于MySQL主从复制的几种复制方式总结
  10. python和c语言有什么关系-C语言和python的关系怎样理解?