Loading

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 : 进行全局配置
    rotate1.png

  • /etc/logrotate.d/ : 保存着 对指定日志进行配置的配置文件
    rotate2.png

  • 二者关系 : logrotate.conf 内部会导入 logrotate.d 目录中的配置文件

参数说明

arguments.png

举例:把自己的日志加入日志轮替

为 /var/log/LinuxStudy.log 指定轮替规则

说明

  • 第一种方法是直接在/etc/logrotate.conf 配置文件中写入该日志的轮替策略
  • 第二种方法是在/etc/logrotate.d/目录中新建立该日志的轮替文件,在该轮替文件中写入正确的轮替策略,因为该目录中的文件都会被“include”到主配置文件中,所以也可以把日志加入轮替。
  • 推荐使用第二种方法,因为系统中需要轮替的日志非常多,如果全都直接写入/etc/logrotate.conf配置文件,那么这个文件的可管理性就会非常差,不利于此文件的维护。

步骤

  • 在/etc/logrotate.d/下创建文件 LinuxStudylog
    success.png

  • 输入轮替日志与轮替规则
    rotateconifg.png

  • 完成!

日志轮替机制原理【个人理解,仅供参考】

  1. logrotate.conf 设置的轮替规则,实际上解决了两个问题

    • 何时轮替 ————>依赖crond定时任务调度
    • 如何轮替【文件命名与写入信息】 ————>依赖rsyscrond服务
  2. crond定时任务调度如何与logrotate建立关系?
    在/etc/cron.daily/目录,会发现这个目录中是有logrotate文件(可执行),logrotate通过这个文件依赖定时任务执行的。

  3. 调用关系

    • crond定时任务调度 若检测到 logrotate.conf 中的配置规则符合执行条件, 则调动 rsyslogd服务。
    • rsyslogd服务 再次根据 logrotate.conf中的配置规则把文件把信息写入对应的日志中
  4. 原理图
    graphpicture.png

总结【关于日志需要掌握的点】

  1. 将指定内容的日志存放到对应的目录 ————>阅读并配置 /etc/rsyslog.conf 文件
  2. 设置日志轮替 ————>阅读并配置 /etc/logrotate.conf文件
  3. 阅读日志内容
  4. 掌握原理图

注:2,4 的内容在本文讨论, 1,3的内容在此文讨论

posted @ 2022-01-04 14:49  咪啪魔女  阅读(175)  评论(0编辑  收藏  举报