日志分割之 rotatelogs 、cronolog
一:关于日志分割
日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。
-
随着网站的访问量增加,默认情况下Apache的单个日志文件也会越来越大
● 日志文件占用磁盘空间很大
● 查看相关信息不方便 -
对日志文件进行分割
● Apache自带rotatelogs分割工具实现
● 第三方工具cronolog分割
二:rotatelogs 分割工具
1、先检查是否有httpd软件包
[root@localhost ~]# rpm -q httpd
2、没有就进行安装
[root@localhost ~]# yum install httpd -y
3、开启的时候日志文件会自动产生,rotatelogs安装apache之后自带
[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]# systemctl start httpd.service
[root@localhost logs]# ls
access_log error_log ‘访问日志’ ‘错误日志’
[root@localhost logs]# which rotatelogs ‘查看rotatelogs绝对路径’
/usr/sbin/rotatelogs
[root@localhost logs]# vim /etc/httpd/conf/httpd.conf ‘修改配置文件’
ErrorLog "| /usr/sbin/rotatelogs -l logs/error_%Y%m%d.log 86400" ‘182行进行修改’ ‘86400 一天的秒数’
CustomLog "| /usr/sbin/rotatelogs -l logs/access_%Y%m%d.log 86400" combined ‘217行进行修改’
[root@localhost logs]# systemctl stop firewalld.service
[root@localhost logs]# setenforce 0 ‘关闭防火墙’
[root@localhost logs]# systemctl restart httpd.service ‘开启httpd服务’
[root@localhost logs]# ls
access_log error_20191216.log error_log ‘多了一个错误日志文件’
[root@localhost logs]# date ‘显示当天日期’
2019年 12月 16日 星期一 18:15:43 CST
[root@localhost logs]# date -s 2019-12-17 ‘操控时间,把时间推迟了一天’
2019年 12月 17日 星期二 00:00:00 CST
[root@localhost logs]# date ‘会显示修改的时间’
2019年 12月 17日 星期二 00:00:04 CST
[root@localhost logs]# systemctl restart httpd ‘启动服务’
[root@localhost logs]# ls ‘查看httpd服务日志文件’
access_log error_20191216.log error_20191217.log error_log ‘可以看出又多了一个错误日志文件’
4、先在客户机上输入对应的IP地址,
再查看日志文件,就会显示浏览的IP地址和具体时间等信息
[root@localhost logs]# cat access_20191216.log
三、cronolog分割工具
[root@localhost ~]# mkdir /abc
[root@localhost ~]# mount.cifs //192.168.10.29/share /abc ‘挂载cronolog文件包到/abc/目录下’
Password for root@//192.168.10.29/share:
[root@localhost ~]# cd /abc
[root@localhost abc]# ls ‘查看abc目录下的文件’
cronolog-1.6.2-14.el7.x86_64.rpm
[root@localhost abc]# rpm -ivh cronolog-1.6.2-14.el7.x86_64.rpm ‘安装cronolog分割工具软件包’
[root@localhost abc]# which cronolog ‘查看cronolog 绝对路径’
/usr/sbin/cronolog
[root@localhost abc]# systemctl stop firewalld.service
[root@localhost abc]# setenforce 0 ‘关闭防火墙’
[root@localhost abc]# 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 abc]# systemctl restart httpd 开启服务
[root@localhost abc]# cd /etc/httpd/logs/
[root@localhost logs]# ls ‘查看当天的日志文件’
error_20191216.log