基于CMS的网站分析与监控系统

这是我的毕业设计,其实这个是凑巧成了我的毕业设计,整好那段时间研究SAE和上面的各种技术,做了一个“讯息网” www.siteinfor.com 然后借助Wordpress进行二次开发,在上面增加了一些其他的附属功能,如网站分析,人员实时在线分析,网站监控报警,具体的不就不介绍了,直接把我的毕业论文给沾出来吧,我感觉写的挺详细。

最后再附上我毕业答辩时的PPT。

>

基于CMS的网站分析与监控系统

总计 毕业设计 38页

表格 4 表

插图 35幅

摘要

随着互联网的普及,网络信息量与日剧增,各式各样的信息与各种垃圾信息也越来越多的充斥在网络中,本系统设计初衷为了方便用户体验, 获取更多高质量的资讯信息,其次,本系统整合互联网上的各式各样网站数据,并通过有好的展示方式像用户良好地展示,为保证用户的一站式体验,本系统在提供静态的数据分析同时,我们同时为用户提供动态的数据分析,实时分析与网站监控数据。整套系统遵循All In One原则,在每个子模块中,将所有数据整合在同一页面中,无需繁琐的点击跳转,一页中获取所有的展现数据,在整个系统中,汇聚各式各样的数据分析,为用户提供极大的方便。

关键词:CMS;网站分析;实时统计;网站监控

Abstract

Now we’re able to see so much data increasing, the internet has almost become a popularity contest,all kinds of informations all over the internet,this project is design to Improve the user experience,help user getting high-quality news and information eaily, Second,this project gather all interesting data about every website on the internet, in order to ensure a one-stop user experience,except static analysis of the data we also provide users with dynamic data analysis at same time. we sets the system to follow the All In One principle, in each sub-module, all data integration on the same page, in the entire system, we brought together a wide rangedata analysis data.

Key words:CMS;Website analysis;Website status;Website monitor

目录

1、问题背景 1

2、系统开发综述 2

2.1 PHP技术 2

2.2 MYSQL技术 2

2.3 KVDB技术 2

2.4 TaskQueue技术 3

2.5 DreamWeaver 3

3、系统方案分析 4

3.1 磁盘空间要求 4

3.2 安全性要求 4

3.3 适应性要求 4

3.4 需求分析 4

3.5 功能描述 4

3.6 可行性分析 5

4、系统设计 6

4.1 系统结构设计 6

4.1.1 CMS模块: 6

4.1.2 网站分析模块: 7

4.1.3 实时分析模块: 7

4.1.4 网站监控模块: 8

4.2系统逻辑模型设计 8

4.2.1 CMS模块: 8

4.2.2 网站分析模块: 8

4.2.3 实时分析模块: 10

4.2.4 网站监控模块: 10

4.2.5 插件模块: 12

4.3 系统数据模型设计 13

4.3.1 CMS模块: 13

4.3.2 网站分析模块: 13

4.3.3 实时分析模块: 14

4.3.4 实时监控模块: 15

4.4系统前台界面设计 16

4.4.1 CMS模块: 16

4.4.2 网站分析模块: 17

4.4.3 实时分析模块: 22

4.4.4 网站监控模块: 24

4.4.5 插件模块: 25

4.5系统后端设计 26

4.5.1 CMS模块: 26

4.5.2 网站分析模块: 28

4.5.3 实时分析模块: 29

5、系统测试及功能实现 35

6、系统开发结束语 36

7、系统开发后记 37

8、参考文献 38

1、问题背景

随着网络应用的丰富和发展,很多网站往往不能迅速跟进大量信息衍生及业务模式变革的脚步,常常需要花费许多时间、人力和物力来处理信息更新和维护工作,并且在庞大的网络面前,使得对于想获得某一特殊领域内前沿信息显得特别繁琐,基于对CMS的深度定制能使类似资源合理化归一,是网络信息精简化,并且在某一特殊主题下衍生出对其有帮助的实用性工具使得会有较强的吸引力与商业价值。

2、系统开发综述

通过对本系统功能及应用各方面的综合分析,本网站使用Dreamweaver进行前端展示模板的设计软件,运用photoshop对网站中出现的图片素材进行相应的编辑,并最终与Dreamweaver的设计进行整合,最终得出展示效果。后端逻辑运算与分析则使用NotePad++进行编写,后端逻辑运算与分析采用PHP技术进行编写,数据存储使用开源的MySql数据库存储,最终建设成型为一个一体式可以进行商业化运行的综合网站系统。下面对本网站涉及到的技术进行简要的介绍。

2.1 PHP技术

PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。本系统之所以选择PHP作为编程语言,具体原因如下:

本系统基于开源的CMS上进行的二次开发,源CMS为PHP编写,为了系统的统一性与易搭配性,遂选用PHP,另外PHP目前为国内网站类编程最常用的语言,服务端与数据库均有较为先进与高效的开源产品;

2.2 MYSQL技术

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2.3 KVDB技术

KV DB是SAE开发的分布式key-value数据存储服务,用来支持公有云计算平台上的海量key-value存储。KV DB支持的存储容量很大,对每个用户支持100G的存储空间,可支持1,000,000,000条记录, KV DB是高性能高可靠存储,根据我们内部测试,读写都可以达到10w qps。KV DB采用一主多从的分布式架构,SAE提供热备和定期冷备,发生宕机时,会自动切换到健康的DB上。

2.4 TaskQueue技术

TaskQueue是SAE为开发者提供的分布式任务队列服务,用来以异步HTTP方式执行用户任务。用户需要先在在线管理平台创建Queue,然后向Queue Push任务,放入队列的任务随即即会执行。TaskQueue的任务的执行是以HTTP方式执行的,真正执行的是用户在App中的PHP代码,所以最长执行时间和HTTP页面执行时间相同。TaskQueue服务是分布式环境部署的,具有高可靠性,每个worker相互隔离,并且主动负责任务执行。

2.5 DreamWeaver

Dreamweaver可以用最快速的方式将Fireworks,FreeHand,或Photoshop等档案移至网页上。使用检色吸管工具选择荧幕上的颜色可设定最接近的网页安全色。对于选单,快捷键与格式控制,都只要一个简单步骤便可完成。Dreamweaver能与您喜爱的设计工具,如Playback Flash,Shockwave和外挂模组等搭配,不需离开Dreamweaver便可完成,整体运用流程自然顺畅。除此之外,只要单击便可使Dreamweaver自动开启Firework或Photoshop来进行编辑与设定图档的最佳化。

3、系统方案分析

3.1 磁盘空间要求

本网站与其他网站类似,采用B/S架构,页面部分体积较小,数据库方面占用较大,页面部分不超过30M,数据库方面根据所分析的数据量多少有关,目前数据量已经达到50G以上。

3.2 安全性要求

本系统的理论上无需用户注册即可使用网站上所有内容,但也可以注册,并且使用OAuth2.0授权认证与各大开放平台进行整接,用户可以直接使用开放平台中账号进行登录。安全性上确保无注入,跨站等漏洞。

3.3 适应性要求

界面友好,并且遵循All In One理念进行设计,将所有数据整合在一个页面,用户可以方面的进行查看。

3.4 需求分析

本系统主要面向于站长与互联网从业人员设计

3.5 功能描述

根据系统功能划分,定位是科技博客与工具网站。这里会提供最前沿的科技类资讯,主要是站点类资讯,也会有其他的科技类如硬件产品的资讯,还有就是提供在线工具,例如目前所开放的网站测评、实时分析、网站监控:

(1) CMS,并且在查看信息的同时可以同时查看本站对文中涉及的网站的简要分析。

(2) 网站分析,我们根据互联网上的各类测评机构,对各大机构的信息进行整合与分析,遵循All In One理念将信息展现给用户,免去专业人士的一些不必要的烦恼。;

(3) 实时分析:本实时分析根据网站的在线情况,对网站访问者进行追踪,将其地理位置展现在地图上,并且记录访客的来源与访问地址,访问时长,来访国家等一些列信息;

(4) 网站监控:本产品是一款24小时监控网站在线状态、并实时以E-mail的方式通知您的网站监控预警产品。让您在第一时间掌握网站运行状况;

(5) 插件模块:我们在提供网站分析的同时,为了确保用户体验,我们同时开发了Chrome与IE的插件,可是使用户更好的使用我们的产品,在实时分析方面,我们开发了WordPress插件,用户只需在官方安装相应插件,即可使用我们的实时分析功能;

3.6 可行性分析

通过次系统,互联网从业人员可以一站式的获取互联网最新资讯,获得某网站的综合测评信息,获取网站的实时分析数据,并且可以对网站进行拓机监控,减少不要要的损失。

4、系统设计

4.1 系统结构设计

1 系统模块图

根据本网站的特点,我们对本系统进行分模块的设计。第一为基于的CMS的模板化设计,网站的整体展现形态。

网站根据模块的不同展现实行也大为不同,CMS方面,网站采用两栏式设计,

4.1.1 CMS模块:

主页根据新闻内容的不同将每个内容划分为小块展示在网站左侧,每小块中突出文章标题,对内容进行部分摘要,并且在最后展示文章中提及的网站,用户可以点击直接进入该网站的分析页面,网站右侧顶部则为网站分析提交如后,用户可以输入网址进入该网站的测评页面。右侧导航向下分为“文章分类”,“新闻热评”,“最新新闻”,“分析推荐”,“分析热评”,“最新话题”,“友情链接”与“关注&订阅”。

2 CMS模块

4.1.2 网站分析模块:

主页为此模块功能的介绍,分析也遵循All In One理念,融合以下信息:

3 网站分析模块

4.1.3 实时分析模块:

上半部分为模块的功能介绍,下半部分为获取次功能的模块,用户可以进行相应的点击查看此模块在被监控模块上展示的效果。

分析数据也包含以下信息:

4 实时分析模块

4.1.4 网站监控模块:

主页为此模块的介绍,底部为获取此功能的三部步骤。

监控页包含以下信息:

5 实时监控模块

4.2系统逻辑模型设计

4.2.1 CMS模块:

在CMS模块中,我们使用开源的WordPress系统,并对其系统做了进一步修改,在主页上,我们增加文章中涉及的网站中测评的链接,在单独的新闻页中,我们在底部增加文章中设计的网站的简要测评信息。

4.2.2 网站分析模块:

当一次请求触发时,系统会自动通过Hash值算出数据应该存在的数据库位置与表位置,若存在则直接数据库调用取出数据进行展示,若不存在,则开始在网络上获取资源。

1、 向Alexa发送GET请求,返回其网页信息,从总分析出:全球排名、子域名流量、国家排名与访问比例信息,并对信息进行整理与分析,根据以上信息估算网站流量信息与价值。

2、 向Google PageRank Api服务器发送GET请求,获取其网站PR值。

3、 连接Com域名服务器43端口,获取其域名注册信息

4、 获取其网站对应IP地址,并且向IP2Loaction Api 发送请求,获取其地理位置坐标

将以上信息存入Mysql数据库中,以方便下次查询。

检测非关系型数据库中是否有该网站的内容信息,若存在则直接取出数据,若不存在则加入任务队列中,等待抓取并分析数据。当队列被执行时,服务器会向被测评网站发送GET请求,获取其网站源码信息,并从中分析

1、 网站的Header头信息

2、 网站的<Head>标签信息(Title、Description、KeyWord)

3、 网站中图片的信息

4、 网站中标签的信息(个数)

5、 网站中链接的信息(外链+内链)

并将以上的信息存入非关系型数据库中。

当所有信息获取完毕时,以图表的形式在一个页面像用户展示所有数据。

6 网站分析流程模型

4.2.3 实时分析模块:

SI实时分析是一个网站插件,可以实时的显示您的网站在线访客并展示在地图上,您需要做的仅仅是把JS代码嵌入您的网站中。

本模块通过外调JS在网页的边栏上显示在线人数,并通过此JS,获取用户访问的基本信息。

当某网站中安置好次JS代码后,有用户访问时,用户会在后端自动访问位于本系统服务器下的JS文件,此JS文件通过Ajax技术GET方式访问后端PHP文件,其中提交的参数有bg、fg、r、ref、分别代表:显示组件的背景颜色,文字颜色,显示位置,访问来路。后端接收到此GET信息后,后台会分析访客国家、访客语言、访客浏览器、访客所访问的网页地址,并将数据存入关系型数据库中,并且统计此网站存在于服务器数据库中的在线信息,通过PHP DG库画出相应的图片,并展现在目标网站的相应位置。(图7)

4.2.4 网站监控模块:

“网站监控模块”是一款24小时监控网站在线状态、并实时以E-mail的方式通知您的网站监控预警产品。让您在第一时间掌握网站运行状况。

使用此模块服务需要三个步骤

1、 输入网址后,我们会为您提供一个文件名与文件内容,您需要自行在您的网站根目录建立相应的文件来验证您的网站。 除此之外,还需要将我们的链接加入您的网站中。

2、 当您的网站验证通过之后,您就可以设置您的邮箱地址以及监控密码,邮箱地址来接收您的网站最新状态,监控密码用于 在本站查看您的网站监控状态。

3、 如果上述操作全部成功后,我们会给您发送第一封电子邮件,并且,您可以登陆您的监控页面来查看您的网站最新状态了, 目前我们监控间隔为20分钟

当用户完成上述操作后,系统会将被监控网址存入关系数据库中,服务器后端有定时任务脚本,每20分钟执行一次,此脚本会把数据库中处于监控位置的网站加入检测任务队列中,顺序执行监测任务,当监控网站访问正常时,写入数据库,当监控网站不正常时,则发送Email提醒管理员。

此系统还设置自我监测功能,当监测网站不存在本站链接,并且连续提醒3次仍然未作响应时,则自动停止对该网站的监控。(图8)

7 实时分析流程模型

8 网站监控流程模型

4.2.5 插件模块:

插件模块是为本系统的其他模块提供服务使用,目前有网站分析的Chrome插件,IE插件,实时分析的WordPress插件

Chrome插件:此插件会在Chrome浏览器的导航栏中加入一个图标,当点击此图标是,会弹出当前该网站的简要测评信息。

IE插件:此插件会在IE的右键菜单中加入一个链接,当点击链接时,会进入此网站的测评信息业

WordPress插件,安装此插件后,Wordpress后台会加入一项单独的管理页面,在此页面中,可以选择插件的颜色以及位置,应用后,即可在Wordpress中使用实时监控功能,无需手动的添加代码。

4.3 系统数据模型设计

4.3.1 CMS模块:

我们沿用原开源系统的数据库结构设计。

4.3.2 网站分析模块:

因为数据量的巨大,MYSQL数据库可承受大数据量能力有限,我们采用分库分表发将数据分散存在4个不同的数据库中,并且每个数据库中分散存在4个表中。以减少对服务器的压力,加快数据的获取速度。

每张表中的结构均相同

url : 主键 网址

rank: 网站全球排名

ip: 网站的估算每日ip

pv :网站的估算每日pv

suburl: 网站的子域名流量所占比例

crank:网站的分国家排名

cper : 网站的各国访问比例

pr : 网站的page rank值

ipaddress: 网站的ip地址

lat: 网站服务器所处的经度地址

lon: 网站服务器所处的维度地址

whois : 域名的注册信息

updatetime : 此数据的更新时间

网站的内容分析因数据量巨大,我们采用菲关系型数据库Key-Value形式的存储,将Key设为url地址,其余信息以数组形式存入Value中。

1 网站分析数据表

4.3.3 实时分析模块:

我们采用单表设计,

Key 为单个ip访问某网站的唯一标示,为域名+IP组成

host :网站的域名

url : 用户访问网站的网址

bef: 用户的来访页面

ip:来访用户的IP

bro : 来访用户的浏览器类型

os : 来访用户的操作系用类型

add : 来访用户的地址

ccode : 来用用户的国家代码

lat : 来访用户所处的经度地址

lon: 来访用户所处的维度地址

updatetime :本条信息更新时间

2 实时分析数据表

4.3.4 实时监控模块:

此处我们采用以域名+密码形式的验证形式,

Domain:被监控网址

Password : 密码

Email : 用户提醒的email地址

Stats: 目前监控的状态

Right: 网站成功在线监控次数

Wrong : 网站拓机监控测试

Check:网站的内容检测次数

Updatetime : 用户提交时间

3 实时监控数据表1

监控状态:

Domain : 监控网站

Stats : 网站状态

Email : 是否发送邮件

Updatetime : 监控时间

4 实时监控数据表2

4.4系统前台界面设计

4.4.1 CMS模块:

网站首页:

9 CMS网站首页

网站首页(CMS 模块首页 )采用两栏式设计,顶部为导航栏,各模块均可在此点击进入,主体部分,左侧为文章显示栏,分块显示,在每篇文章简介底部加入提及的网站分析链接,用户点击即可进入相应的网站分析页面。

右侧栏位其他信息栏,顶部为网站分析入口,用户在此输入网址即可进入相应的网站分析。

10 低栏设计

页面的底部使用三栏式设计,分别展示知名站点,热门站点与最近查询的站点的网站分析。

文章页:

11 文章页提及站点

文章页设计与大多数CMS类似,不同的是,每篇文章的底部加入该文章中所涉及的网站的简要分析信息,此信息包括全球排名,IP,PV估算 PR值,服务器所处位置,网站估值信息。

4.4.2 网站分析模块:

网站分析首页:

12 网站分析首页

网站分析首页为此模块功能的介绍,在此加入Chrome插件与IE插件的连接,用户可以直接点击下载相应的插件。

在插件下用户可以输入网址,直接进入分析页面。

网站分析页:

网站分析页遵循All In One理念,将所有数据整合在一个页面中,从上至下依次为:

综述信息:

13 综合评价栏

汇总该网站所有信息,基本上涵盖了SiteInfor里面的所有数据,并根据此信息对网站进行估值。在右侧设置“立即更新”按钮,点击即可实时更新最新的数据。

服务器信息:

14 服务器信息栏

网站IP信息、根据IP进行的服务器物理位置定位经纬度,并展示在地图上方便用户查看。

谷歌PageRank:

15 谷歌PR

谷歌Page Rank值,从Google不同服务器获取网站PR值信息,及时获取PR最新信息数据。

搜索引擎收录:

16 搜索引擎收录栏

搜索引擎收录情况,包括百度,谷歌,必应,雅虎,ASK的收录情况。

Alexa数据:

17 Alexa数据栏

此处展示Alexa的流量图形数据,点击顶部导航栏可以切换时长。

子域名流量:

18 子域名流量栏

此处显示此网站的子域名(二级或三级域名)所占的流量比例

排名&比例:

19 排名&比例栏

此处展示网站的各国排名与各国访问比例

网站Header信息:

20 网站Header信息栏

网站内容分析:

21 网站内容分析栏

网站图片分析:

22 网站图片分析栏

网站标签分析:

23 网站标签分析栏

网站链接分析:

24 网站链接分析栏

域名注册信息:

25 域名注册信息栏

留言评论:

26 浏览评论栏

4.4.3 实时分析模块:

实时分析首页:

27 实时分析首页

实时分析首页与网站分析首页设计基本类似,主要突出本模块的功能介绍,在下半部分“获取代码”处,用户可以选择相应悬浮插件背景颜色,文字颜色,位置店家获取代码后,系统则通过js生成相应的代码,并且在右侧的图片中进行展示。

实时分析页:

28 实时分析页1

分析也上部为访客所在位置的地图展示,其次为各国访问人数的统计,

底部四栏分别为访客来路、访客语言、访客浏览器、访客操作系统的人数统计。

29 实时分析页2

剩余部分为单条访客的记录,每条中都包含所抓取的所有内容。

4.4.4 网站监控模块:

网站监控首页:

30 网站监控首页

网站监控首页与网站分析首页设计基本类似,主要突出本模块的功能介绍,

并且在首页上直接进行网站的验证与密码Email的设定。

网站监控页:

31 网站监控页

4.4.5 插件模块:

Chrome插件:

32 chrome插件

提供网站最新分析测评报告,网站全球排名,网站流量估计,网站PR信息,网站估值,网站SEO数据等信息。

WordPress插件:

33 Wordpress插件1

在插件选项卡中启用

34 Wordpress插件2

在这之中即可对此插件进行设置

4.5系统后端设计

4.5.1 CMS模块:

CMS模块对WordPress进行模板的开发,以DIV+CSS结构设计,将文章页加入提及网站的测评。代码实现主要为其中SaeMysql为Mysql操作类:

<?php

if ($posttags) {

foreach($posttags as $tag) {

$datanum = calc_hash_db(strtolower($tag->name));

$select_sql = calc_hash_db(strtolower($tag->name),4);

$mysql = new SaeMysql();

if($select_sql==0){$mysql->setAuth(xxx,xxx);$mysql->setAppname(xxx);}

if($select_sql==1){$mysql->setAuth(xxx,xxx);$mysql->setAppname(xxx);}

if($select_sql==2){$mysql->setAuth(xxx,xxx);$mysql->setAppname(xxx);}

if($select_sql==3){$mysql->setAuth(xxx,xxx);$mysql->setAppname(xxx);}

$rs = $mysql->getLine(“SELECT * FROM sitedata_$datanum where url=’$tag->name’”);

if (!empty($rs)){

$rank = $rs[rank];

$AlexaPv = $rs[pv];

$AlexaIp = $rs[ip];

$pr =$rs[pr];

$lat = $rs[lat];

$lon = $rs[lon];

$vau = ($AlexaPv)1.666.8 ;

}

if(!$rank)$rank=”未知 “;

if(!$AlexaPv)$AlexaPv=”未知 “;

if(!$AlexaIp)$AlexaIp=”未知 “;

if(!$pr)$pr=”未知 “;

if(!$lat)$lat=”未知 “;

if(!$lon)$lon=”未知 “;

if($AlexaPv==’未知 ‘)$vau=”未知 “;

$mysql->closeDb();

echo ‘<div>

<div class=”thumbnail” style=”float: left; margin: 5px 30px 5px 10px;;”><img src=”http://open.thumbshots.org/image.aspx?url='.$tag->name.'" height=”160” width=”105” alt=”img” /></div>

<strong class=”post-title”>’.$tag->name.’ </strong><a href=”http://‘.$tag->name.’” rel=”nofollow” target=”_blank” ><img src=”‘;

echo ‘http://sicdn.sinaapp.com/images/e.png" alt=”Goto” /></a><br/>

全球排名:‘.$rank.’名、IP量:‘.$AlexaIp.’IP/天、PV量:‘.$AlexaPv.’PV/<br/>网站PR值:‘.$pr.’ <br/>主机所在地:纬度为:‘.$lat.’,经度为:‘.$lon.’<br/>根据SiteInfor中的数据,‘.$tag->name.’网站估值为:‘.(int)$vau.’ ¥。

</div>

<br class=”clear” />’;

}

}

?>

4.5.2 网站分析模块:

网站分析中将各个数据获取写成类的形式。如获取Alexa信息的类,获取Whois信息的类,获取服务器信息的类:

例如获取Google PR的方法:

/**网站PR查询***/

function HashURL($url)

{$SEED = “Mining PageRank is AGAINST GOOGLE’S TERMS OF SERVICE. Yes, I’m talking to you, scammer.”;

$Result = 0x01020345;

for ($i=0; $i<strlen($url); $i++)

{

$Result ^= ord($SEED{$i%87}) ^ ord($url{$i});

$Result = (($Result >> 23) & 0x1FF) | $Result << 9;

}

return sprintf(“8%x”, $Result);

}

function Gonten_prget($domain)

{

$fss = new SaeFetchurl();

$GontenPRURL = “http://toolbarqueries.google.com/tbr?client=navclient-auto&features=Rank&ch=8f3b58e04&q=info:".$domain.'&ch='.HashURL($domain);

$prstr = $fss->fetch($GontenPRURL);

$pagerank = substr($prstr,9);

if ($pagerank){

return $pagerank;

}

else {

return “0”;

}

}

4.5.3 实时分析模块:

实时分析的悬浮JS插件实现与像服务端发送请求:

var ref=encodeURIComponent(document.referrer);

var host=document.domain;

var url = ‘http://sistats.sinaapp.com/stats/newo.php?bg='+wBG+'&FG='+wFG+'&r='+rot+'&ref='+ref+'&id='+Math.random();

if(lp!=null){p+=’left:’+lp+’;’;}

if(rp!=null){p+=’right:’+rp+’;’;}

if(mr!=null){p+=’margin-right:’+mr+’;’;}

if(mb!=null){p+=’margin-bottom:’+mb+’;’;}

ce.innerHTML = ‘<a href=”http://www.siteinfor.com/status/'+host+'"; target=”_blank” onclick=”this.blur();” style=”‘+p+’”><img onmouseover=”this.style.margin=\’’+abgp+’\’;”‘

+’ onmouseout=”this.style.margin =\’’+bgp+’\’;” style=”margin:’+bgp+’;” src=”‘+url+’” border=”0” title=”‘+host+’实时分析“ /></a>’;

var wau_w_tab=”left-center”;

var pos=wau_w_tab.split(“-“);

var wid = ce.firstChild;

try{

if(document.body)

{

body=document.getElementsByTagName(“body”)[0];

body.insertBefore(ce.firstChild,document.body.firstChild);

}

}

服务端的接收处理与画图实现

if($r==90){

$im = imagecreatetruecolor(35,125);

$background = imagecolorallocate($im,0,0,0);

imagecolortransparent($im,$background);

$iFG = imagecolorallocate($im,’0x’.substr($FG,0,2),’0x’.substr($FG,2,2),’0x’.substr($FG,-2));

$ibg = imagecolorallocate($im,’0x’.substr($bg,0,2),’0x’.substr($bg,2,2),’0x’.substr($bg,-2));

imageantialias($im, true);

imagefilledrectangle($im,6,2,40,119,$ibg);

imagefilledrectangle($im,5,4,2,115,$ibg);

imagefilledrectangle($im,3,6,2,113,$ibg);

imagefilledrectangle($im,2,7,1,109,$ibg);

$len = strlen($str);

if($len==1)$bb = 65;else if($len==2)$bb = 68;else if($len==3)$bb = 73;else if($len==4)$bb = 78;

for ($i=1; $i<=$len; $i++) {

imagecharup($im, 5.5, 11, $bb-($i*11), $str, $iFG);

$str= substr($str,1);

}

$img_b = imagecreatefrompng(‘90.png’);

imagealphablending($img_b,false);

imageSaveAlpha($img_b,true);

imagecopy($im, $img_b, 0, 0, 0, 0, 36, 121);

imagepng($im);

}

else if($r==270){

$im = imagecreatetruecolor(35,125);

$background = imagecolorallocate($im,0,0,0);

imagecolortransparent($im,$background);

$iFG = imagecolorallocate($im,’0x’.substr($FG,0,2),’0x’.substr($FG,2,2),’0x’.substr($FG,-2));

$ibg = imagecolorallocate($im,’0x’.substr($bg,0,2),’0x’.substr($bg,2,2),’0x’.substr($bg,-2));

imageantialias($im, true);

imagefilledrectangle($im,0,2,29,119,$ibg);

imagefilledrectangle($im,30,4,2,115,$ibg);

imagefilledrectangle($im,32,6,2,116,$ibg);

imagefilledrectangle($im,33,7,1,112,$ibg);

$len = strlen($str);

if($len==1)$bb = 65;else if($len==2)$bb = 68;else if($len==3)$bb = 73;else if($len==4)$bb = 78;

for ($i=1; $i<=$len; $i++) {

imagecharup($im, 5.5, 11, $bb-($i*11), $str, $iFG);

$str= substr($str,1);

}

$img_b = imagecreatefrompng($r.’.png’);

imagealphablending($img_b,false);

imageSaveAlpha($img_b,true);

imagecopy($im, $img_b, 0, 0, 0, 0, 36, 121);

imagepng($im);

}

else if($r==0){

$im = imagecreatetruecolor(121,35);

$background = imagecolorallocate($im,0,0,0);

imagecolortransparent($im,$background);

$iFG = imagecolorallocate($im,’0x’.substr($FG,0,2),’0x’.substr($FG,2,2),’0x’.substr($FG,-2));

$ibg = imagecolorallocate($im,’0x’.substr($bg,0,2),’0x’.substr($bg,2,2),’0x’.substr($bg,-2));

imageantialias($im, true);

imagefilledrectangle($im,0,7,119,40,$ibg);

imagefilledrectangle($im,7,2,113,2,$ibg);

imagefilledrectangle($im,6,3,114,3,$ibg);

imagefilledrectangle($im,5,4,115,4,$ibg);

imagefilledrectangle($im,4,5,116,5,$ibg);

imagefilledrectangle($im,3,6,117,6,$ibg);

$len = strlen($str);

imagestring($im, 5, 73-$len*5, 10, $str, $iFG);

$img_b = imagecreatefrompng($r.’.png’);

imagealphablending($img_b,false);

imageSaveAlpha($img_b,true);

imagecopy($im, $img_b, 0, 0, 0, 0, 121, 36);

imagepng($im);

}

监控端的加入队列代码实现,从Mysql总取出数据并加入到TaskQueue队列中:

<?php

$mysql = new SaeMysql();

$mysql->setAuth(xxx,xxx);$mysql->setAppname(xxx);

$rs = $mysql->getData(“SELECT * FROM domain where stats > 0 and check < 4”);

$array = array();

foreach ($rs as $re) {

$array[] = array(‘url’=>”http://simonitor.sinaapp.com/monitor.php?url=$re[domain]&email=$re[email]");

}

$queue = new SaeTaskQueue(‘monitor’);

$queue->addTask($array);

$ret = $queue->push();

var_dump($ret);

$mysql->closeDb();

?>

monitor.php实现对网站的监控:

<?php

$url =$_GET[‘url’];

$furl = new SaeFetchurl();

$opt = array(‘redirect’=>1,’useragent’=>’compatible; SiMonitor; http://www.siteinfor.com/jiankong');

$strSource = $furl->fetch($url, $opt);

$webstats = $furl->httpCode();

?>

#
5、系统测试及功能实现

本系统采取的测试方法是首先对各个模块、各个功能进行测试,不断地进行调整和修改,再进行总体测试。测试结果各项功能均基本达到设计要求。

系统第三方测评报告:

35 测评报告

6、系统开发结束语

整个系统到此所设计的功能已经全部完成了,本系统基于客观事实的要求,将数据库分散处理,并且运用非关系型数据库实现大容量数据的存储,在很多地方上遵循可目前的趋势,并且本系统架设在SAE云平台之上,使用该平台众多的监控与测试工具,更好的优化了其性能,发现了其存在的问题,将性能控制在了可控制范围之内。

#
7、系统开发后记

经过两个多月的努力,“基于CMS的网站分析与监控系统”终于完成了,在整个系统设计与写论文的过程是个“山穷水尽疑无路,柳暗花明又一村”的过程,不断地遇到瓶颈,又不断地突破;不断地遭遇困难,不断地克服,在这过程中,心情也随之起起伏伏、跌跌宕宕,时而穷途末路,时而豁然开朗,其间的乐趣在于如电光石火般灵感产生的瞬间。

在此系统完成之际,向众多给予我帮助和建议的石磊老师,以及帮助过我的朋友和同学们表示衷心的感谢!

#
8、参考文献

[1] 陆玉柱《Dreamweaver网页制作宝典[M]》 电子工业出版社,2007.

[2] 朱珠《WordPress让博客更精彩》2007 软件世界

[3] 李现艳,赵书俊,初元萍 《基于MySQL的数据库服务器性能测试》电子工业出版社, 2011

[4] 张燕新,蒋达央《PHP中数据列表分页方法研究》人民教育出版社 2009

[5] 兰旭辉,熊家军,邓刚《基于MySQL的应用程序设计》 清华大学出版社 2004

[6] 张飞,姜进磊《利用MySQL构建分布式应用》 北京大学出版社 2010

[7] 苑璟,曹耀钦,王文海,李继东 基于PHP技术的网络办公自动化系统 《微机发展》 2008 第8期

[8] 翟晓娟 基于php的电子期刊检索网站建设核心技术 《中国图书馆学报》 2009 第3期

[9] 徐辉 基于XML-RPC和PHP5的WEB服务的研究与实现 《福建电脑》 2005 第10期

[10] 郭泽民 动态网页技术PHP、ASP与JSP的比较分析 《煤炭技术》 2007 第6期

[11] 赵鹤芹 设计动态网站的最佳方案:Apache+PHP+MySQL 《计算机工程与设计》 2007 第4期

[12] 方丹辉 MySQL主从服务器数据库同步的实现 《计算机应用》 2002 第7期

[13] 徐峰 基于MySQL的PHP数据库访问技术 《计算机时代》 2010 第2期
PPT: