简介:

logrotate 是一个日志切分工具。一般要结合cron一起工作。

logstash 是日志集中管理工具,但输出到文件时不能自动按大小切分(目前只能按日期)

系统实例:

比如系统的messege/cron/secure 都是cron + logrotate(一周跑一次)[root@mreald.com logstash_conf]# ls /var/log/mess* -1

/var/log/messages

/var/log/messages-20150208

/var/log/messages-20150215

/var/log/messages-20150222

/var/log/messages-20150301

1. 配置文件[root@mreald.com  logstash_conf]# tree -finh /etc/logrotate*

/etc/logrotate.conf

/etc/logrotate.d

[ 135]  /etc/logrotate.d/iptraf

[ 115]  /etc/logrotate.d/samba

[ 210]  /etc/logrotate.d/syslog

........................

2. 默认配置:[root@mreald.com  logstash_conf]# cat /etc/logrotate.conf |grep -v \#

weekly

rotate 4

create

dateext

include /etc/logrotate.d

/var/log/wtmp {

monthly

create 0664 root utmp

minsize 1M

rotate 1

}

/var/log/btmp {

missingok

monthly

create 0600 root utmp

rotate 1

}

3. 自定义配置:

在 /etc/logrotate.d/下面 。比如:/etc/logrotate.d/syslog[root@mreald.com  logstash_conf]# cat /etc/logrotate.d/syslog

/var/log/cron

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

{

sharedscripts

postrotate

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

endscript

}

增加应用实例:[root@mreald.com  logstash_conf]# cat /etc/logrotate.d/logstash

/nfsc/logtest/stg/applog/*/*out

/nfsc/logtest/stg/oslog/*/var/log/cron

/nfsc/logtest/stg/oslog/*/var/log/secure

/nfsc/logtest/stg/oslog/*/var/log/messages

{

sharedscripts

nocompress

create 2775 root root

size 10G

missingok

notifempty

copytruncate

dateext

postrotate

/bin/kill -HUP `cat /var/run/logstash.pid 2> /dev/null`

endscript

rotate 10

}

解释:

sharedscripts                          表示上面的日志文件全部判断后才执行  kill -HUP 命令(否则每判断一次执行一次)

nocompress                            表示不压缩

create                                      表示新创建,并设置权限

size                                         表示超过多大开始切分

notifempty                               表示空文件不执行

dateext                                    表示以时间为后缀

rotate 10                                  表示切分后的保留的最多个数

copytruncate                           先copy 再清空的方式,可能有少量的日志丢失(logstash 暂时没有sighup 重新加载配置文件的功能)

更多请:man logrotate

写入Crontab:*/5 * * * * logrotate    /etc/logrotate.d/logstash

模拟测试(不会真的执行):logrotate    /etc/logrotate.d/logstash -d   (如果加-f 就会忽略size 10G,强制执行)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐