APP下载

构建Web日志分析服务器

2016-11-26

网络安全和信息化 2016年9期
关键词:配置文件服务器端日志

引言:Web网站日志文件中包含了网站运行的大量信息,通过对日志进行分析和统计,能够有效掌握网站系统运行情况,能够加强对整个网站及其内容的维护和管理,使网站运维工作有的放矢。本文通过对基于AWStats的Web日志分析服务器的搭建,介绍日志分析服务器部署的基本架构和工作原理。

随着Web网站的发展和规模不断扩大,对于网站日志进行分析越来越重要。在Web服务器日志中,记录了Web Server接收请求以及运行状态的各种原始信息。对这些信息进行统计和分析,能够有效地掌握网站的运行状况,了解网站访问量、访问高峰时段、访问返回错误等信息,帮助运维人员加强对网站系统的维护和管理,为网站持续优化和发展提供准确的数据依据。

Web日志分析服务器部署方法

Web日志分析是通过分析工具的处理,将日志文件中包含的各种原始信息进行分析和统计,最终得到对运维人员有帮助的数据。日志分析有两种架构形式,一种是在Web服务器上安装日志分析程序,日志分析就在Web服务器上完成。另一种是将Web Server的日志文件通过网络传送到专门的日志分析服务器上,在日志分析服务器上进行日志分析。

图1 日志分析服务器网络架构

对于小型网站而言,日志分析工具可以和Web服务器放在一台服务器上运行。但对于大中型网站,由于网站为了提高并发服务能力,都采用前端负载均衡技术,并发的情况会有多台服务器产生Web日志。对于Web日志,由一台专用的Web日志分析服务器来进行日志的集中收集和统计分析比较合适。将日志分析工具安装在专门的日志分析服务器上,也避免了因日志分析给Web服务器带来运行负担。

本文将介绍第二种日志分析服务器的部署方法,即采用一台专门的日志分析服务器来进行Web日志分析的方式(如图1)。

Web日志分析原理

Web服务器日志记录了Web Server接受请求以及运行状态的各种原始信息。在WWW服务中,客户端访问网站,向Web服务器发送请求,根据HTTP协议,这个请求中包含了客户端的IP地址、浏览器的类型、请求的页面等一系列信息。Web服务器端收到客户端请求后,将其要求的信息返回到客户端。如果出现错误,将返回错误代码;Web服务器端将访问信息和错误信息都记录到日志文件中。

通过对日志文件中所包含的信息进行统计和分析,就能有效地掌握网站的运行状况,了解访问分布,帮助诊断错误等。对日志中访问时间的统计分析,可以得到网站在某段时间内,访问的高低峰值;对请求页面的统计分析,可以知道访问者对哪些页面内容最感兴趣,对哪些内容不感兴趣,从而可以对网站内容进行相应的改善和调整;对访问者IP进行统计,可以了解是哪些人在访问网站;对错误信息进行分析,可以了解网站访问存在哪些问题,并予以改正。

对于搭建Web日志分析服务器,需要考虑日志提取、定时执行提取任务、日志分析这三个方面的问题。

日志提取,是指在Web服务器中的日志文件,需要被传送到日志分析服务器上进行分析处理。

定时执行,是指网站访问记录不断在生成,每天在Web服务器访问量最低的时候,定时执行日志提取任务,既可以满足日志分析工作的需要,又可以最大限度地减轻日志提取对服务器的影响。

日志分析,是指日志分析服务器上安装日志分析软件,日志分析软件对从web服务器上提取来的Web日志进行分析,并用Web页面的方式呈现。

图2 AWStats日志分析拓扑图

本 文 采 用rsync、cron和AWStats来解决Web日志分析服务器的日志提取、定时执行和日志分析问题。为了说明原理,这里只以一台日志分析服务器和一台Web服务器的最简架构为例进阐述Web日志服务器的部署原理(如图2)。其中,Web服务器使用Apache服务器,网站域名为“www.mxctest.com”,IP 地 址 为“192.168.2.1”;日志提取使用rsync软件,采用文件同步的方式快速有效地实现日志文件的提取;使用Linux系统自带的cron服务定时执行日志提取任务;日志分析工具以AWStats为例,日志分析服务器IP地址为“192.168.2.2”。

部署rsync

rsync(remote synchronize)是一款免费的能够实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信 息。rsync是 用“rsync算法”提供了一个客户端和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,有较高的保密性。

做数据分析的前提是获取日志,AWStats的实现机制是将Web上运行的日志按照指定的格式传送到服务器上进行分析。数据提取的方法有很多,本文使用同步日志的方法,日志分析服务器从Web服务器同步日志文件,达到日志提取的效果。同步工具采用rsync,在Web服务器端和日志分析服务器都需要安装rsync。其中,日志分析服务器作为rsync客户端,Web服务器作为rsync服务器端。在日志文件同步过程中,rysnc客户端(日志分析服务器)连接rsync服务器端(Web服务器)开放的服务端口,通过账号口令核查后,进行指定目录的文件同步传输,最终实现客户端与服务器端日志文件一致。

1.在Web服务器上安装rsync

使用yum安装rsync:yum install -y rsync

创建配置文件/etc/rsyncd.conf,内容如下:

uid=nobody

gid=nobody

use chroot=no

max connections=4

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[httpd]

path = /var/log/httpd

comment = BACKup log

ignore errors

read only = true

list false

auth user = rsyncuser

hosts allow =192.168.2.2

secrets file = /etc/rsyncd.secrets

“rsync.conf” 是 rsync的主配置文件,文件中设置了模块,模块都是以[name]命名。模块主要定义了哪个目录要被同步,授权用户名、IP地址,指定登录密码文件等,rsync服务器可以根据需要定义多个模块。rsync客户端根据不同模块名来访问需要同步的目录。本例定义了一个名为“httpd”的模块,该模块中的path参数指定了要被同步的目录为“/var/log/httpd”, 允许IP地址为192.168.2.2的客户端能够同步服务器端“/var/log/httpd”下 的日志文件。授权同步的用户是rsyncuser,并且登录密码文件保持在/etc/rsyncd.secrets文件中。

创 建/etc/rsyncd.secrtes文件

rsyncuser.123456

设 置/etc/rsyncd.secrets文件的权限(必须是600)。

chmod 600 /etc/rsyncd.secrets

作为rsync服务器端,需要运行在deamon模式:

rsync --deamon

2. 配置日志分析服务器上的rsync

作为rsync客户端,使用yum将rsync安装完成后,只需要创建/etc/rsync.pass文件,设置内容为:123456,这个密码对应Web服务器上/etc/rsync.secrtes文件定义的密码。rsync.pass文件的权限也必须设置为600,于rsync.secrtes文件一致。

rsync客户端使用如下命令从服务端同步日志,即客户端根据rsync服务端主配置文件中[httpd]模块定义的访问授权参数,将模块指定目录下的文件同步到客户 端 的“/var/log/httpd”目录下,实现日志文件从web服务器到日志分析服务器的提取:

/usr/bin/rsync -vzrtopg--delete --progress rsyncuser@192.168.2.1::httpd /var/log/httpd--password-file=/etc/rsync.pass

定时执行工具cron

cron是一个Linux内置的定时执行工具,可以在无需人工干预的情况下运行作业,类似于Windows系统下的“任务计划”。由于Web服务器日志文件较大,在网站访问用户量最低的时候进行日志同步,对系统的影响最小。

使用cron设置定时执行日志同步任务。vi编辑/etc/crontab,写 入 以 下内容:

0 3 * * * root runparts /etc/cron.daily/rsynclog.sh

该命令的意思就是每天3点执行/etc/cron.daily目录下的文件名为“rsynclog.sh”脚本。

而”rsynclog.sh”的 脚本文件内容如下:

#/!bin/sh

#rsynclog.sh

/usr/bin/rsync -vzrtopg--delete --progress rsyncuser@192.168.2.1::httpd /var/log/httpd--password-file=/etc/rsync.pass

“rsynclog.sh”文件内容其实就是rsync客户端从rsync服务端同步日志的命令。通过cron工具设置定时执行该脚本文件,实现了日志文件的定时提取。

日志分析工具——AWStats

AWStats(Advanced Web Statistics)是一个免费的功能强大的服务器日志分析工具,它可以基于服务器日志,创建Web统计数据动态分析报告,包括访问量、访问者数量、页面、点击、高峰时段、操作系统、浏览器版本、搜索引擎、关键字、机械访问、无效连接等。数据以可读性强的Web方式呈现。AWStats可以运行在多种操作系统下,可以通过CGI或者命令行方式运行。通过即时数据文件,AWstats可以快速地处理大数据量的日志文件。AWStats可支持多种Web服务器生成的日志格式,包括 IIS,Apache,自定义等。

AWStats功能强大,可以通过参数配置实现强大的日志分析功能。关于AWStats的安装和配置,网上有较多的配置实例。本文限于篇幅,主要从原理分析出发,仅列出一些基本配置参数和步骤。

首先将AWStats安装包解压后,复制到/usr/local/awstats目 录 中。/usr/local/awstats/tools目录中的”awstats_configure.pl”文件是AWStats的安装配置文件。由于AWStats是基于perl语言书写的程序,所以需要perl命令来执行。

执 行“perl awstats_configure.pl”命 令 后,将生成AWStats软件安装的交互配置向导,根据该向导的指示,设置需要进行日志分析网站的域名和日志分析配置文件存放路径等信息。在安装配置向导完成后,在“/etc/awstats” 目录下会生成名为“awstats.www.mxctest.com.conf”的文件,该文件就是“www.mxctest.com”这个网站的日志分析配置文件。AWStats会根据这个配置文件,对“www.mxctest.com” 网站进行日志分析。因此根据情况,需要对该文件进行一些参数修改。例如,指定AWStats需要分析的Web日志的位置,本例将配置文件中LogFile的参数设置为“/var/log/httpd/access_log”, “access_log”就 是 日志分析服务器通过rsync软件从Web服务器中提取而来的Web日志。

AWStats需要httpd服务的支持,因此,AWStats安装配置向导会根据配置情况,对服务器的httpd服务配置文件“httpd.conf”进行修改,在该配置文件中添加AWStats相应的配置。

将AWStats安 装设置完成后,在“/usr/local/awstats/wwwroot/cgi-bin/awstats.pl”目录下,执 行“perl awstats.pl-update -config=www.mxctest.com”命令,通过该命令对域名为网站日志数据进行统计分析。

图3 AWStats日志分析Web页面示例

在客户机上,访问http://192.168.2.2/awstats/awstats.pl?config=www.mxctest.com,可以通过Web页面查看到该网站日志的统计分析结果(如图3)。网站运维人员通过Web页面可以直观地了解网站的运行状况。

猜你喜欢

配置文件服务器端日志
一名老党员的工作日志
Linux环境下基于Socket的数据传输软件设计
扶贫日志
互不干涉混用Chromium Edge
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
雅皮的心情日志
为View桌面准备父虚拟机
游学日志
基于Qt的安全即时通讯软件服务器端设计