Linux日志轮替与总结
基本介绍
- 日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围之后,就会进行删除
- 用以清理存储空间以及不必要数据
轮替文件的命名
- centos7使用logrotate进行日志轮替管理,要想改变日志轮替文件名字,通过/etc/logrotate.conf配置文件中“dateext”参数。
- 如果配置文件中有“dateet”参数,那么日志会用日期来作为日志文件的后缀,例如“secure-20201010”。这样日志文件名不会重叠,也就不需要日志文件的改名,只需要指定保存日志个数,删除多余的日志文件即可实现轮替。
- 如果配置文件中没有“dateext”参数,日志文件就需要进行改名了。
- 当第一次进行日志轮替时,当前的"secure”日志会自动改名为“secure.1”,然后新建“secure”日志,用来保存新的日志。 - 当第二次进行日志轮替时,“secure.1”会自动改名为“secure.2”,当前的“secure”日志会自动改名为"secure.1”,然后也会新建“secure”日志,用来保存新的日志,以此类推。
配置文件
路径位置
-
/etc/logrotate.conf : 进行全局配置
-
/etc/logrotate.d/ : 保存着 对指定日志进行配置的配置文件
-
二者关系 : logrotate.conf 内部会导入 logrotate.d 目录中的配置文件
参数说明
举例:把自己的日志加入日志轮替
为 /var/log/LinuxStudy.log 指定轮替规则
说明
- 第一种方法是直接在/etc/logrotate.conf 配置文件中写入该日志的轮替策略
- 第二种方法是在/etc/logrotate.d/目录中新建立该日志的轮替文件,在该轮替文件中写入正确的轮替策略,因为该目录中的文件都会被“include”到主配置文件中,所以也可以把日志加入轮替。
- 推荐使用第二种方法,因为系统中需要轮替的日志非常多,如果全都直接写入/etc/logrotate.conf配置文件,那么这个文件的可管理性就会非常差,不利于此文件的维护。
步骤
-
在/etc/logrotate.d/下创建文件 LinuxStudylog
-
输入轮替日志与轮替规则
-
完成!
日志轮替机制原理【个人理解,仅供参考】
-
logrotate.conf 设置的轮替规则,实际上解决了两个问题
- 何时轮替 ————>依赖crond定时任务调度
- 如何轮替【文件命名与写入信息】 ————>依赖rsyscrond服务
-
crond定时任务调度如何与logrotate建立关系?
在/etc/cron.daily/目录,会发现这个目录中是有logrotate文件(可执行),logrotate通过这个文件依赖定时任务执行的。 -
调用关系
- crond定时任务调度 若检测到 logrotate.conf 中的配置规则符合执行条件, 则调动 rsyslogd服务。
- rsyslogd服务 再次根据 logrotate.conf中的配置规则把文件把信息写入对应的日志中
-
原理图
总结【关于日志需要掌握的点】
- 将指定内容的日志存放到对应的目录 ————>阅读并配置 /etc/rsyslog.conf 文件
- 设置日志轮替 ————>阅读并配置 /etc/logrotate.conf文件
- 阅读日志内容
- 掌握原理图
注:2,4 的内容在本文讨论, 1,3的内容在此文讨论