、 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 日志处理的更多相关文章

  1. 烂泥:利用awstats分析nginx日志

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 昨天把nginx的日志进行了切割,关于如何切割nginx日志,可以查看<烂泥:切割 ...

  2. 烂泥:切割nginx日志

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 这几天自己看了下博客的nginx日志,发现日志文件发现越来越大. 因为nginx自己不会 ...

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

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

  4. 使用flume-ng聚合双活Nginx日志

    前不久使用Keepalived搭建了Nginx双活代理服务器,以达到一个公网IP后支持多个云主机的多个域名网站的目的.完成后又想在这双活的Nginx上有所有访问网站的日志,之前有了解过Google A ...

  5. nginx日志分析利器GoAccess

    面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些?访问前10的请求有哪些?当你领略过goaccess之后,你就明白,这些问题,除了考验你的脚本背诵记 ...

  6. linux shell:nginx日志切割脚本

    需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名   简要命令: mv /usr/local/tengine/logs/access.l ...

  7. 使用elk+redis搭建nginx日志分析平台

    elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态 ...

  8. Nginx 日志分享

    Nginx 日志对于大部分人来说是个未被发掘的宝藏,总结之前做某日志分析系统的经验,和大家分享一下 Nginx 日志的纯手工分析方式. Nginx 日志相关配置有 2 个地方:access_log 和 ...

  9. elk系列3之通过json格式采集Nginx日志

    preface 公司采用的LNMP平台,跑着挺多nginx,所以可以利用elk好好分析nginx的日志.下面就聊聊它吧. 下面的所有操作都在linux-node2上操作 安装Nginx nginx是开 ...

  10. 使用logrotate管理nginx日志文件

    本文转载自:http://linux008.blog.51cto.com/2837805/555829 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日 ...

随机推荐

  1. python常用命令和基础运算符

    基础运算符 http://www.cnblogs.com/alex3714/articles/5465198.html 身份运算符:is is not成员运算符:in not in ##in 判断元素 ...

  2. Idea解决打开大文件消耗CPU问题

    dea打开大文件的时候,会导致cpu利用率变得特别高,我这边八核i7的配置下,cpu依然飙到了600%~700%,这个时候就需要修改idea的配置(下面以Ubuntu为例). 1.进入到idea安装目 ...

  3. grep 匹配打印的上下几行

    如果在只是想匹配模式的上下几行,grep可以实现.   $grep -5 'parttern' inputfile //打印匹配行的前后5行   $grep -C 5 'parttern' input ...

  4. Jenkins之发送html附件邮件配置

    邮件配置: 邮件内容范例: ${FILE,path="C:\\Users\\Administrator\\.jenkins\\workspace\\XXX自动化测试工程目录\\$JOB_BA ...

  5. pgm14

    这部分讨论在有数据缺失情况下的 learning 问题,这里仍然假定了图结构是已知的. 首先需要讨论的是为什么会缺失,很多情况下缺失并不是“随机”的:有的缺失是人为的,那么某些情况下缺失的可以直接补上 ...

  6. BZOJ2588Count on a tree——LCA+主席树

    题目描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个询问的答案,初始为0,即第一个 ...

  7. BZOJ3625 [Codeforces Round #250]小朋友和二叉树(生成函数+多项式开根)

    设f(n)为权值为n的神犇二叉树个数.考虑如何递推求这个东西. 套路地枚举根节点的左右子树.则f(n)=Σf(i)f(n-i-cj),cj即根的权值.卷积的形式,cj也可以通过卷上一个多项式枚举.可以 ...

  8. Web项目替换jar包中的文件的方法

    经常遇到这样的问题,需要修改jar包中的方法.应该如何做? 1.有些很人性化的框架jar包,比如SpringSecurity,可以修改配置文件指定一个新建的类,让类实现Jar包中的对应的接口就好了. ...

  9. day29 __eq__ 比较

    本质上 "==" 调用的内部方法就是 __eq__() 正常情况下,两个名字相同的变量比较的是内存地址,内存地址当然是不一样的可以使用__eq__来改变成名字相同就相等 1 cla ...

  10. MT【60】几个不常见的函数图像

    此讲部分内容属于课外阅读拓展,学有余力的可以看看. [We need to know, and we will know.]----大卫·希尔伯特(1862-1943) $y=sin\frac{1}{ ...