Linux系统架构-----Apache日志分割与日志分析

目录

 

一.日志分割概述

二.rotatelogs分割工具

三.cronolog分割工具

四.AWStats日志分析系统


一.日志分割概述

  • 随着网站的访问量增加,默认情况下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的版本号,重命名,否则会找不到路径,出现错误

发布了94 篇原创文章 · 获赞 108 · 访问量 6411

猜你喜欢

转载自blog.csdn.net/qq_42761527/article/details/103561215
今日推荐