美文网首页
『学了就忘』Linux日志管理 — 4.把自己的日志加入日志轮替

『学了就忘』Linux日志管理 — 4.把自己的日志加入日志轮替

作者: 繁华似锦Fighting | 来源:发表于2020-08-07 00:05 被阅读0次

使用RPM包方式安装服务的日志会自动的加入logrotate轮替,一般不需要你介入。

而使用源码包方式安装服务的日志,需要手工把该服务的日志加入到logrotate.conf配置文件中。

所以源码包方式安装服务的日志和手动指定的日志,是需要自己手动加入logrotate日志轮替。

1、方式

有两个方法:

  • 第一种方法是直接在/etc/logrotate.conf配置文件中写入该日志的轮替策略,从而把日志加入logrotate轮替。
  • 第二种方法是在/etc/logrotate.d/目录中新建立该日志的轮替文件,在该轮替文件中写入正确的轮替策略,因为该目录中的文件都会被"include"到主配置文件中,所以也可以把日志加入轮替。

推荐第二种方法,因为系统中需要轮替的日志非常多,如果全都直接写入/etc/logrotate.conf配置文件,那么这个文件的可管理性就会非常差,不利于此文件的维护。

2、示例

我们在/var/log/目录中创建要给testerr.log日志文件,这个日志不是系统默认日志,所以默认这个日志是不会轮替的,那么我们需要把这个日志加入日志轮替的策略。

拓展:

  • 有个典型应用就是给予特定的日志加入chattra属性,如果系统文件加入了a属性,那么这个文件就只能增加数据,但是不能删除和修改已有的数据了,而且root用户也不能例外。
  • 所以我们会给重要的日志文件加入a属性,这样的话可以保护日志文件不被恶意修改。不过一旦加入了a属性,那么日志轮替时,这个日志文件是不能被改名的,当然也就不能进行日志轮替了。所以我们可以利用prerotatepostrotate来修改日志文件的chattra属性。在下一个小节,我们会具体说明下这两个参数的使用。

采用第二种方式实现,如下:

#先给日志文件赋予chattr的a属性,保证日志的安全。
[root@localhost ~]# chattr +a /var/log/testerr.log

# 创建testerr轮替文件,
[root@localhost ~]# vim /etc/logrotate.d/testerr

# 把/var/log/testerr.log日志文件加入轮替。
/var/log/testerr.log{
    weekly          <-- 每周轮替一次
    rotate 6        <-- 保留6个轮替日志
    sharedscripts   <-- 以下命令只执行一次
    prerotate       <-- 在日志轮替之前执行
        # 在日志轮替之前取消a属性,以便让日志可以轮替。
        usr/bin/chattr -a /var/log/testerr.1og
    endscript       <-- 脚本结束


    sharedscripts 
    postrotate      <-- 在日志轮替之后执行
        # 日志轮替之后,重新加入a属性。
        /usr/bin/chattr +a /var/log/testerr.log
    endscript
    
    
    sharedscripts 
    postrotate
        # 重启rsyslog服务,保证日志轮替正常。
        /bin/kill -HUP $(/bin/cat /var/run/syslogd.pid 2>/dev/null) &>/dev/null 
    endscript

练习2:把Nginx服务的日志加入日志轮替,需要重启Nginx服务。

# 假设Nginx的日志放在/date目录下
/date/logs/nginx/access/access.log
/date/logs/nginx/access/default.log
{
    daily
    rotate 15
    sharedscripts
    postrotate
        #重启rsyslog服务
        /bin/kill -HUP $(/bin/cat /var/run/syslogd.pid) &>/dev/null
        #重启Nginx服务
        /bin/kill -HUP $(/bin/cat /usr/local/nginx/1ogs/nginx.pid) &>/dev/null
    endscript
}

实际工作中就可以以此为例。

提示:Linux系统自身日志或者使用RPM包方式安装服务的日志,需要重启。

相关文章

网友评论

      本文标题:『学了就忘』Linux日志管理 — 4.把自己的日志加入日志轮替

      本文链接:https://www.haomeiwen.com/subject/uyeclktx.html