服务器日志分析系统的研究与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
服务器日志分析系统的研究与实现【摘要】通过将服务器日志导入到sql server数据库中,建立事件id库,采用sql 语句对采集的日志数据进行统计、汇总,进行基于事件id库的审计,可以更快捷地在众多的日志中查询到关注的报警项,建立相关的事件id库,让审计人员可以快速定位问题,加快处理问题的速度,提高运维效率
【关键词】日志;syslog;sql语句;事件id
1.前言
在全球经济一体化商业竞争异常激烈的今天,企业的管理能力在很大程度上决定了企业的存亡,信息管理是企业管理的重要组成部分,在信息管理中有一个被忽视的领域“日志管理”,随着大型企业信息化建设不断的深入,通常在大型企业内部网建设中都包括多个路由器、交换机、防火墙设备等;而每台设备和每个服务器都有独立的日志文件,如果管理人员每天都要一个个日志地查看,那势必会影响到他们的正常工作!所以我们有必要设计一套合理的日志管理平台来提高网络的安全性,减轻管理人员的维护工作量,同时通过对日志数据的分析,可以为企业管理者提供决策和风险管理支持。
本文通过日志工具将windows日志导入到sql server数据库中,然后采用sql 语句对采集的日志数据进行统计、汇总、分析,从而搭建起企业日志管理平台,实现了基于事件id库的日志审计。
2.本文中的关键技术
2.1 syslog协议
syslog 协议,是在加里佛尼亚大学伯克立软件分布研究中心(bsd)的tcp/ip 系统实施中开发的,在网络设备中,syslog记录着系统中的任何事件,管理者可以通过查看系统记录,随时掌握系统状况。
2.2 syslog watch
一款高性能易用的windows syslog服务程序,能够采集所有不同的来源的syslog信息进行分析。
2.3 sql
sql(structured query language),结构化查询语言。
sql语言的主要功能就是同各种数据库建立联系,进行沟通。
按照ansi (美国国家标准协会)的规定,sql被作为关系型数据库管理系统的标准语言。
3.服务器日志分析系统的设计与实现过程
3.1配置windows客户端
windows的系统日志文件有应用程序日志、安全日志、系统日志。
正常的windows日志是不支持syslog日志协议的,直接是无法将windows日志导入到syslog日志服务器上。
因此,我们需要第三方软件来转换windows的日志——evt sys (全称是evntlog to syslog)。
该软件下载解压后是evtsys.dll 和evtsys.exe。
把这两个文件拷贝到服务器:\windows\system32目录下。
打开windows命令提示符,输入命令如下:
c:\>evtsys -i -h 192.168.1.1
-i 表示安装成系统服务 -h 指定log服务器的ip地址
启动evtsys服务的命令为:
c:\>net start evtsys
如果需要卸载则输入命令为:
c:\>net stop evtsys
c:\>evtsys u
3.2 建立日志数据库
在日志主机上安装sql server,并按照syslog日志标准的数据格式建立数据库。
具体数据库结构如图:
表1日志数据库数据格式
序号列名长度备注
1 datetime 50 时间
2 ip 50 日志主机ip
3 source 50 源
4 facility 50 日志等级
5 severity 50 日志类别(警告或错误等)
6 message 1000 日志详细信息
7 id 4 主键
3.3通过syslog watch服务器将数据传输到数据库中
为了在日志主机采集到syslog日志,必须在日志主机上安装日志服务器软件,才能采集到防火墙信息中心所发出的syslog日志,
本文采用syslog watch日志软件。
这款软件最主要的优点是能够通过设置将采集到syslog 日志导入到sql server数据库中,从而通过数据库的强大的数据统计分析功能对日志进行分析。
首先安装在日志主机 syslog watch软件,随后syslog watch 中的setting选项中,找到export db选项,选择export recvied (using odbc),在随后的odbc数据源中进行配置,使采集到的数据能够添加到日志主机的sql server 数据库中
3.4基于事件id库的日志审计
windows日志每种类型的事件都赋予了一个唯一的编号,即事件id。
通过分析事件id可以发现影响windows系统安全的因素。
因为服务器日志已经导入到数据库中,但是由于每天产生的日志少则百条,多则千条,如果一条条分析的话是不可能的,所以结合的实际情况在sql server数据库中建立事件id库,可以减少无实际应用的id分析,提高问题发现的几率和追踪的效率。
建成的事件id库可以分为几类:
关注的id:主要包括可能对系统存在安全威胁影响的id,例如—些账号登录事件、账户管理事件等。
不关注的id:此类事件主要为信息类描述事件,如应用程序和系统的说明性日志记录。
建好事件id库,通过sql server实现对数据库的完全操作,导入脚本可以实现日志的查询并展现相关日志内容。
日常的查询语句可以保存为文本文件,查洵时可方便导入。
查洵语句举例如下,
即查询名为dbo_syslogid的库中的一些登录id,这些id是事件id库中的“关注”项,这样运行完脚本后,就会出现对应的详细报警信息,方便安全管理人员审计分析。
select format([datetime],’yyyy-mm-dd’) as riqi,dbo_syslogid.ip, dbo_syslogid.source,
dbo_syslogid.facility, dbo_syslogid.severity,
dbo_syslogid.message, dbo_syslogid.messid
from dbo_syslogid
where (((dbo_syslogid.messid)=“552” or
(dbo_syslogid.messid)=“551” or (dbo_syslogid.messid)=“538”))
order by format([datetime],’yyyy-mm-dd’) desc;
4.结束语
通过此日志平台的搭建,为安全管理人员进行日志搜集和审计提供了方便。
审计过程不需要额外增加系统维护人员的工作量,而且审计结果能够准确地反映系统的安全运行情况。
基于事件id库的日志审计,更快捷地在日志中查询到关注的报警项;建立相关的事件id库,让审计人员可以快速定位问题,提高运维效率。
参考文献:
[1] 方靛尊汪海《日志提取分析系统的设计和实现》计算机工程 2004年7月.
[2] 赵鸣《日志管理和分析系统的设计与实现》[学位论文]硕
士 2006.。