手把手教你,嘴对嘴传达------Apache日志管理日志(rotatelogs分割工具、AWStats日志分析)

时间:2022-07-24
本文章向大家介绍手把手教你,嘴对嘴传达------Apache日志管理日志(rotatelogs分割工具、AWStats日志分析),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Apache日志管理

日志文件的产生

服务安装后,不会生成日志文件不会产生 服务启动后,生成日志文件 访问服务后,日志文件会生成内容

一、日志分割

随着网站的访问量增大,默认情况下Apache的单个日志文件也会越来越大 日志文件占用磁盘空间很大 查看相关信息不方便 对日志文件进行分割 Apache自带rotatelogs分割工具实现 第三方工具cronolog分割

二、rotatelogs分割工具

配置网站的日志文件转交给rotatelogs分割处理

配置格式为

ErrorLog "| rotatelogs 命令的绝对路径 -l 日志文件路径/网站名-error_%Y%m%d.log 86400"	'//which rotatelogs命令查看绝对路径,%Y%m%d表示年月日,86400表示一天的秒数'
CustomLog "| rotatelogs 命令的绝对路径 -l 日志文件路径/网站名-access_%Y%m%d.log 86400" combined 

配置实例如下

[root@promote ~]# vim /etc/httpd/conf/httpd.conf
 CustomLog "| /usr/sbin/rotatelogs -l logs/access_%Y%m%d.log 86400" combined
 ErrorLog "| /usr/sbin/rotatelogs -l logs/error_%Y%m%d.log 86400"
Listen 192.168.110.133:80
#Listen 80
ServerName www.shang.com:80   

[root@promote ~]# setenforce 0
[root@promote ~]# systemctl stop firewalld
[root@promote ~]# systemctl restart httpd
[root@promote httpd]# ls
access_log  error_20200805.log  error_log

三、cronolog工具(第三方工具,推荐使用)

cronolog作为日志过滤程序,可用来切割linux日志文件,通过对输入的日志按文件名模板和当前日期重新编排,来按格式生成所需日志。cronolog 旨在和一个Web服务器一起使用,如Apache、Nginx

第一步:rpm安装一下cronolog软件(yum也可以安装)

[root@sheng opt]# rpm -ivh cronolog-1.6.2-14.el7.x86_64.rpm 
[root@sheng opt]# which cronolog 
/usr/sbin/cronolog

第二步:修改httpd主配置文件,按小时分割错误日志

[root@sheng httpd]# vim /etc/httpd/conf/httpd.conf
ErrorLog "| /usr/sbin/cronolog logs/www.yjs.com.error_%Y%m%d%H.log"

第三步:重启服务,验证错误日志已产生

[root@sheng httpd]# systemctl restart httpd
[root@sheng httpd]# ls
access_log  error_log  www.yjs.com.error_2020080610.log

四、AWStats日志分析

1、 AWStats概述

perl语言(骆驼语言)开发的一款开源日志分析系统 可用来分析Apache,Samba,vsftpd,IIS等服务器的访问日志 信息结合crond等计划任务服务,可对日志内容定期进行分析

2、部署AWStats环境准备

环境部署

VMware软件

一台centos7虚拟机

一台Windows虚拟机

环境准备

WindowsDNS解析地址指向centos7

centos7安装bind和httpd

3、部署AWStats过程

第一步、配置dns服务

[root@promote httpd]# yum -y install bind
[root@promote httpd]# 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 "shang.com" IN {
        type master;        file "shang.com.zone";
        allow-update { none; };
};

[root@promote httpd]# cd /var/named/
[root@promote named]# ls
data     named.ca     named.localhost  slaves
dynamic  named.empty  named.loopback
[root@promote named]# cp -p named.localhost shang.com.zone
[root@promote named]# vim shang.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.110.133
~                                     

第二步、配置httpd

[root@localhost named]# vim /etc/httpd/conf/httpd.conf 
    '//修改此两行内容'
Listen 192.168.110.132:80
#Listen 80
    '//修改为指定域名'
ServerName www.shang.com:80
[root@localhost named]# systemctl stop firewalld.service 
[root@localhost named]# setenforce 0
[root@localhost named]# systemctl start httpd.service 
[root@promote ~]# cd /usr/local/
[root@promote local]# ls
bin  games    lib    libexec  share
etc  include  lib64  sbin     src
[root@localhost mnt]# cd /usr/local
[root@promote local]# mkdir awstats
[root@promote awstats]# tar zxvf awstats-7.6.tar.gz
[root@localhost mnt]# cd /usr/local/awstats

第三步、安装AWStats

[root@localhost awstats]# cd tools/
[root@localhost tools]# ls
[root@localhost tools]# ./awstats_configure.pl 
> /etc/httpd/conf/httpd.conf	'//第一次交互输入此路径'
y	'//第二次交互输入y'
www.shang.com	'//第三次交互输入指定域名'
'//第四五六次交互直接回车'
[root@localhost tools]# cd /etc/httpd/conf
[root@localhost conf]# vim httpd.conf   
    '//省略内容,直接到文件末尾修改此配置'
<Directory "/usr/local/awstats/awstats-7.6/wwwroot">
    Options None
    AllowOverride None
#    Order allow,deny
#    Allow from all
    Require all granted
</Directory>
[root@localhost conf]# cd /etc/awstats/
[root@localhost awstats]# ls
awstats.www.shang.com.conf
[root@localhost awstats]# vim awstats.www.shang.com.conf 
...省略内容
    '//将下面两行内容修改'
LogFile="/var/log/httpd/access_log"
   ...省略内容
DirData="/var/lib/awstats"
[root@localhost awstats]# cd /var/lib
[root@localhost lib]# ls
[root@localhost lib]# mkdir awstats
[root@localhost lib]# systemctl restart httpd.service 

第四步、测试

A SIMPLE config file has been created: yes/awstats.www.shang.com.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'www.shang.com' with command:
> perl awstats.pl -update -config=www.shang.com
You can also read your statistics for 'www.shang.com' with URL:
> **http://localhost/awstats/awstats.pl?config=www.shang.com**

第五步、更新网页访问数据的统计

[root@localhost lib]# cd /usr/local/awstats/
[root@localhost awstats]# ls
docs  README.md  tools  wwwroot
[root@localhost awstats]# cd tools/
[root@localhost tools]# ls
...省略内容
[root@localhost tools]# ./awstats_updateall.pl now
Jumped lines in file: 0
Parsed lines in file: 35
 Found 0 dropped records,
 Found 0 comments,
 Found 0 blank records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 35 new qualified records.