丹调生活 发表于 2019-1-30 07:43:58

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]
查看完整版本: awstats+jawstats自动分析日志2