a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 148|回复: 1

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

[复制链接]
发表于 2012-8-4 12:16:06 | 显示全部楼层 |阅读模式
  要求:
% b4 X- a2 e# n* |) P$ a5 L6 M  利用 ubuntu 8.04 服务器版的 syslog 记录 juniper isg1000 日志,保留3个月。/ D' u: n7 y+ S; L
  1、允许 syslog 记录外部日志; D+ v+ E9 n& f# A' C# ]' v* l
  修改 /etc/default/syslogd,把其中的 SYSLOGD="" 改为 SYSLOGD="-r"
9 p: E: x5 i2 U9 @) z6 c  2、定义外部日志类型
: D: {+ F2 i. ?3 F, c5 o. J  修改 juniper isg1000 日志定义,让其生成的日志定义为 local7,并向 ubuntu 服务器发送日志。
, \9 H4 t. M$ p5 l  3、定义日志文件
  X1 C  H+ ^; Q; |: J( {! B  考虑到日志文件比较多,在 /var/log 下新建 firewall 目录,用于保存日志文件。目录属性 755。' b% P4 b" S4 g6 F
  修改 /etc/syslog.conf,在其中增加下面一行:
3 R2 G9 J4 K: n( @. m  local7.*0 M% p2 J9 L$ b! C( g' {  ?' ?/ n
  -/var/log/firewall/firewall.log: d/ g; W/ b0 e% J) ~; b
  经过测试记录不成问题,但发现有下面几个严重问题。& `+ f2 }. s- E% U& w& z+ C% y$ q
  4、重复记录问题
% Y! e7 r! E% M* O9 b9 m3 A; _/ V+ h  syslog 不光在 firewall.log 中记录,还在 /var/log 中的 syslog 和 messages 记录,由于日志很大,这下麻烦了。看看 syslog.conf 的 man,居然还有个 ! 功能,在 syslog.conf 文件中的 syslog 和 messages 定义前面加上了 !local7.*,感觉不错,syslog 不再向 syslog 和 messages 文件中记录设备日志了。/ e3 W- U1 g% k
  5、文件超大问题
" m" s, U1 |) Z  syslog 记录的日志文件最大不超过2.5G,如果超过了,将停止记录。而 isg1000 4个小时左右的日志就达到这个数量了。必须设置日志轮转。在 /etc/logrotate.d 中新建 firewall 日志轮转控制文件,属性644,firewall 内如如下:0 g& U, k# l3 Z# z
  /var/log/firewall/firewall.log {% i' X2 Q+ U$ J3 e4 z$ _9 A" v
  start 10006 w8 U; L, v0 i: _/ s$ B2 @
  rotate 512# }/ o* {3 c8 H2 {% w! i/ q
  maxage 100- l1 W& a- Z8 z5 }
  size 1500M
; L# g  Q$ N: A+ m. o  compress# n; o/ P) {1 @; j" ?
  delaycompress. u0 |/ _9 U+ ^0 P  b
  missingok9 Y0 F6 G5 t7 }4 }2 G
  postrotate* ~* ]; e/ c' {* C
  /usr/bin/killall -HUP syslogd3 C- V8 m, M% h9 f/ t
  endscript- V) Q7 Q6 T' Z/ q5 ?* H
  }
回复

使用道具 举报

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

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

  以上内容简单解释:, J; X' u9 z* v$ R, V
  由于日志文件需要保存3个月,且平均每天生成5个日志文件,设置最多保留512个,保留时间100天。
& r4 x2 M/ k3 \1 S  文件后缀编号从1000开始,比从1开始在排序上要好看。, K, e* W  e- ~# s$ J
  文件超过1500M的时候轮转。) y3 o: W& m7 M, h) l. j* d
  为了减少存储空间占用,轮转后的日志文件需要压缩,但不是轮转后马上压缩,而是轮转下一个的时候,再压缩,以防 syslog 继续写入当前文件时候丢失数据。
/ m1 ]# `: F5 Z$ G6 J0 A4 y- F  经过以上设置,感觉可以,谁知道使用几天,发现还有问题。
3 `; Y4 g; h5 I% s0 x0 R6 K0 G0 x  6、再次解决文件超大问题! E' S( F4 D( X1 m" p
  firewall.log 文件依然是2G多,没有按照设定达到1500M的时候轮转,究竟为什么?仔细看 man logrotate ,呵呵,原来如此,logrotate 每天运行一次,等它运行的时候,firewall.log 早就达到2G了。怎么办,让它每小时运行一次试试看,把 /etc/cron.daily/logtotate 文件拷贝到 /etc/cron.hourly 中一份。效果不错,看来问题解决了。
: s) w# Q' j8 W$ B' ^, ^) w% E  7、解决日志文件不到1500M就轮转、且日志文件名没有按定义规则生成问题
' d  f8 @0 ?+ d8 f/ a: K  经过若干天运行,发现个小小问题。若干文件不到设置的1500M就轮转了,而且文件名没有按定义方式生成,而是原始的 firewall.log.0 方式,但是它们都有共性,都是早上 6:47 生成的。让我想想,肯定是 cron 中 sysklogd 脚本搞的鬼。进入 /etc 中的各个 cron 子目录中,把下面这句或者类似的) s1 P# A6 \: N8 z+ U
  logs=$(syslogd-listfiles)
- D1 i' J- s) O% b. c" [; O  加上 -s firewall.log 参数,改为
! J7 A2 ]$ [9 O  logs=$(syslogd-listfiles -s firewall.log)- r, g) P, A# S# V  B5 a; d) n
  让日志服务不再处理 firewall.log 日志。
/ y/ O( }6 `7 y  8、解决其它问题- r! [3 I/ ]/ a* k0 Y  }& h
  暂时没有。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 03:59 , Processed in 0.190174 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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