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即可出现以下网页
每次想要记录更新都要到服务器上刷新 比较不方便
可以写周期性计划任务实现刷新
下一篇: Apache服务ab压力测试
推荐阅读
-
Linux日志系统分析:rsyslog、syslog和klog
-
Android源码解析之应用程序框架层和系统运行库层日志系统分析
-
python利用大数据和管道分析操作系统日志
-
rotatelogs、cronolog分割日志和awstats日志分析系统
-
centos 7.6——Apache日志分割(rotatelogs 分割工具、cronolog分割工具)
-
Apache日志分割(rotatelogs与cronolog)
-
企业平台架构--Apache配置与应用(Apache的访问控制(KeepAlive),日志分割(rotatelogs和cronolog)实操,日志分析(AWStats)实操
-
Linux- Apache-日志分割技术(rotatelogs和cronolog 工具)及Awstats日志分析系统(解决生产查看日志错误难题,理论加实验)
-
AWStats日志分析系统
-
搭建AWStats日志分析系统