Linux中阶—日志归档logroutate(三)

1、logrotate是个可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件的工具, 是基于cron 运行的,所以这个时间是由 cron 控制的,具体可以查询 cron 的配置文件/etc/crontab 。旧版CentOS 的cron 的配置文件是 /etc/crontab ,新版CentOS 改为 /etc/anacrontab
2、logrotate 命令格式如下:
   logrotate [OPTION...] <configfile>
   -d, --debug :debug 模式,测试配置文件是否有错误。
   -f, --force :强制转储文件。
   -m, --mail=command :压缩日志后,发送日志到指定邮箱。
   -s, --state=statefile :使用指定的状态文件。
   -v, --verbose :显示转储过程。

配置完文件后logrotate 不会真正执行,需要强制执行一次,以后就会按定时计划执行、配置生效。
示例:
   logrotate -f  /var/tmp/logtest/myTest_rotate 

3、kubernetes 平台开启日志打印:
master
a、kube-apiserver        服务启动配置路径:/etc/systemd/system/kube-apiserver.service        
b、kube-controller-manage    服务启动配置路径:/etc/systemd/system/kube-controller-manager.service    
c、kube-scheduler        服务启动配置路径:/etc/systemd/system/kube-scheduler.service
d、etcd-server        服务启动配置路径:/etc/systemd/system/etcd.service             

node
a、kube-proxy            服务启动配置路径:/etc/systemd/system/kube-proxy.service
b、kubelet            服务启动配置路径:/etc/systemd/system/kubelet.service
c、docker             服务启动配置路径:/etc/systemd/system/docker.service

服务配置添加:
--logtostderr=true \
--v=2

#日志级别定义:
#--v=0    Generally useful for this to ALWAYS be visible to an operator.
#--v=1    A reasonable default log level if you don’t want verbosity.
#--v=2    Useful steady state information about the service and important log messages that may correlate to significant changes in the system. This is the recommended default log level for most systems.
#--v=3    Extended information about changes.
#--v=4    Debug level verbosity.
#--v=6    Display requested resources.
#--v=7    Display HTTP request headers.
#--v=8    Display HTTP request contents

4、logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改。日志文件的轮循设置在独立的配置文件中,放在/etc/logrotate.d/目录下
文件配置案例:/etc/logrotate.conf(配置归档之前,请在rsyslog.conf中配置日志分类,详细配置,请看上期博客全局配置):

weekly       #  默认每周执行一次日志轮询

rotate 4     #  默认保留4个日志文件

create       # 自动创建新的日志文件,新的文件和原来的文件具有相同的权限

dateext      #  日志切割后,文件以当前日志为结尾,例如:messages-20181125

#compress   # 指定不压缩转储文件,如果需要压缩,去掉注释就可以了。

include /etc/logrotate.d     # 将/etc/logrotate.d目录中的配置文件加载进来

/var/log/message {
        daily         # 日志轮询周期,weekly,monthly,yearly
        size 1024M    # 超过1024M时分割,单位K,M,G,优先级高于daily
        rotate 30      # 保存30天数据,超过的则删除
        copytruncate   #用于还在打开中的日志文件,把当前日志备份并截断
        missingok      #如果日志丢失,不报错
        notifempty    # 日志为空时不进行切换,默认为ifempty
        compress      # 切割后压缩,也可以为nocompress
        dateext      # 日志文件切割时添加日期后缀
        dateformat _%Y%m%d%s
        postrotate
          /usr/bin/kill all -HUP rsyslogd
        endscript    #在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。

}

/var/log/kubernetes/kubelet.log {
        rotate 3
        copytruncate
        missingok
        notifempty
        compress
        size 1024M
        create 0640 zhongcongling zhongcongling
        dateext
        dateformat _%Y%m%d%s
        postrotate
          /usr/bin/kill all -HUP rsyslogd
        endscript
}
/var/log/kubernetes/kube-proxy.log {
        rotate 3
        copytruncate
        missingok
        notifempty
        compress
        size 1024M
        create 0640 zhongcongling zhongcongling
        dateext
        dateformat _%Y%m%d%s
        postrotate
          /usr/bin/kill all -HUP rsyslogd
        endscript
}
/var/log/kubernetes/etcd.log {
        rotate 3
        copytruncate
        missingok
        notifempty
        compress
        size 1024M
        create 0640 zhongcongling zhongcongling
        dateext
        dateformat _%Y%m%d%s
        postrotate
          /usr/bin/kill all -HUP rsyslogd
        endscript
}
/var/log/kubernetes/kube-apiserver.log {
        rotate 3
        copytruncate
        missingok
        notifempty
        compress
        size 1024M
        create 0640 zhongcongling zhongcongling
        dateext
        dateformat _%Y%m%d%s
        postrotate
          /usr/bin/kill all -HUP rsyslogd
        endscript
}
/var/log/kubernetes/kube-scheduler.log {
        rotate 3
        copytruncate
        missingok
        notifempty
        compress
        size 1024M
        create 0640 zhongcongling zhongcongling
        dateext
        dateformat _%Y%m%d%s
        postrotate
          /usr/bin/kill all -HUP rsyslogd
        endscript
}
/var/log/kubernetes/kube-controller-manager.log {
        rotate 3
        copytruncate
        missingok
        notifempty
        compress
        size 1024M
        create 0640 zhongcongling zhongcongling
        dateext
        dateformat _%Y%m%d%s
        postrotate
          /usr/bin/kill all -HUP rsyslogd
        endscript
}
 

上一篇:Linux中阶—日志采集rsyslog(二)

下一篇:Linux中阶—加密库OpenSSL(四)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值