前几天领导安排了一个任务,要在一台Linux服务器上搭建日志服务器,作用是记录本网段所有服务器的日志,我们这个网段包括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客户端,发送其日志到日志服务器。