Nginx 日志处理
、 nginx日志统计独立ip的个数:
awk '{print $1}' /access.log | sort | uniq | wc -l
、 查询访问最多的前10个ip
awk '{print $1}' /access.log | sort | uniq -c | sort -nr | head -
、 查看某段时间的
grep "2012:0[3-6]" nginx.log | 、 访问次数最多的IP
netstat -ntu | tail -n + | awk '{ print $5}' | cut -d : -f | sort | uniq -c| sort -n -r | head -n
注释:
tail -n +
// 去掉前两行
awk '{ print $5}'
// 取数据的低5域(第5列)
cut -d: -f
// 取IP部分。
sort
// 对IP部分进行排序。
uniq -c
// 打印每一重复行出现的次数。(并去掉重复行)
sort -n -r
// 按照重复行出现的次序倒序排列。
head -n 5
// 取排在前5位的IP 、 假设统计一天 access.log 日志每小时每IP访问次数
awk -vFS="[:]" '{gsub("-.*","",$1);num[$2" "$1]++}END{for(i in num)print i,num[i]}' logs/access.log
二、生产环境日志排查统计:
1、 访问最多IP 排序
# cat show_log.sh
// 执行 ./show_log.sh file.log
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Eroor:please specify logfile."
exit 0
else
LOG=$1
fi
if [ ! -f $1 ]; then
echo "Sorry,not find this nginx file ,please tey again!"
exit 0
fi
#### 访问最多的IP #####
echo "Most of the ip:"
echo " ------------- "
awk '{print $1}' $LOG |sort |uniq -c |sort -nr |head -10
echo
echo
##### 产生时间段 #####
echo "Most of the time:"
echo " ------------- "
awk '{print $4}' $LOG | cut -c 14-18 |sort |uniq -c |sort -nr |head -10
echo
echo
##### 最多的页面 #######
echo "Most of the page:"
echo " ------------- "
# awk '{print $11}' $LOG |sed 's/^.* \(.cn* \)\''/\ 1/g' |sort |uniq -c |sort -nr |head -10
awk '{print $11}' $LOG |sed 's/^.*\(.cn*\)\"/\1/g' |sort |uniq -c |sort -nr |head -10
echo
echo
三、日志分割
以天为单位进行分割示例:
加入Crontab 进行执行每小时执行
crontab -e
0 * * * * rm-log.sh >/dev/null >&1 注释:
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
#!/bin/bash
#nginx
logs_path="/data/logs"
logs_dir=${log_path}/$(date -d"yesterday" +"%Y")/$(date -d "yesterday" +"%m")
logs_file=$(date -d "yesterday" +"%Y%m%d")
mkdir -p /data/backuplogs/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
tar -cf ${logs_path}/${logs_file}.tar.gz ${logs_path}*.log_path}/*.log
rm -rf ${logs_path}/${logs_file}.tar.gz /data/backuplogs/${date -d "yesterday" +"%Y"}/$(date -d "yesterday" +"%m")
# // 重新启动nginx
/etc/init.d/nginx restart
# // 自动删除一个月前的打包日志文件;
for oldfiles in 'find /data/backuplogs/$(date -d "30 day ago" +"%Y")/$(date -d "30 days ago "%m")/ -type f -mtime +30'
do
rm -f $oldfiles
done
Nginx 日志处理的更多相关文章
- 烂泥:利用awstats分析nginx日志
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 昨天把nginx的日志进行了切割,关于如何切割nginx日志,可以查看<烂泥:切割 ...
- 烂泥:切割nginx日志
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 这几天自己看了下博客的nginx日志,发现日志文件发现越来越大. 因为nginx自己不会 ...
- ELK+redis搭建nginx日志分析平台
ELK+redis搭建nginx日志分析平台发表于 2015-08-19 | 分类于 Linux/Unix | ELK简介ELKStack即Elasticsearch + Logstas ...
- 使用flume-ng聚合双活Nginx日志
前不久使用Keepalived搭建了Nginx双活代理服务器,以达到一个公网IP后支持多个云主机的多个域名网站的目的.完成后又想在这双活的Nginx上有所有访问网站的日志,之前有了解过Google A ...
- nginx日志分析利器GoAccess
面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些?访问前10的请求有哪些?当你领略过goaccess之后,你就明白,这些问题,除了考验你的脚本背诵记 ...
- linux shell:nginx日志切割脚本
需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名 简要命令: mv /usr/local/tengine/logs/access.l ...
- 使用elk+redis搭建nginx日志分析平台
elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态 ...
- Nginx 日志分享
Nginx 日志对于大部分人来说是个未被发掘的宝藏,总结之前做某日志分析系统的经验,和大家分享一下 Nginx 日志的纯手工分析方式. Nginx 日志相关配置有 2 个地方:access_log 和 ...
- elk系列3之通过json格式采集Nginx日志
preface 公司采用的LNMP平台,跑着挺多nginx,所以可以利用elk好好分析nginx的日志.下面就聊聊它吧. 下面的所有操作都在linux-node2上操作 安装Nginx nginx是开 ...
- 使用logrotate管理nginx日志文件
本文转载自:http://linux008.blog.51cto.com/2837805/555829 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日 ...
随机推荐
- awk、sed、grep三大shell文本处理工具之awk的应用
awk 1.是什么 是一个编程语言.支持变量.数组.函数.流程控制(if...else/for/while) 单行程序语言. 2.工作流程 读取file.标准输入.管道给的数据,从第一行开始读取,逐行 ...
- Delphi的关键字
Constructor;构造器,定义构造函数使用Constructor关键字
- Spring各个jar包的作用
Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects:Spring提供的对AspectJ框架的整合Spring Beans:Spring I ...
- BZOJ4998星球联盟——LCT+并查集(LCT动态维护边双连通分量)
题目描述 在遥远的S星系中一共有N个星球,编号为1…N.其中的一些星球决定组成联盟,以方便相互间的交流.但是,组成 联盟的首要条件就是交通条件.初始时,在这N个星球间有M条太空隧道.每条太空隧道连接两 ...
- BZOJ2277[Poi2011]Strongbox——数论
题目描述 Byteasar is a famous safe-cracker, who renounced his criminal activity and got into testing and ...
- Spring bean默认为单例模式会引发并发问题吗
在web项目中使用spring,如果网站同时很多人访问,这时候使用spring默认的单例模式的bean是否合适呢?回不回影响效率或者产生交叉呢? Spring默认的单例模式的bean,因为是单例的,所 ...
- go vendor目录
参考 https://blog.csdn.net/u010649766/article/details/80327035 那么查找依赖包路径的解决方案如下: 当前包下的vendor目录. 向上级目录查 ...
- Java8的Stream流(一) --- 基础用法
Java8中的Stream Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象. Stream的特性及优点: 无存储. Stream不是一种数据 ...
- Elasticsearch基础知识要点QA
前言:本文为学习整理实践他人成果的记录型博客.在此统一感谢各原作者,如果你对基础知识不甚了解,可以通过查看Elasticsearch权威指南中文版, 此处注意你的elasticsearch版本,版本不 ...
- babel的使用及babel与gulp结合工作流
Babel 通过语法转换器支持最新版本的 JavaScript . 它有非常多的插件,这些插件能够允许我们立刻使用新语法,无需等待浏览器支持. 那我们怎么使用babel呢? 首先我们来了解babel基 ...