前天安排了一个任务,要在一台服务器上搭建日志服务器,作用是记录本网段所有服务器的日志,我们这个网段包括WWW、DNS、Mail、计费、Video、电子政务等十几台服务器,系统包括Windows2000、Windows2003、Linux9、AS4和Solaris。因为以前根本没有这方面的经验和资料,自然而然想到了在网上搜罗一下,可能是这方面的应用不是太广吧,找来找去,只找到了一篇比较对路的资料,就是这篇“集中管理服务器日志”。全文如下:
----------------------------------------------------------------------------------------------------------------------
1 创建日志服务器,用来接收客户端发送来的日志,采用Linux系统默认的syslog程序
配置syslog程序,使其能够接收其他服务器发来的日志。
为了将日志按服务器ip分类,可以将syslogd程序配置如下,需要修改一下/etc/syslog.conf文件:
authpriv.* |/var/log/servers/server_login.sh
这表示把系统的登入登出日志(包括本机系统登陆登出日志)存放到/var/log/servers文件夹下。在记录目标前面加上“|”表示把接收到的信息交给后面的程序处理,这个程序可以是一个专门的日志处理软件,也可以是一个自己编写的小的脚本,举例:
#!/bin/sh
read stuff
SERVER=`echo $stuff |awk ‘{print $4}’`
echo $stuff >> /var/log/login_log/$SERVER.log
这个简单的脚本以IP作为分类依据,先用read读取log信息,用awk取出第四字段(即IP地址或者主机名所在的字段),以该字段为文件名存放该主机的日志。这样一来,来自192.168.1.1的log会记录到192.168.1.1.log文件中,来自192.168.1.2的log会被记录在192.168.1.2.log文件中,分析和归类就比较方便了。甚至把log信息分类后插入数据库中,这样日志的管理和分析就更方便了。
2 配置linux客户端,发送其日志到日志服务器。
3 配置windows服务器,使其发送日志到日志服务器。需要安装一个第三方软件,名字叫eventsys,用于转发日志到linux系统的syslog日志服务程序。下载地址为:
https://engineering.purdue.edu/E ... cuments/UNIX/evtsys
解压后是两个文件evtsys.dll和evtsys.exe ,把这两个文件拷贝到 c:\windows\system32目录下。
打开Windows命令提示符(开始->运行 输入CMD)
C:\>evtsys –i –h 192.168.0.2
-i 表示安装成系统服务
-h 指定log服务器的IP地址
打开windows组策略编辑器 (开始->运行 输入 gpedit.msc),在windows设置-> 安全设置 -> 本地策略 ->审核策略 中,打开你需要记录的windows日志。evtsys会实时的判断是否有新的windows日志产生,然后把新产生的日志转换成syslogd可识别的格式,通过UDP 3072端口发送给syslogd服务器。
所不同的是evtsys是以daemon设备的方式发送给 syslogd log信息的。
因此,需要在/etc/syslog.conf中加入:
daemon.notice |/var/log/server_login.sh
----------------------------------------------------------------------------------------------------------------------
看完此文后,心里大概有了一个谱了,知道该怎样操作了,可是还有一些细节性的问题需要搞清楚:
1:第一步关于建立日志服务器讲得不是很清楚,后面四行编写的脚本是不是就是前面的程序server_login.sh?然后这一步是不是仅仅就写一个脚本和改动一下syslog.conf文件就可以了?总觉得没有这么简单。
2:第二步讲的更不清楚,如何配置Linux客户端,使其发送其日志到日志服务器?另外我们的很多服务器采用的是Linux AS4系统,日志服务器如果安装的版本与它不同或者说低于它(如Redhat Linux9),能否同样完成日志的传送?
3:第三步配置Windows客户端有一个问题,就是Windows客户端记录系统日志使用的是系统自带的Eventvwr.msc组件,此组件记录的日志分为三部分:应用程序日志、系统日志和安全性日志,那么在发送日志到日志服务器的时候,是不是将三部分统统发送?
4:很多专有系统有自己自带的日志记录工具,如:计费服务器和邮件服务器,那么这部分的日志能不能够被记录到日志服务器?如果能,又该如何操作?
5:最后一个问题是,有没有一款基于Windows系统的搭建日志服务器的软件?当然,它能够跨系统接收Linux、Solaris和FreeBSD等OS发送的日志。