• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

Linux服务:Logrotate日志管理工具

网络服务 彭东稳 9年前 (2016-08-05) 46886次浏览 已收录 0个评论

上面两篇文件讲完Linux系统中流行的日志管理系统rsyslog和syslog-ng。

Linux中rsyslog日志系统详解

Linux中syslog-ng日志系统详解

我们知道在系统中会产生各种各样的日志,那么这个时候就需要一个简易的日志管理程序了,比如说对日志进行压缩,切割等操作。CentOS或Debian都自带了logrotate日志管理工具,简单好用,下面就详细说说logrotate工具。

logrotate

logrotate是一个日志管理程序,用来把旧的日志文件删除(备份),并创建新的日志文件,这个过程称为“转储”。我们可以根据日志的大小,或者根据其使用的天数来转储。

logrotate 的执行由crond服务实现。在/etc/cron.daily目录中,有个文件logrotate,它实际上是个shell script,用来启动logrotate。logrotate程序每天由cron在指定的时间(/etc/crontab)启动。因此,使用ps是无法查看到logrotate的。如果它没有起来,就要查看一下crond服务有没有在运行。在执行logrotate时,需要指定其配置文件/etc/logrotate.conf。这 个配置文件的注释写得很清楚,没有必要再罗嗦了。只想强调下面这行,它的作用包含存放在/etc/logrotate.d目录下面的配置文件,不可或缺。 如果你安装了一个新的服务,它的日志转储的规则可以建立一个专门的配置文件,放在/etc/logrotate.d下面。它其实也因为下面的这句话,在 logrotate服务启动时被读取。

每个存放在/etc/logrotate.d目录里的文件,都有上面格式的配置信息。在{}中定义的规则,如果与logrotate.conf中的冲突,以/etc/logrotatate.d/中的文件定义的为准。

Logrotate的运行分为三步,判断系统的日志文件,建立转储计划以及参数,通过cron daemon 运行下面的代码是 Red Hat Linux 缺省的crontab 来每天运行logrotate。logrotate启动脚本放在/etc/cron.daily/logrotate中.

可人工执行命令进行测试:

看一下主配置文件/etc/logrotate.conf的参数解释:

如果在对应的文件下没有设定对应的参数,那么此日志会继承全局配置参数,如:/var/log/btmp文件没有指定monthly,那么机会继承全局参数weekly进行日志轮换了。

logrotate常用参数介绍:

以上参数都可以已定义在全局配置,或者指定为某个日志文件对的配置,但注意使用时参数之间不要冲突。

一个新系统准备上线前,应该做好以下日志的配置,配置到/etc/logrotate.d/目录下即可。

在定义日志文件时也可以使用通配符,但最好少用通配符,因会它会包括已经切换过的日志,要用的话最好在*号后加上扩展名, 如*.log。

一般除了这些系统日志需要配置一下,还有一些应用日志以及组件日志可能也需要配置,如Nginx、php、tomcat、zabbix-agent等。

NGINX日志

PHP日志

 


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (2)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!