基于Web日志的企业应用系统审计
作者:高静 薛峰
来源:《信息安全与技术》2015年第06期
【 摘 要 】 通过Web系统的访问日志数据分析,构建一个基于Web日志数据的用户访问分析系统。该系统通过对网站的功能访问频次、响应时长、http返回的字节数和访问时间等统计指标,为用户提供可视化的用户访问信息统计及趋势预测,并结合应用系统及数据库的资源使用情况,为系统优化的改进建议、评估系统功能的使用情况。
【 关键词 】 Web日志;用户访问行为
1 引言
Web访问日志中包含了大量的用户浏览信息,通过对Web日志中用户行为数据的提取,能够反映Web系统的应用及性能情况。本文是通过结合功能开发时候的预计使用人数、使用频次和性能要求,对已经上线的应用系统的实际使用情况进行统计,分析是否达到预期的目标,
对业务部门提出的需求功能的使用情况进行反向评价。出系统功能在开发或使用的过程中存在的问题,促进企业信息化建设的良性发展。
2 企业应用系统的现状及特点
本文研究的某企业是大型企业,其信息部门每年都有大量的定制开发工作,并根据生产的需要,自开发、外购或合作开发多个新Web项目。每年大量的新增定制功能开发和Web项目,缺少对实际功能的使用、性能做分析。造成应用系统项目剧增、系统稳定性变差,应用系统之间功能重叠、新开发的功能开发出来后没有或很少被使用的情况,造成资源的浪费。综述某企业的特点主要有几方面。
(1) 开发平台:目前的开发平台主要是基于Java和.NET实现,基于Linux+Apache和Windows+IIS,后台数据库则采用Oracle和SQL Server。
(2) 应用服务器多样化:主要采用了IBM WebSphere 6.1、7、8,NGNIX,IIS 6,7等诸多版本,部分应用程序公用一个IHS。应用服务器的多样化,造成产生的日志格式有较大差异。
(3) IP分配策略多样化:由于涉及多个厂区,不同厂区采用的IP分配策略不一样,如在老厂区,则根据人员的账号,分配固定IP;新厂区,则采用动态IP,每次进入内部系统的IP都不一致。用户还可以通过VPN的方式接入内网。IP网段的划分不依赖于固定的办公室结构。
(4) 应用系统访问频度不一样:现有的系统根据其访问的用户数和其重要性分为一级系统、二级系统、三级系统。不同级别的系统对应不同的SLA。造成不同系统产生日志大小也有很大差异,企业门户网站每天产生的Weblog日志量又16G之多,而其它不经常使用的系统每天则产生几十M的日志文件。
(5) 用户操作系统各不相同,REHL 6、REHL 5、HP Linux、SUSE Linux等,Linux内核分属于不同的版本,具体在实现日志分割的时候,需要考虑具体的差异。
现有的开源日志分析软件,如Awstats、百度站长统计和Gooogle分析等,虽然能够提供详细的统计指标,主要是提供的网站流量统计分析系统,对现有的商业网站的参考意义较大。而在企业内部,流量统计不是主要目标,主要是分析业务功能的使用情况与性能分析,提升系统的稳定性。因此,需要根据企业的实际业务需求,开发一套能够满足企业要求的系
统。本文提出的Web日志分析系统就是在这样的背景下产生的。
3 系统功能描述
3.1 网站日志分析的实现
Web网站日志分析系统,首先,依据业务部门要达成的目标,分析需要收集的日志指标数据,调整各个应用系统的日志配置,生成的访问日志以天为单位生成文件。每天晚上12点后,对生成不同格式的日志数据文件的格式进行统一化处理,传输到日志分析服务器。待各个客户端上传完毕后,日志分析服务器开始对前一日的日志进行集中分析,生成分析报表。处理流程如图1所示。
3.2 网站日志格式的修改
根据企业业务需求的要求,统计制定功能的访问频次、系统响应时长、访问的文件数、客户端的操作系统及浏览器使用情况等,需要日志能够记录字段:远程IP、访问时间、访问的URL串、参考URL串、响应时间、USER AGENT和HTT响应状态码等,需要对不懂应用服务器做不同的设置。
(1)对WAS 8.5 集。WAS8.5 的集,采用了APACHE,仅需在HTTPD.CONF的配置文件中配置
#specific log format
LogFormat
"%h\"%l\"%u\"%t\"%r\"%>s\"%b\"%{Referer}i\"%{User-agent}i\"%D\"%{cookie}n" combined
#generate the specific logfile’s name and gengrate a logfile every day
CustomLog"|/opt/IBM/HTTPServer/bin/rotatelogs /opt/IBM/HTTPServer/logs/accesslog/access_log%Y-%m-%d 86400 480" combined
即可。
(2)对WAS单点.对于WAS单点,根据IBM的官方文档,新增加LOGACCESSFORMAT属性,并配置accessLogFormat "%h""%t""%r""%s""%b""%D""%{JS
ESSIONID}C",修改日志属性。重启应用即可。由于WAS6与WAS8有差异,因此,需要将得到的日志文件做二次处理,最终生成同WAS8.5集的日志格式。WAS单点需要手动在每天晚上凌晨,对日志进行分割。并根据配置文件,生成统一格式的日志文件名。
配置文件/etc/Weblogrotate /httpaccesslog如下:
/opt/IBM/HTTPServer/logs/accesslog/http_accesslog{
daily
dateext
copytruncate
nocompress
rotate 7 }
日志文件生成指令如下:
#enforcesperate the logfile and create the new file with_name
logrotate -f /etc/Weblogrotate /httpaccesslog
(3)IIS 部分.IIS需要修改日志为W3C格式,确保日志生效,并重启服务。由于IIS部分的应用程序较少,因此采用日志分析服务器直接从IIS服务器上下载每天产生的日志文件,与WAS集类似,不再赘述。
(4)NGINX 部分。NGINX日志格式直接按照$remote_addr"-"-"[$time_local]"$request"$status"$body_bytes_sent"$http_referer"$http_user_agent"$request_time"-的格式配置,并在每天凌晨0点的时候增加日志的分割功能即可。
然后编写shell脚本或批处理文件,将日志文件的数据上传到日志分析服务器,其关键代码如下:
#ftp uploadfile to the aim category
ftp -n
open $ftpip
user $ftpusername $ftppasswd
passive on
binary
cd $ftppath
lcd $localpath
get $srclogfile
close
bye
!
#rename the logfile name to the specific format
mv $localpath$srclogfile $localpath${syscode}-access_log${datestr}
#delete 7 days ago logfile
find $srclogpath -mtime +7 -name "*" -exec rm -rf {}
最后将shell脚本加到crontab中去
0 0 * * * /usr/shell/ftp_accesslog.sh EIPEIP
jsessionid 3.3 网站日志分析系统的实现
网站日志分析系统实现主要有几方面的工作:1)网站访问数据的产生;2)网站访问日志数据的收集(前两部分的工作已经在上一部分有详细描述);3)网站日志分析数据的抽取、转换、加载;4)根据企业业务需要生成应用报表。
通过上述功能的实现,已经基本能够分析出系统的日访问最大量出现的时间段,系统性能可能下降的时间,开发系统功能的使用情况及客户端情况的收集。如表2所示,实际的某系统菜单活跃度日监控的截图。
4 结束语
Web 网站日志分析,通过对某企业的应用系统的访问日志分析,可以对系统开发功能的使用情况做统计分析,了解企业信息化的开展情况。能够通过对系统响应较慢的功能进行定位,为后期性能改善提供分析点,并有利于出高峰时段等重要信息。通过对日志的分析,完善企业内部的信息化突进工作,为系统的实际使用情况提供参考和指导。
参考文献
[1] 陈磊.基于AWStats的校园网站日志统计分析[J].信息系统工程, 2011.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论