服务器环境:centos7.2 64位 tomcat8.5.6
author:yuruixin_china@163.com
安装配置awstats
1. 安装EPEL库
yum -y install epel-release
2. 安装Apache服务器
yum -y install httpd
chkconfig httpd on
service httpd start
3. 安装AWStats
yum -y install awstats
4. 配置文件
创建AWStats的配置文件
cp /etc/awstats/awstats.localhost.localdomain.conf /etc/awstats/awstats.yanglao.com.conf
vim /etc/awstats/awstats.yanglao.com.conf
LogFile="/var/log/tomcat_yanglao/tomcat_yanglao_awstats.log"
SiteDomain="yanglao.com"
HostAliases="yanglao.com 127.0.0.1"
编辑awstats配置文件(此处可通过配置限定访问ip)
vim /etc/httpd/conf.d/awstats.conf
<Directory "/usr/share/awstats/wwwroot">
Options None
AllowOverride None
Require all granted
Allow from all
</Directory>
awstats安装完毕,接下来配置对tomcat日志的分析
vim /etc/awstats/awstats.yanglao.com.conf
LogFormat = "%host %logname %time1 %methodurl %code %bytesd %referer %uaquot"
相应的tomcat中的日志格式需要配置
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %u %t "%r" %s %b %{Referer}i "%{User-Agent}i";" prefix="localhost_access_log." suffix=".txt"/>
另,为了每日对日志分析系统中的日志进行更新,需要如下两个脚本:
update_log.sh
#!/bin/sh
if [ ! -d $awstats_update_log_path ]; then
mkdir $awstats_update_log_path
echo "[info]创建供awstats分析的日志更新所产生的日志文件存放目录结束,继续..."
fi
if [ ! -f $awstats_update_log_path/$awstats_update_log ]; then
touch $awstats_update_log_path/$awstats_update_log
echo "[info]创建供awstats分析的日志更新所产生的日志文件结束,继续..."
fi
updateLog(){
if [ ! -d $tomcat_yanglao_path ]; then
mkdir $tomcat_yanglao_path
echo "[info]创建供awstats分析的日志存放文件目录结束,继续..."
fi
if [ -f $tomcat_yanglao_path/$tomcat_yanglao_awstats ]; then
echo "[info]日志更新之前"
ls -l $tomcat_yanglao_path/$tomcat_yanglao_awstats
rm -rf $tomcat_yanglao_path/$tomcat_yanglao_awstats
echo "[info]$tomcat_yanglao_path/$tomcat_yanglao_awstats 文件已存在,删除过时文件,继续..."
fi
echo "[info]开始复制tomcat日志文件:$tomcat_log/$log_name ->> $tomcat_yanglao_path/$tomcat_yanglao_awstats..."
cp $tomcat_log/$log_name $tomcat_yanglao_path/$tomcat_yanglao_awstats
echo "[info]复制tomcat日志文件完成,继续..."
echo "[info]日志更新之后"
ls -l $tomcat_yanglao_path/$tomcat_yanglao_awstats
#更新日志文件至awstats
echo "[info]开始更新日志文件至awstats..."
perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=yanglao.com -update
echo "[info]更新日志文件至awstats完成 $(date +'%F %H:%M:%S')"
echo "-----------------------------------------------------------------------------"
}
updateLog>>$awstats_update_log_path/$awstats_update_log
awstats_yanglao.sh
#!/bin/sh
# 前一天tomcat日志的名称
export log_name=localhost_access_log.$(date -d '1 days ago' +%Y-%m-%d).txt
#tomcat日志文件存放目录
export tomcat_log=/var/log/tomcat
#以下两个变量不建议修改,若修改需连同/etc/awstats/awstats.yanglao.com.conf中的LogFile一起修改
#供awstats分析的日志存放文件目录
export tomcat_yanglao_path=/var/log/tomcat_yanglao
#供awstats分析的日志文件名
export tomcat_yanglao_awstats=tomcat_yanglao_awstats.log
#供awstats分析的日志更新所产生的日志文件存放目录
export awstats_update_log_path=/var/log/awstats_update_log
#供awstats分析的日志更新所产生的日志文件
export awstats_update_log=awstats_update_log.log
#获取当前脚本所在目录
baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd)
$baseDirForScriptSelf/update_log.sh
脚本介绍:
awstats_yanglao.sh配置脚本使用的变量
注:tomcat_yanglao_path,tomcat_yanglao_awstats两个变量不建议修改,若修改需连同/etc/awstats/awstats.yanglao.com.conf中的LogFile一起修改
update_log.sh执行日志更新操作
使用crontab设置定时执行awstats_yanglao.sh(每天零点执行):
1)crontab -e
2 )插入0 0 * * * /usr/bin/yanglao/awstats_yanglao.sh
3)systemctl reload crond
systemctl restart crond
安装配置成功!
定时执行更新日志脚本后产生的日志截图如下: