OpenBSD日志记录

OpenBSD的安装、升级、更新等日常问题。

版主: chenjun天地乾坤

回复
chenjun
铁 Fe
帖子: 56
注册时间: 2010-08-31 17:38

OpenBSD日志记录

帖子 chenjun » 2011-03-11 16:58

发现一个情况,在/var/log目录下,同一种日志文件有好几个,比如messages、messages.0.gz、messages.*.gz;named.log、named.log.0.gz等等,而且文件的大小是没有规律的,这是怎么回事?我猜想的是当一个日志文件太大时,系统就将日志文件拆分成好几个,可是在系统中找不到如何去设置的

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

帖子 leo » 2011-03-11 21:47

chenjun 写了:发现一个情况,在/var/log目录下,同一种日志文件有好几个,比如messages、messages.0.gz、messages.*.gz;named.log、named.log.0.gz等等,而且文件的大小是没有规律的,这是怎么回事?我猜想的是当一个日志文件太大时,系统就将日志文件拆分成好几个,可是在系统中找不到如何去设置的
压缩前的大小是有30K的固定限制,系统写入日之前会判断message是否达到或已经超过了此大小,如果是就会创建一个新的空messages文件,而将老文件做压缩编号处理。
OpenBSD的日志轮询(rotate log可能是这样翻译吧)由程序newsyslog来完成,它默认的设置文件是 /etc/newsyslog.conf, 是可以根据时间或文件大小来进行日志文件轮替的。默认情况下只根据文件大小,newsyslog由Cron每小时运行一次。
下面是我机器上的 /etc/newsyslog.conf文件:

代码: 全选

#       $OpenBSD: newsyslog.conf,v 1.28 2010/06/29 10:25:13 stephan Exp $
#
# configuration file for newsyslog
#
# logfile_name          owner:group     mode count size when  flags
/var/cron/log           root:wheel      600  3     10   *     Z
/var/log/aculog         uucp:dialer     660  7     *    24    Z
/var/log/authlog        root:wheel      640  7     *    168   Z
/var/log/daemon                         640  5     30   *     Z
/var/log/lpd-errs                       640  7     10   *     Z
/var/log/maillog                        600  7     *    24    Z
[color=DarkOrange]/var/log/messages                       644  5     30   *     Z[/color]
/var/log/secure                         600  7     *    168   Z
/var/log/wtmp                           644  7     *    $W6D4 ZB
/var/log/xferlog                        640  7     250  *     Z
/var/log/ppp.log                        640  7     250  *     Z
/var/log/pflog                          600  3     250  *     ZB "pkill -HUP -u$
/var/log/messages 指出了日志文件的位置
所属的 usr:group即使没有给出一般也是root:wheel
模式:644
count:是指保留几个message文件,例如这里是5,则会保留5个压缩的日志文件

代码: 全选

/var/log/messages
/var/log/messages.0.gz
/var/log/messages.1.gz
/var/log/messages.2.gz
/var/log/messages.3.gz
/var/log/messages.4.gz
/var/log/messages.5.gz
30 是指日志文件的大小限制,单位是kilobytes,超过或达到这个大小则会将旧的log打包压缩成messages.*.gz的形式,再重新生成一个新的日志文件。

这里 when 的区域是“ *”则表示,不做时间限制仅以size大小为准。

Z表示日志文件压缩的方式。


http://www.openbsd.org/cgi-bin/man.cgi? ... ormat=html

chenjun
铁 Fe
帖子: 56
注册时间: 2010-08-31 17:38

帖子 chenjun » 2011-03-12 8:33

受教了,谢谢leo兄

qinjuan
铝 Al
帖子: 10
注册时间: 2011-02-26 8:47

帖子 qinjuan » 2011-03-12 9:27

如果时间和大小都做了限制,那么在日志轮询的时候是谁为主啊?

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

帖子 leo » 2011-03-12 10:22

我的理解是触发的哪条规则那么就执行该规则。也就是——只要满足两者之一都会立刻压缩原来的日志文件并转储为message*(这里的“*”也应该是 1,2,3,4,5 “轮庄”,:)),同时会创建一个新的messages文件。
但需要读取源程序才能确认是否实际操作是如此,我这里也仅是猜测。—— 有能力的朋友查看一下源程序就清楚了。
或者有个简单一些的办法,例如把size设置为1,随便设置一个时间,可能马上就看出条件是充分还是充要了。

回复

在线用户

正浏览此版面之用户: Google [Bot] 和 0 访客