当前位置: 首页 > 操作系统 > Linux > 正文

利用ubuntu中syslog记录外部设备日志

时间:2010-04-07

要求:

利用 ubuntu 8.04 服务器版的 syslog 记录 juniper isg1000 日志,保留3个月。

1、允许 syslog 记录外部日志

修改 /etc/default/syslogd,把其中的 SYSLOGD="" 改为 SYSLOGD="-r"

2、定义外部日志类型

修改 juniper isg1000 日志定义,让其生成的日志定义为 local7,并向 ubuntu 服务器发送日志。

3、定义日志文件

考虑到日志文件比较多,在 /var/log 下新建 firewall 目录,用于保存日志文件。目录属性 755。

修改 /etc/syslog.conf,在其中增加下面一行:

local7.*

-/var/log/firewall/firewall.log

经过测试记录不成问题,但发现有下面几个严重问题。

4、重复记录问题

syslog 不光在 firewall.log 中记录,还在 /var/log 中的 syslog 和 messages 记录,由于日志很大,这下麻烦了。看看 syslog.conf 的 man,居然还有个 ! 功能,在 syslog.conf 文件中的 syslog 和 messages 定义前面加上了 !local7.*,感觉不错,syslog 不再向 syslog 和 messages 文件中记录设备日志了。

5、文件超大问题

syslog 记录的日志文件最大不超过2.5G,如果超过了,将停止记录。而 isg1000 4个小时左右的日志就达到这个数量了。必须设置日志轮转。在 /etc/logrotate.d 中新建 firewall 日志轮转控制文件,属性644,firewall 内如如下:

/var/log/firewall/firewall.log {
start 1000
rotate 512
maxage 100
size 1500M
compress
delaycompress
missingok

postrotate
/usr/bin/killall -HUP syslogd
endscript
}