日志分割之 rotatelogs 、cronolog

日志分割之 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地址,

日志分割之 rotatelogs 、cronolog_第1张图片

再查看日志文件,就会显示浏览的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

你可能感兴趣的:(Apache)