欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

rotatelogs、cronolog分割日志和awstats日志分析系统

程序员文章站 2022-06-25 23:11:34
...

实验1:使用Apache自带日志分割工具rotatelogs分割日志

语法:ErrorLog “| rotatelogs的绝对路径 -l 日志文件路径/网站名-error_%Y%m%d.log 86400”
ErrorLog “| rotatelogs的绝对路径 -l 日志文件路径/网站名-access_%Y%m%d.log 86400”
其中%Y%m%d是时间,86400是一天的时间,表示每天产生一份日志文件

[aaa@qq.com ~]#yum -y install httpd
[aaa@qq.com ~]# which rotatelogs     ##查看工具所在路径,要写在配置文件里的
/usr/sbin/rotatelogs
[aaa@qq.com logs]# vim /etc/httpd/conf/httpd.conf 
# prevent Apache from glomming onto all bound IP addresses.
#
Listen 20.0.0.103:80    ### 
#Listen 80
...
# container, that host's errors will be logged there and not here.
#
ErrorLog "| /usr/sbin/rotatelogs -l logs/www.kgc.com.error_%Y%m%d.log 86400"   ##
....
#
    # (Combined Logfile Format) you can use the following directive.
    #
CustomLog "| /usr/sbin/rotatelogs -l logs/www.kgc.com.access_%Y%m%d.log 86400" combined      ##
[aaa@qq.com ~]# systemctl restart httpd    ###修改配置文件之后记得重启服务
...

访问Apache网站后,看日志文件的生成

[aaa@qq.com logs]# ls /etc/httpd/logs
www.kgc.com.access_20200805.log  www.kgc.com.error_20200805.log

修改系统时间,再访问下网页

[aaa@qq.com logs]# date -s 09/05/20
2020年 09月 05日 星期六 00:00:00 CST
[aaa@qq.com logs]# ls /etc/httpd/logs
www.kgc.com.access_20200805.log  www.kgc.com.error_20200805.log
www.kgc.com.access_20200905.log  www.kgc.com.error_20200905.log
[aaa@qq.com logs]#

实验2:使用第三方工具cronolog分割日志

语法:ErrorLog “| cronolog的绝对路径 日志文件路径/网站名-error_%Y%m%d.log”
ErrorLog “| cronolog的绝对路径 日志文件路径/网站名-access_%Y%m%d.log”
其中%Y%m%d是时间

准备cronolog软件包,并安装

[aaa@qq.com ~]# ls /opt
cronolog-1.6.2-14.el7.x86_64.rpm
[aaa@qq.com ~]# 
[aaa@qq.com ~]# rpm -ivh /opt/cronolog-1.6.2-14.el7.x86_64.rpm 
警告:/opt/cronolog-1.6.2-14.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, ** ID 352c64e5: NOKEY
准备中...                          ################################# [100%]
	软件包 cronolog-1.6.2-14.el7.x86_64 已经安装
[aaa@qq.com ~]# 

使用cronolog管理日志
为了验证实验结果,先把之前的日志删了

[aaa@qq.com ~]# rm -rf /etc/httpd/logs/*
修改配置文件
[aaa@qq.com ~]# vim /etc/httpd/conf/httpd.conf
...
#ErrorLog "| /usr/sbin/rotatelogs -l logs/www.kgc.com.error_%Y%m%d.log 86400"    #把之前的注释掉
ErrorLog "| /usr/sbin/cronolog logs/www.kgc.com.error_%Y%m%d.log"    ##新添加

#
#LogLevel: Control the number of messages logged to the error_log.
...
    #
   #CustomLog "| /usr/sbin/rotatelogs -l logs/www.kgc.com.access_%Y%m%d.log 86400" combined
    CustomLog "| /usr/sbin/cronolog logs/www.kgc.com.access_%Y%m%d.log" combined   ##新添加
</IfModule>
保存退出,重启服务
[aaa@qq.com ~]# systemctl restart httpd

去访问Apache网站http://20.0.0.103  到服务器查看日志文件
[aaa@qq.com ~]# ls  /etc/httpd/logs/          ##因为之前修改过时间,没有改过来所以显示9月5号
www.kgc.com.access_20200905.log  www.kgc.com.error_20200905.log

实验3:部署AWStats日志分析系统

需要一台centos7服务器
一台Windows10做客户端访问我们的网站
因为要用客户端访问我们的网站所以要做一个DNS域名解析服务,之前做过很多了不再重复,直接写AWStats部署
安装包准备并解压,下载好,传输到虚拟机中,我用xshell连接服务器,把本地文件直接往里拖就好了

[aaa@qq.com opt]# ls
awstats-7.6.tar.gz  cronolog-1.6.2-14.el7.x86_64.rpm
[aaa@qq.com opt]# tar zxvf awstats-7.6.tar.gz 
[aaa@qq.com opt]# mv awstats-7.6 /usr/local/awstats
[aaa@qq.com opt]# cd /usr/local/awstats/tools/
[aaa@qq.comr tools]# ls
awstats_buildstaticpages.pl  dolibarr            maillogconvert.pl   xslt
awstats_configure.pl         geoip_generator.pl  nginx
awstats_exportlib.pl         httpd_conf          urlaliasbuilder.pl
awstats_updateall.pl         logresolvemerge.pl  webmin
[aaa@qq.com tools]# ./awstats_configure.pl 
Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf
..
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y
...
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> www.njit.com   
...一直回车到退出此界面

修改Apache配置文件

[aaa@qq.com tools]# vim /etc/httpd/conf/httpd.conf 
....
  CustomLog "| /usr/sbin/cronolog logs/www.njit.com.access_%Y%m%d.log" combined  ##因为我之前DNS的域名为njit.com,因为上个实验做了日志分割,也就用了这配置
ErrorLog "| /usr/sbin/cronolog logs/www.njit.com.error_%Y%m%d.log"
...
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory "/usr/local/awstats/wwwroot">       
    Options None
    AllowOverride None 
 #   Order allow,deny        ##注释
  #  Allow from all           ##注释
    Require all granted        ##添加
</Directory>

awstats文件

[aaa@qq.com httpd]# vim /etc/awstats/awstats.www.njit.com.conf 
...
# Example: "/pathtotools/logresolvemerge.pl *.log |"
#
LogFile="/var/log/httpd/www.njit.com.access_20200905.log"      ##写上自己日志文件的位置
...
DirData="/var/lib/awstats"        ##这个目录我们要去创建
[aaa@qq.com tools]# mkdir /var/lib/awstats/    ##这个目录不创就会报错

添加一个网页 来便捷访问awstats日志文件系统

[aaa@qq.com tools]# vim /var/www/html/aws.html 
<html>
 <head>
  <meta http-equiv=refresh content="0;url=http://www.njit.com/awstats/awstats.pl?config=www.njit.com">       ##z这个就是网页路径  由于太过复杂 这个文件可用实现直接跳转
 </head>
 <body></body>
</html>

删除原来的日志文件,重启服务,可以去访问测试了
我们去访问网页,然后到服务器上去执行

[aaa@qq.com tools]# /usr/local/awstats/tools/awstats_updateall.pl now   刷新就可以出现记录了

访问http://20.0.0.103/aws.html即可出现以下网页
rotatelogs、cronolog分割日志和awstats日志分析系统
每次想要记录更新都要到服务器上刷新 比较不方便
可以写周期性计划任务实现刷新

相关标签: linux centos