a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 149|回复: 1

[红旗认证] 用ubuntu中syslog记录外部设备日志

[复制链接]
发表于 2012-8-4 12:16:06 | 显示全部楼层 |阅读模式
  要求:
/ i* d9 H$ }: N. v. D7 E2 L  利用 ubuntu 8.04 服务器版的 syslog 记录 juniper isg1000 日志,保留3个月。
9 N4 h+ p1 P% u2 ]( V( s0 r  1、允许 syslog 记录外部日志
! S3 r' J' S2 h  修改 /etc/default/syslogd,把其中的 SYSLOGD="" 改为 SYSLOGD="-r"
+ g* Y  L0 _( c0 b" ~: }( M2 I  2、定义外部日志类型
& d' v3 C; H9 p. k  修改 juniper isg1000 日志定义,让其生成的日志定义为 local7,并向 ubuntu 服务器发送日志。
4 C) Q: I7 M: u  3、定义日志文件
& h6 _2 \+ x2 D! ~) a  考虑到日志文件比较多,在 /var/log 下新建 firewall 目录,用于保存日志文件。目录属性 755。
4 v) t* _0 x& Q) N& p8 _  修改 /etc/syslog.conf,在其中增加下面一行:  h( O. f( ^0 L: K) t1 a- x' v
  local7.*2 e, b9 e. K  q% l: W/ M# g
  -/var/log/firewall/firewall.log
! u' _# z, J! {+ C" _  经过测试记录不成问题,但发现有下面几个严重问题。- n5 b# j1 }& D$ W; h$ s
  4、重复记录问题7 |+ j" B/ G* |2 n" f& M7 C
  syslog 不光在 firewall.log 中记录,还在 /var/log 中的 syslog 和 messages 记录,由于日志很大,这下麻烦了。看看 syslog.conf 的 man,居然还有个 ! 功能,在 syslog.conf 文件中的 syslog 和 messages 定义前面加上了 !local7.*,感觉不错,syslog 不再向 syslog 和 messages 文件中记录设备日志了。6 _' N! j5 z. j5 i, L' x
  5、文件超大问题8 f* t0 c5 [% s1 K8 p
  syslog 记录的日志文件最大不超过2.5G,如果超过了,将停止记录。而 isg1000 4个小时左右的日志就达到这个数量了。必须设置日志轮转。在 /etc/logrotate.d 中新建 firewall 日志轮转控制文件,属性644,firewall 内如如下:6 t8 B6 ]+ F2 T$ T( c. p
  /var/log/firewall/firewall.log {
+ |; x$ S8 f8 k9 ?( f  start 1000) Z( i# H7 D. L5 c. i8 T2 A
  rotate 512( z, x1 g: S( W1 ?+ M: n4 K: n5 k
  maxage 100* u3 U$ U. ~2 b2 \( ~9 C
  size 1500M
  Y+ e$ @5 K% Z( o8 u  compress. l; Z% p% ~% x/ S+ u2 I
  delaycompress& `7 t1 H4 F  B) u! k
  missingok
6 ^$ r- v# B2 \  postrotate& ~7 y# i- {7 @# E7 q2 H7 w
  /usr/bin/killall -HUP syslogd
2 k7 R+ R5 p4 P  endscript) l+ l2 g) o) {8 V; M. G( s( z  F
  }
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:16:07 | 显示全部楼层

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

  以上内容简单解释:- j( [$ T/ X& M4 p
  由于日志文件需要保存3个月,且平均每天生成5个日志文件,设置最多保留512个,保留时间100天。  K) U# `% y+ \1 B" R
  文件后缀编号从1000开始,比从1开始在排序上要好看。
2 B9 W. g5 u/ M  文件超过1500M的时候轮转。- b3 T: F( P' u8 B. W) c
  为了减少存储空间占用,轮转后的日志文件需要压缩,但不是轮转后马上压缩,而是轮转下一个的时候,再压缩,以防 syslog 继续写入当前文件时候丢失数据。, w" H. [8 g" j3 k) a9 J+ J1 x
  经过以上设置,感觉可以,谁知道使用几天,发现还有问题。. L3 M% r9 A" p9 @- C5 o& o
  6、再次解决文件超大问题
) Q& C+ G3 H* K0 r7 Z# D% R  firewall.log 文件依然是2G多,没有按照设定达到1500M的时候轮转,究竟为什么?仔细看 man logrotate ,呵呵,原来如此,logrotate 每天运行一次,等它运行的时候,firewall.log 早就达到2G了。怎么办,让它每小时运行一次试试看,把 /etc/cron.daily/logtotate 文件拷贝到 /etc/cron.hourly 中一份。效果不错,看来问题解决了。6 s' `: T  j" p; Q: S' @
  7、解决日志文件不到1500M就轮转、且日志文件名没有按定义规则生成问题# I2 j, d  o9 F; p9 ?  f( P% X
  经过若干天运行,发现个小小问题。若干文件不到设置的1500M就轮转了,而且文件名没有按定义方式生成,而是原始的 firewall.log.0 方式,但是它们都有共性,都是早上 6:47 生成的。让我想想,肯定是 cron 中 sysklogd 脚本搞的鬼。进入 /etc 中的各个 cron 子目录中,把下面这句或者类似的  ^( v9 N2 j! A0 [) @! S4 k
  logs=$(syslogd-listfiles)
7 k# I# t6 c# @  加上 -s firewall.log 参数,改为
8 F& P8 m3 }) e8 {: k* S  logs=$(syslogd-listfiles -s firewall.log): F) f" U; ~/ E+ b3 ?
  让日志服务不再处理 firewall.log 日志。0 k! \/ N1 a, S* @( c: t% Q
  8、解决其它问题+ S- d) s4 f' ?, L1 X. g( x
  暂时没有。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-3 01:32 , Processed in 0.162388 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表