开源系统自动监控大量虚拟主机
当虚拟主机数量达到几十个甚至上百时手工管理方式已不能满足要求对虚拟主机的日常运行管理、维护及对虚拟主机用户的技术支持服务迫切需要自动化的系统进行管理。山东大学选择多种开源软件进行整合开发出一套虚拟主机管理监控系统。
文陈琳 王彬
管理虚拟机的需求
虚拟主机是采用特殊的软件技术把一台服务器划分为若干个“虚拟”的主机。然而当虚拟主机数量达到几十个甚至上百时手工管理方式已不能满足要求对虚拟主机的日常运行管理、维护及对虚拟主机用户的技术支持服务迫切需要自动化的系统进行管理。
虚拟主机主要有基于Window s操作系统的和基于Limux操作系统的两种 目前基于Linux的开源虚拟主机管理系统多是国外’人员研发采用单机方式 中文支持不理想且运行环境依赖软件多、安装设置复杂可用性不强。
山东大学根据工作需要对虚拟主机管理监控系统提出以下需求
1虚拟主机管理监控系统可以支持Linux操作系统 以便于在主流的虚拟主机环境Linux+Ap ac he+P HP中采用B/S方式来管理操作系统
2应用系统必须分别部署到不同的服务器上并且可以进行集中管理
3支持多语言环境可以通过不同的应用环境管理虚拟主机服务器本身和虚拟主机站点
4服务器管理员通过系统登录后可以发布系统通知、按不同的服务器查看各自虚拟主机磁盘空间使用情况
5新的添加的服务器可以方便地纳入系统的管理中可以灵活地增加、删除虚拟主机显示虚拟主机列表可以为虚拟主机分配数据库、磁盘配额并且在创建虚拟主机时从可用服务器中选择可以查看网站访问日志的统计信息可以修改虚拟主机用户的密码
6虚拟主机管理员登录后可以查看系统通知查看自己所管理的虚拟主机的空间使用情况、 网站访问日志统计可以修改自己的网站密码和数据库密码
7登录系统采用用户名、密码、验证码相结合的方式必须考虑管理端和被管理服务器间数据通讯的安全性管理系统开发中必须考虑安全性、具有一定的防止SQL注入、跨站攻击能力。
虚拟主机管理监控系统的设计
我们采用分布式设计方案即用户可以在任意一台主机上登录管理所有的虚拟主机和物理机节点鲁棒性强使用方便。普通用户和管理员用户程序分开运行安全稳定。
系统的创新点
针对现在市面上主流的虚拟主机管理软件产品山东大学利用开源软件开发了一套虚拟主机管理监控系统具有以下创新点
1对等方式服务器架构鲁棒性强。在所有的服务器上部署相同的虚拟主机管理软件服务器之间直接通信、共享资源、协同工作每个服务器有着相同的功能无主从之分任意一台主机既可作为受控服务器而被其他的控制端所使用又可以作为控制端的计算机来访问网络中的其他虚拟主机节点没有专用的Web服务器。这样就能够提供分布式访问。即使一台服务器宕机也不会影响网络中的其他服务器和整个虚拟主机网络所以系统的健壮性强
2本系统跨平台支持Linux以及AIX、 S olaris等Un ix系统并且系统方便部署鉴于Perl先天的优势能够方便地实现对系统命令的调用和前台CGI对接。本系统在使用中
支持中英等多国语言
3加密数据传输可以安全地传递指令和数据。我们使用RSA公钥加密来加密主机之间的数据 以保障信息不被窃取
4纯Web界面管理不需要任何客户端软件方便用户在网络环境下操作
5使用开源开发工具及数据库使系统的安全性更强二次开发能力也更好。
系统的优势
普通情况下虚拟主机管理监控网络中的所有系统都是对等的如图1所示这样可以有很高的系统冗余性并且保证系统的稳定和安全。
然而 当管理员从任何一台计算机登录时提供Web服务的服务器就充当虚拟主机管理监控系统中的Client C lient负责从网络中其他的主机上取回信息生成Web页面并响应用户请求完成用户发出的命令(如图2所示)。
用户所登录的那台服务器上存放其他服务器的公钥用来加密数据。用户只需登录到系统中就可以管理其他服务器而不用输入密码这减少了密码输入的次数且密码不用在服务器间传输提高了安全性。
虚拟主机管理监控系统优化用户权限管理参照sudo定制用户执行命令的权限过滤特殊字符对各种注入攻击起到一定的防范作用。
主机的访问统计通过读取Apache日志实现对日访问量、月访问量和年访问量进行统计。
在该系统实现过程中我们充分注意细节 比如用户语言可以根据用户当前浏览器语言来设定当用户浏览器语言为英文时虚拟主机管理用户界面显示为英文当浏览器语言为中文时显示为中文这样就能充分满足不同用户的需求。后端的实现采用Llnux系统通用的Gettext国际化方式结构清晰过程严谨。在Ap ache控制方面该系统提供了普通模式和高级模式在普通模式下用户可以根据系统提示来更改配置只需要填写相关项目就可以方便地更改配置高级模式下用户可以自行编写Apache配置文件定制性强可根据需要来更改Apache配置方式多种多样使用方便灵活性强。在用户登录时添加验证码的实现方式保证用户登录的安全性。
系统开发模块的分析
针对系统的设计需求我们应用了多种开源软件进行整合开发。例如处理磁盘配额问题采用Quota来进行管理对于远程主机调用的问题采用S SH方法我们使用Apache 为用户提供Web服务对于F TP服务我们采用vs ftp对于系统的数据库我们采用MyS QL 软件。另外我们需要对虚拟主机信息进行监控所以选择了Aw stats、 Cacti和CutyCapt。
我们对系统开发模块进行具体分析。
1 用户登录模块
在虚拟主机网络中所有主机的数据库上都保存一份管理员的用户名和密码。当用户登录时首先看到的是登录页面页面上有验证码需要用户输入验证码才能进行用户名和密码的验证。在用户提交表单后先检查验证码是否正确如果不正确则返回登录页面如果正确则继续进行用户名和密码验证。当所有验证都通过时将Sessiomd写入用户cookie返回给用户管理页面。
部分代码实现
2系统验证登录和退出
用户进行每一步操作时都要进行是否登录的验证以阻止未登录用户直接调用某个页面进行操作这是由单独的模块进行每次用户进行操作时都对用户sessionid与已经登录的sessionid进行比较如果二者相同则认为用户已经登录。用户登出时服务器清空Session。
3系统新增节点
当系统增加服务器节点时先在新增加的实体机节点上配置、授权一台虚拟主机管理网络中的主机访问再在这台授权过的主机上增加节点。增加节点时虚拟主机管理会更新所有主机上的主机列表复制当前的列表到新增主机上授权数据库并同步RS A公钥完成授权。
部分代码实现
4主机列表及其负载情况
因为主机列表分布在不同的服务器上分别由不同的服务器来维护因此在登录时要从虚拟主机网络中的服务器取回主机列表信息包括用户名、用户信息、磁盘配额等这一步通过数据库连接进行。
5系统消息列表的维护
每一台服务器都维护一个消息列表读取通知时只需在本地读取即可。但在发布通知和修改删除通知时需要在所有服务器上推送消息保证消息列表的可靠性。
6添加虚拟主机
添加虚拟主机时首先需要选取服务器服务器接收到表单判断服务器是本地服务器还是远程服务器若是本地服务器则在本地新建虚拟主机若是远程服务器则在远程服务器进行远程过程调用RPC来新建虚拟主机。在主机新建时要调用到Apache控制模块来完成Apache配置。
新建虚拟主机时需要配置vsftpd、Apache、MySQL和Quota这是由过程调用产生的。
部分代码实现
7配置Apache控制模块
该模块完成Apache的配置、修改、删除、重启工作在连接远程主机完成工作时需要进行加密连接远程调用。
部分代码实现
8查看FTP日志
用户从查看FTP日志的页面上选择一个要查看FTP日志的主机或者用户 FTP日志模块就会读取本地或者远程日志返回给用户在远程读取时进行加密连接。
9系统附加功能
为了更好地完善虚拟主机管理系统的功能添加照片墙和访问管理等开源软件的支持以方便用户的使用。
(1)照片墙
照片墙后台选用Qt库来实现 Cutyc apt生成页面快照 genS napWall来调用xvfb和
Cul.yc apt共同完成快照将结果存于服务器上照片墙可方便地展现网站快照直观地显示管理虚拟主机的现状。
(2)Awstats
Aws taLs是一个免费、简洁、强大、有个性的统计工具。它可以统计站点中的如下信息访问量、访问次数、页面浏览量、点击数、数据流量等精确到每月、每日、每小时的数据访问者国家访问者IP Robots/Spiders的统计访客持续时间对不同Files type 的统计信息P ag e s-URL的统计访客操作系统浏览器等信息其他信息搜索关键字等等。
作者单位为山东大学网络与信息中心
BuyVM 商家算是有一些年头,从早年提供低价便宜VPS主机深受广大网友抢购且也遭到吐槽的是因为审核账户太过于严格。毕竟我们国内的个人注册账户喜欢账户资料乱写,毕竟我们看英文信息有些还是比较难以识别的,于是就注册信息的时候随便打一些字符,这些是不能通过的。前几天,我们可以看到BUYVM商家有新增加迈阿密机房,而且商家有提供大硬盘且不限制流量的VPS主机,深受有一些网友的喜欢。目前,BUYVM商家有...
DiyVM是一家低调国人VPS主机商,成立于2009年,提供的产品包括VPS主机和独立服务器租用等,数据中心包括香港沙田、美国洛杉矶、日本大阪等,VPS主机基于XEN架构,均为国内直连线路,主机支持异地备份与自定义镜像,可提供内网IP。最近,商家对香港机房VPS提供5折优惠码,最低2GB内存起优惠后仅需50元/月。下面就以香港机房为例,分享几款VPS主机配置信息。CPU:2cores内存:2GB硬...
digital-vm在日本东京机房当前提供1Gbps带宽、2Gbps带宽、10Gbps带宽接入的独立服务器,每个月自带10T免费流量,一个独立IPv4。支持额外购买流量:20T-$30/月、50T-$150/月、100T-$270美元/月;也支持额外购买IPv4,/29-$5/月、/28-$13/月。独立从下单开始一般24小时内可以上架。官方网站:https://digital-vm.com/de...