awstats+jawstats自动分析日志2
我的环境是:1、有多个反向代理(VPS)在异地
2、每台反向代理承担多个域名
3、每个域名不一定都有用户访问
要求:实现日志自动分析.
需要注意的是关于每个域名的awstats分析结果的保存位置规划。本人脚本一般,大神略过。呵呵
我的作法:
反向代理:每天定时压缩日志到一个固定的目录, 判断文件如果大于8M,那么认为它是有写日志的,然后开始压缩。
http://myhat.blog.运维网.com/391263/980220有个多域名,每个域名每天都做日志轮换。
做个计划任务,每天自动压缩日志
[*]#!/bin/bash -x
[*]#used for zip nginx log
[*]logs_path="/usr/local/nginx/logs"
[*]temp_path="/nginx_log_temp"
[*]YESTERDAY=`date +%Y%m%d -d "yesterday" `
[*]
[*]test -e $temp_path || mkdir $temp_path
[*]
[*]rm -rf $temp_path/*
[*]
[*]cd ${logs_path}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
[*]
[*]for i in domain1 domain2 domain3
[*]do
[*] if [ `du$i.log.$YESTERDAY|awk '{if($1>8208){print $NF}}'` ];then
[*] tar -czf $i.log.$YESTERDAY.tar.gz $i.log.$YESTERDAY
[*] mv$i.log.$YESTERDAY.tar.gz $temp_path
[*] fi
[*]done
日志分析服务器:(没有任何的端口隐射。)
a、每天定时sftp 下载昨天的日志,自动解压到固定的目录(不同的反向代理解析到不同的目录),前提是要做好SSH免密码登录. (略过)
[*]#!/bin/bash -x
[*]#used for donwload logfile
[*]down_tmp="/tmp/down_tmp"
[*]test -e $down_tmp || mkdir $down_tmp
[*]
[*]for i in domain1 domain2 domain3
[*]do
[*] test -e /tmp/$i || mkdir /tmp/$i
[*]done
[*]
[*]for i in a.a.a.a b.b.b.b c.c.c.c d.d.d.d
[*]do
[*] cd/tmp/down_tmp/$i
[*] test -e /tmp/unzip_tmp/$i || mkdir -p /tmp/unzip_tmp/$i
[*] sftp root@$i:/nginx_log_temp//dev/null
[*]30 9 * * * /usr/local/awstats/tools/awstats_updateall.pl now > /dev/null
页:
[1]