Apache服务器监控系统的研究
刘波 代亚非吴非
(哈尔滨工业大学计算机系哈尔滨 150001)
(北京大学计算机科技系系统结构教研室北京 100871)
摘 要:针对Apache服务器介绍了一个远程监控系统。它提供了有效的监控机制,使管理者及时了解服务器的工作状态及工作性能;其友好的管理界面使管理者从繁杂的命令行工作方式解脱出来,方便地进行管理;其安全的通信机制使监控系统与服务器异地运行而减少对服务器性能的影响。
关键词:Web server, Apache, Web安全, 监控系统
0 引言
Web服务器是目前大多数业务最关键的部分。它提供了公司的公共门面、发布内部信息并通过在线的购买和推荐带来真实的收入。因此,Web服务器的安全与高性能成为人们期待的目标。但随着Web服务器功能不断增加,Web所面临的威胁亦在增加[2],建设与管理它必须要有丰富的经验和知识[1]。
本文针对当前流行的Apache服务器,研究实现了一个具有统一用户接口的监控系统,使管理员随时了解Web server的性能及安全状况,通过友好的远程管理界面在任意地点对服务器进行管理,脱离繁琐的命令行工作方式,提高了Web server管理者的工作效率,从而为Web se
rver始终处于高性能、高安全性的工作状态提供了一种措施。
1 系统功能及实现
本所介绍的Apache服务器监控系统是基于Web的Client/Server技术,应用Java语言实现的可视化监控系统。其主要功能是:(1)监视Web server的工作状况,如当前在线连接的个数、请求响应时间等。当出现异常情况紧急响应并自动报警。(2)服务器管理,如远程配置、重启动等。系统实现模型如图1。
监控系统将浏览器作为统一的用户界面,通过Applet使用户与监控系统进行交互。用户可通过监视界面(Applet)设置或得到Web server运行时监控系统所获得的性能参数,设置性能参数的正常值,也可通过管理界面(Applet)远程配置、重启Web server。监视服务器运行在与服务器所在主机同一网段的其他任意主机上,完成监视功能。代理服务器(Agent)主要负责与Web服务器所在主机打交道,包括读写监控系统配置文件、Web server配置文件、日志文件以及主机上的其他文件,并在需要时提供给监视服务器。监视服务器/Applet与Agent通讯的协议采用TCP或UDP,而具体的操作请求包含于协议数据体中。
1.1 监视服器
监视服务器的功能是获得Web server的性能参数,然后与相应的正常值进行比较,若发生显著偏差(由管理员定义偏差范围),则紧急响应,自动报警。监视服务器搜集的性能参数主要来源于模拟客户请求所得数据、Web server日志和网络传输数据,包括[2]:
服务器响应时间 监视服务器周期地(10min)向Web server发送HTTP的HEAD方法请求包,记录响应时间,若响应时间过长则报警,以进行Web server的性能配置。
主机系统负载状况 代理服务器周期地(10min)将Web server所在主机系统的CPU负载及内存使用状况的参数提交给监视服务器,监视服务器进行数据精简及分析,当出现超载情况则报警。
Web server日志分析 [HT]Web server日志包括error-log和access-log。代理服务器定期(15min)统计一次最新的Web server日志信息,提交给监视服务器。监视服务器进行数据精简,以检测授权用户假冒(即非授权用户访问特定Web内容),Web页面被恶意删除等攻击行为。
网络数据分析监视服务器进行网络侦听,分析网络传输数据,以保护Web服务器免于拒绝服务、缓冲区溢出等攻击。如,可能导致系统崩溃的碎片,假IP包,或制造大量的半连接,SYNFlooding等。
1.2 代理服务器
代理服务器的功能是代理监视服务器、Applet与Web server所在主机交互的请求。当用户要求了解Web server当前运行状态时,Agent将作为前端界面与监视服务器的中转,为Applet和监视服务器传递请求包和响应包。
监视界面的请求主要为设置Web server的性能参数正常值及其范围,代理服务器将其写入监控系统的配置文件;显示当前运行状况。管理界面的请求包括对Web server进行配置,并在必要时重新启动。根据配置内容的目的及属性[3]作者将其分为3类,因此管理功能具体为: 文件管理 对服务器用到的文件、目录进行配置,包括服务器运行根目录(ServerRoot)、用户目录(UserDir)、日志文件位置(ErrorLog,TransferLog,AgentLog)以及文档根目录(DocumentRoot)等。
性能管理 在Apache运行时,可以通过修改配置文件对server的性能进行调整,如选择服务器运行类型(ServerType),是独立运行的方式(Standalone)或是inetd运行方式;通过改变MaxServer和StartServer的数目改变服务器所占有的资源;设置恰当的Redirect功能以使服务器负载均衡等。
安全管理 为了对某些文件的访问权限加以控制,可以在Access.conf(缺省的文件名称)文件中对整个server的访问策略进行配置,如各目录及文件的访问权限,并可在选择Standalone运行方式时,设置有效的用户和组(它们都可设置相应的密码),对某些信息进行保护。
重启 当Web server被重新配置后,必须重新启动才能使某些配置生效。管理模块首先根据PidFile中的进程号杀死Web server主进程,然后重启Web server。
除此之外,代理服务器负责检测HTML页面正确性。此项功能为管理员动态设定,因为此项检查占用Web服务器主机的系统资源较大。当管理员设定此项时,代理服务器将制作现有文件的备份,并定期检查各HTML文件的大小、修改时间和校验和,若出现改动,则将当前HTML文档和日志文件保存至指定目录,用备份文件进行自动恢复,并报警。
2 监控系统安全性
监控系统的加入不应增加Web server的不安全性,因此,监控系统自身的安全是作者考虑的一个关键问题。
首先,选择了Java语言实现监控系统,是因为在网络编程方面它有其他程序设计语言难以比拟的特点[4-6]:
(1)面向对象的网络程序语言,编程简单,易于处理网络协议,减少了编程错误;多线程机制,提高了编程质量。
(2)编译时和运行时的语法检查和例外检查,垃圾回收机制,集成的面向对象的例外处理机制等,增强系统的鲁棒性。
(3)可移植性。
其次,监控系统中各部分的通信采用密文传输。因为JDK1.2的加密结构(Java Cryptograghy Architecture,JCA)提供了全面的加密服务和算法以保证网上信息的安全,本文的监控系统均采用java.security包中类实现。
3 对Web服务器性能的影响
监控系统的运行是否会对Web sever所在主机的性能产生影响?影响的程度多大?这是监控系统也要考虑的一个关键问题。在本文的监控系统中,Agent是对Web server所在主机的性能产生影响的因素。因此,作者在Agent的实现过程中如下设计:
(1)将Agent(代理服务器)加入inetd中,因为其被请求频率不高。
(2)监控系统配置文件在管理员设置后全部上载至监视服务器,监视服务器不再有与配置文件有关的请求,直至下一次更改。
(3)监控系统中的周期长短可以由Web管理员根据Web server的运行情况进行配置,从而比较接近降低资源消耗和减少漏报率之间的平衡。
(4)当前端要显示Web server运行参数时,Agent只对包做转发,而不进行加密和解密。
(5)如果Web管理员配置了检查HTML文件正确性的选项,则需设置HTML文件检查模块的运行方式,选择cron daemon激活的形式或远程消息激活的形式。cron daemon激活的方式是指Agent写crontab文件,由cron daemon每分钟检查是否该执行文件检查,这种方式比较浪费主机的资源,但执行及时,不依赖网络;远程消息激活的方式是指文件检查模块被Agent初始化后进入休眠状态,由监视模块定时发UDP包给Agent,由Agent唤醒文件检查模块,这种方式对Web server所在主机影响小。
上述实现手段使监控系统对Web server所在主机的性能影响可以只来源于Agent对网络数据包的处理。
4 结论
Web安全是一种动态的错综复杂的安全政策和安全产品的组合。Web server性能及安全的保证应构建在主机及网络安全的基础之上,由完整的安全策略评估和管理各种实施和支持Web安全的部件,包括保护、评估、检测与响应等步骤。本文的监控系统实现了检测与响应,监视服务器实质上是一个基于主机和网络的IDS的简单实现(包括部分自动响应功能),而代理服务器则实现了一个响应系统(人工响应和自动响应)的功能;统一的前端界面(浏览器)使管理员不受地点限制,随时掌握服务器运行状况,远程管理Web server,配置监控服务器。
参考文献:
[1]http://www.wrqwam.com/prodserv/namonitors.html
[2]张小斌,严望佳.黑客分析与防范技术.北京:清华大学出版社, 1999,5
[3]http://www.apache.org/docs/mod/directives.html
[4]Gosling J, McGilton H. The JavaTM Language Environment. Sun Microsystems, Inc., 1996,5
[5]http://developer.java.sun.com/developer/technicalArticles/Security/Crypto/index.html
[6]http://developer.java.sun.com/developer/technicalArticles/Security/JCE/index.html
分享到:
相关推荐
为了确保其性能最佳,监控Apache服务器的状态至关重要。本文将深入探讨三个主流的开源工具,它们可以帮助我们有效地监控Apache服务器的性能。 1. **Nagios** Nagios是一款强大的网络监控系统,它可以实时监控系统...
为了管理和监控Apache服务器,有多种工具可供选择,如通过命令行工具"apachectl",或者使用可视化界面如Webmin或VirtualMin。此外,错误日志和访问日志(分别存储在"error.log"和"access.log")是排查问题和分析...
《基于Linux的Nagios服务器监控系统的研究与实现》 在当前信息化高速发展的时代,服务器监控系统的重要性日益凸显。Nagios,作为一个开源的网络监控软件,是Linux系统中的佼佼者,为服务器管理和维护提供了强大的...
### Apache服务器配置详解 #### 一、Apache服务器配置方法概览 Apache服务器是目前最流行的Web服务器之一,它不仅能够高效稳定地处理大量的HTTP请求,还可以通过丰富的模块扩展其功能。本文将详细介绍如何配置...
在构建大型Web应用程序时,Apache服务器集群和负载均衡是至关重要的技术,它们能确保系统的高可用性和可扩展性。Apache服务器作为最广泛使用的HTTP服务器之一,经常被用于处理大量并发请求。当单个Apache服务器无法...
Apache服务器配置全攻略 Apache HTTP Server(简称Apache)是世界上最流行的Web服务器软件,以其开源、稳定、高效的特点深受广大开发者和运维人员的喜爱。本指南将深入探讨Apache服务器的配置过程,帮助你掌握全面...
总结来说,"apache监控脚本"是一种自动化工具,它能确保Apache服务器在出现问题时迅速恢复服务,减少了人工干预的需求,提升了系统的稳定性和可靠性。通过定期检查、异常处理、邮件通知等功能,使得运维工作更加高效...
### Apache服务器负载均衡方案 #### 一、概述 在现代互联网应用中,随着访问量的增加,单一服务器往往难以承担高并发请求的压力。为了解决这一问题,采用负载均衡技术来分散请求到多个服务器上变得至关重要。...
- 安装Apache服务器:在不同操作系统(如Linux、Windows、macOS)上的安装步骤,包括源码编译和二进制包安装。 - 配置文件解析:介绍`httpd.conf`和`.htaccess`等配置文件的结构和常用配置选项,如DocumentRoot、...
这个名为"apache_2.2.6-win32-x86"的压缩包文件包含的是Apache服务器的一个特定版本——2.2.6,专为32位Windows操作系统设计。在本文中,我们将详细探讨Apache服务器的安装过程以及与PHP的集成。 1. **Apache服务器...
该压缩包文件“python服务器监控系统源码数据库演示.zip”包含了一个基于Python的服务器监控系统的完整源码和数据库,这是一份毕业设计项目,已经获得了教师的高度评价。它使用了Django框架,这是一个流行的Python ...
在本压缩包中,主题是关于在Linux系统上配置Apache服务器。Apache服务器是全球最流行的Web服务器软件之一,广泛应用于各种Linux发行版中。本文将详细介绍如何在Linux环境下安装和配置Apache服务器,以及可能涉及的...
本指南将详细介绍如何在Linux系统下安装Apache,并提供监控Apache服务的方法。 ### 一、准备工作 在开始安装Apache之前,确保你的Linux系统是最新的。你可以通过运行以下命令来更新系统: ```bash sudo yum ...
配置Apache服务器是一个综合性的任务,涉及到对网络协议的理解、操作系统配置、安全策略制定等多个方面。掌握这一技能,不仅能提升个人的技术实力,还能为组织或企业提供坚实的网络基础设施支持。无论是构建个人博客...
描述中提到在不同操作系统下配置Apache服务器,包括macOS、Windows、Linux和Unix系统。这些操作系统均为常见的服务器操作系统,说明文档涵盖了Apache服务器在不同平台上的部署与配置方法。操作系统的选择往往依赖于...
Red Hat Linux 9作为服务器操作系统时,其内置的Apache版本通常会有一个默认配置,这个配置决定了Apache服务器的基础运行状态。用户在安装操作系统后,一般可以迅速开始使用Apache,无需进行复杂的配置即可启用Web...
通过上述步骤,你不仅能够监控Apache服务器的基本运行状况,还可以深入分析服务器的性能瓶颈,以便在性能测试过程中做出相应的优化调整。在实际操作中,确保对Apache服务器的修改不会影响生产环境的稳定性,并根据...