目录
一.日志分割概述
- 随着网站的访问量增加,默认情况下apache的单个日志文件也会越来越大,日志文件占用磁盘空间很大,查看相关信息不方便
- 日志分割对于网站的意义重大,以下两种工具将apache的日志按每天的日期进行自动分割
- Apache自带的rotatelogs分割工具
- 第三方工具cronolog分割日志
- 日志出现在服务开启之后
二.rotatelogs分割工具
- rotatelogs的配置格式
- ErrorLog “| /usr/sbin/rotatelogs -l logs/error_%Y%m%d.log 86400”
- ErrorLog 表示错误日志名;/user/sbin/rotalogs 表示命令的绝对路径;-l 指定日志文件的路径 ;%Y%m%d.log 86400 表示按天的分割,一天时间为86400秒
- CustomLog “| /usr/sbin/rotatelogs -l logs/access_%Y%m%d.log 86400”
- CustomLog 表示非错误日志名
- rotatelogs分割工具的使用
- 安装Apache服务
[root@localhost ~]# rpm -q httpd
未安装软件包 httpd
[root@localhost ~]# yum install -y httpd
[root@localhost ~]# rpm -q httpd
httpd-2.4.6-90.el7.centos.x86_64
[root@localhost ~]#
-
配置参数
//未开启服务之前logs中没有文件
[root@localhost ~]# cd /etc/httpd/
[root@localhost httpd]# ls
conf conf.d conf.modules.d logs modules run
[root@localhost httpd]# cd logs/
[root@localhost logs]# ls
[root@localhost logs]#
//开启服务之后自动生成日志文件,但是会将所有日志推挤在一起
[root@localhost logs]# systemctl start httpd
[root@localhost logs]# ls
access_log error_log
[root@localhost logs]#
//配置rotatelogs参数
[root@localhost logs]# vim /etc/httpd/conf/httpd.conf
ErrorLog "| /usr/sbin/rotatelogs -l logs/error_%Y%m%d.log 86400"
CustomLog "| /usr/bin/rotatelogs -l logs/access_%Y%m%d.log 86400" combined
//重启服务,查看日志文件
[root@localhost httpd]# systemctl stop firewalld
[root@localhost httpd]# setenforce 0
[root@localhost httpd]# systemctl stop httpd
[root@localhost httpd]# systemctl start httpd
[root@localhost httpd]# ls
access_log error_20191216.log error_log
[root@localhost httpd]# date -s 2019-12-17
2019年 12月 17日 星期二 00:00:00 CST
[root@localhost httpd]# ls
access_log error_20191216.log error_log
//进入网页查看服务
[root@localhost httpd]# ls
access_20191217.log access_log error_20191216.log error_20191217.log error_log
[root@localhost httpd]#
三.cronolog分割工具
- 使用cronolog分割工具需要,先安装相关软件包
- 配置apache的主配置文件
- 具体操作步骤如下
[root@localhost ~]# ls
anaconda-ks.cfg cronolog-1.6.2-14.el7.x86_64.rpm initial-setup-ks.cf
[root@localhost ~]# rpm -ivh cronolog-1.6.2-14.el7.x86_64.rpm //安装cronolog工具
警告:cronolog-1.6.2-14.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:cronolog-1.6.2-14.el7 ################################# [100%]
[root@localhost ~]# which cronolog
/usr/sbin/cronolog
[root@localhost ~]# rpm -q httpd
httpd-2.4.6-90.el7.centos.x86_64
[root@localhost ~]# cd /var/log/httpd/ //进入apache日志存放路径
[root@localhost httpd]# ls
[root@localhost httpd]# vim /etc/httpd/conf/httpd.conf //配置主配置文件
ErrorLog "| /usr/sbin/cronolog logs/error_%Y%m%d.log"
CustomLog "| /usr/sbin/cronolog logs/access_%Y%m%d.log" combined
[root@localhost httpd]# systemctl start httpd
[root@localhost httpd]# ls
error_20191216.log
[root@localhost httpd]# date
2019年 12月 16日 星期一 15:13:57 CST
[root@localhost httpd]# date -s 2019-12-17 //修改日期,验证日志分割
2019年 12月 17日 星期二 00:00:00 CST
[root@localhost httpd]# ls
error_20191216.log
[root@localhost httpd]# systemctl stop httpd
[root@localhost httpd]# systemctl start httpd
[root@localhost httpd]# ls
error_20191216.log error_20191217.log
[root@localhost httpd]#
四.AWStats日志分析系统
- AWStats日志分析系统,Perl语言开发的一款开源日志分析系统
- AWStats不仅可用分析Apache网站服务器访问,也可以Apache、Samba、Vsftpd、IIS等服务器的访问日志
- 信息结合crond等计划任务,可以对日志内容定期进行分析
- awstats操作步骤
安装DNS、Apache服务
[root@localhost ~]# yum install bind httpd -y
//配置DNS服务器
[root@localhost ~]# vim /etc/named.conf //配置主配置文件
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
[root@localhost ~]# vim /etc/named.rfc1912.zones //配置区域配置文件
zone "kgc.com" IN {
type master;
file "kgc.com.zone";
allow-update { none; };
};
[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# cp -p named.localhost kgc.com.zone
[root@localhost named]# ls
data dynamic kgc.com.zone named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# vim kgc.com.zone //配置数据配置文件
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 192.168.43.200
[root@localhost named]# systemctl stop firewalld
[root@localhost named]# setenforce 0
[root@localhost named]# systemctl start named
[root@localhost named]#
验证DNS服务(客户机)
[root@localhost ~]# vim /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.43.200
[root@localhost ~]# su
[root@localhost ~]# nslookup www.kgc.com
Server: 192.168.43.200
Address: 192.168.43.200#53
Name: www.kgc.com
Address: 192.168.43.200
[root@localhost ~]#
配置Apache服务
[root@localhost tools]# vim /etc/httpd/conf/httpd.conf //配置主配置文件
Listen 192.168.43.200:80
#Listen 80
ServerName www.kgc.com:80
[root@localhost tools]# systemctl start httpd //开启服务
验证apache服务
配置awstats分析系统
- 解压
[root@localhost ~]# ls
anaconda-ks.cfg awstats-7.6.tar.gz initial-setup-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面
[root@localhost ~]# tar xzvf awstats-7.6.tar.gz -C /usr/local
- 重命名,防止文件不识别
[root@localhost ~]#
[root@localhost ~]# cd /usr/local
[root@localhost local]# ls
awstats-7.6 bin etc games include lib lib64 libexec sbin shar
[root@localhost local]# mv awstats-7.6/ awstats
[root@localhost local]# ls
awstats bin etc games include lib lib64 libexec sbin share s
- 安装awstats系统
[root@localhost awstats]# cd tools/
[root@localhost tools]# ls
awstats_buildstaticpages.pl awstats_updateall.pl httpd_conf
awstats_configure.pl dolibarr logresolvemerge.pl
awstats_exportlib.pl geoip_generator.pl maillogconvert.pl
[root@localhost tools]#./awstats_configure.pl
Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf //输入配置文件
Your web site, virtual server or profile name:
> www.kgc.com //输入域名
- 配置apache主配置文件,添加awstats参数
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
# Order allow,deny
# Allow from all
Require all granted
</Directory>
- 配置awstats参数,设置数据存放路径
[root@localhost html]# vim /etc/awstats/awstats.www.kgc.com.conf
LogFile="/var/log/httpd/access_log" //修改访问日志文件位置
DirData="/var/lib/awstats" //awstats 默认不存在(需要创建)
[root@localhost ~]# cd /var/lib
[root@localhost lib]# ls
AccountsService dnsmasq lldpad polkit-1 systemd
alsa flatpak logrotate postfix tpm
alternatives fprint machines pulse tuned
authconfig games misc rpcbind udisks2
bluetooth gdm mlocate rpm upower
certmonger geoclue net-snmp rpm-state vmware
chrony gssproxy NetworkManager rsyslog xkb
color hyperv nfs samba yum
colord initramfs ntp selinux
dav ipa-client os-prober setroubleshoot
dbus iscsi PackageKit sss
dhclient libvirt plymouth stateless
[root@localhost lib]# mkdir awstats
- 重启apache服务
[root@localhost lib]# systemctl restart httpd
- 验证awstats系统
- 更新awstats系统的数据
[root@localhost ~]# cd /usr/local/awstats/tools
[root@localhost tools]# ls
awstats_buildstaticpages.pl geoip_generator.pl urlaliasbuilder.pl
awstats_configure.pl httpd_conf webmin
awstats_exportlib.pl logresolvemerge.pl xslt
awstats_updateall.pl maillogconvert.pl
dolibarr nginx
[root@localhost tools]# ./awstats_updateall.pl now //更新数据
- 进行计划性周期任务,每两分钟更新一次awstats统计的数据
[root@localhost html]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@localhost html]# crontab -l
*/2 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
- 优化网页地址
[root@localhost tools]# cd /var/www/html
[root@localhost html]# ls
aws.html
[root@localhost html]# vim aws.html
<html>
<head>
<meta http-equiv=refresh content="0;url=http://www.kgc.com/awstats/awstats.pl?config=www.kgc.com">
</head>
<body></body>
</html>
- 使用http://www.kgc.com/aws.html 使用此地址直接访问,验证
注:需要将awstats的版本号,重命名,否则会找不到路径,出现错误