类别: 作者: 来源: 日期: 授权: 声明:
内容摘要:
syslog自身实现了远程log功能,本次试验的目的是实现多台主机的远程日志管理. 能对log进行简单的分离,以便进一步分析和审计.
测试环境
log服务器:192.168.0.1 (logserver) :接收日志
log客户机:192.168.0.2 (logclient) :产生日志
# uname -a
Linux logserver 2.4.21-4.EL #1 Fri Oct 3 18:13:58 EDT
2003 i686 i686 i386 GNU/Linux
简单配置
syslog自身提供了远程日志功能,这里主要需要完成的功能是:
1.配置syslog使其支持远程日志功能
[服务端]
1) SYSLOGD_OPTIONS增加 -r 标志
#cat /etc/rc.d/init.d/syslog
... ...
if [ -f /etc/sysconfig/syslog ] ; then
. /etc/sysconfig/syslog
else
SYSLOGD_OPTIONS="-m 0"
KLOGD_OPTIONS="-2"
fi
... ...
#cat /etc/sysconfig/syslog
... ...
SYSLOGD_OPTIONS="-r -m 0"
... ...
2) 确认 syslog 开起 514/udp,如果没有,需要添加如下内容
# cat /etc/services |grep syslog
syslog 514/udp
3)重新启动syslog
#service syslog restart
注: kill -HUP `cat /var/run/syslogd.pid`
只是重新载入配置文件(/etc/syslog.conf)
[客户端]
1) 增加host名
# cat /etc/hosts
192.168.0.1 logserver
# ping logserver
PING logserver (192.168.0.1) 56(84) bytes of data.
64 bytes from logserver (192.168.0.1): icmp_seq=0 ttl=64 time=0.234 ms
2) 是syslog远程输出,即把所有指向文件的输出都改成 @logserver
# cat /etc/syslog.conf
*.* @logserver
3) 重载入 syslog 配置
kill -HUP `cat /var/run/syslogd.pid`
[验证连接]
在client上,重启一个服务
#service vsftpd restart
然后在server上看 /var/log/message
能看到从192.168.0.2发送的log
[简单结论]
以上步骤,已经实现了syslog的远程日志功能,但是各个log是混在一起的
包括本机(server)和远程(client,可能会多太客户机),这样不利于log的
的分离和统计.
日志分离
首先要进行客户端的输出粒度,然后在服务端在进行二次分析和分离.
syslog.conf个格式如下.(man 和 google能找到,不再累诉)
设备.行为级别 [;设备.行为级别] 记录行为
(注意各栏之间用[Tab]来分隔,用空格是无效的。)
===============================================================
太有难度了,等我闲下来再继续,参考下别的log项目
[added 2006-08-24]
需求变化了,俺也不用费脑筋了,最简单的方法,就是crontab + grep了
每天23:59分,对log文件grep一下,就可以按ip分离和保存了,爱怎么整都行
参考资料:
- 绿盟安全月刊-构建SYSLOG系统详解
- man syslogd 8
- man syslog.conf