一 服务器日志日益激增带来的问题
随着系统服务用户的数量增加,系统的功能增加,服务器里积累的日志会越来越多。这会导致服务器硬盘被写满,导致系统出问题。通常情况下,只要删除日志即可。但如果积累日志的速度很快,并且面对复杂的线上环境,日志的维护会变得很繁琐。甚至由于维护过程中的疏忽造成影像系统运行的风险。
二 简单高效的解决方案
解决这个问题的思路也很清晰,按照下面的步骤处理日志,并让系统定时执行。
-
定时把日志拆分出来,做备份。
-
拆分出来的日志按照时间命名。
-
服务器里仅保留特定数量的日志备份,超过备份数量的日志将被删除。
三 实际案例和步骤
经过在网络上的资料查询,发现 logrotate 是一个好工具。它结合了 linux 的自动任务加上日志的各种处理动作,给系统运维提供了便捷的日志维护自动化能力。具体步骤如下:
step1:安装 logrotate
yum install -y logrotate
默认 logrotate 安装在 etc 目录下,其中:
-
/etc/logrotate.conf 主配置文件。
-
/etc/logrotate.d 目录下可以存放很多具体的日志滚动切割规则配置文件,我们想要自动拆分日志的配置都可以单独的放在这里,方便后续的维护和修改。
step2:配置日志分割文件
在这个例子中,我们要分割 nginx 的 access.log 文件,具体操作如下:
#在 /etc/logrotate.d/ 目录下新建一个叫做 access 的配置文件
cd /etc/logrotate.d
vim access
# 然后编辑 access 文件:
/usr/local/nginx/logs/access.