本发明涉及网络信息技术领域,尤其涉及一种用于单服务器上多网站数据采集的系统和方法。
背景技术:
网站流量泛指网站的访问量,其可用一个网站一段时间内访问者的数量、访问者所浏览的网页的点击率和平均停留时间等指标来加以描述。随着互联网技术的飞速发展,网站流量和客户群体以及他们的需求被越来越多的人重视。网站的开发者和管理者需要确切地知道有多少人访问自己的网站、他们来自哪里、对网站的哪些栏目和服务感兴趣、一般都浏览哪些信息、他们的需求是什么等访问者相关访问信息。因此,为了对网站的开发者和管理者提供有意义的访问者访问信息,以便对网站的逻辑结构、网站运行状况、服务器负载等具体情况进行更加有效的跟踪和改进,需要对网站流量、访问ip、访问者行为等数据的采集进行科学的统计和分析。
常规的数据采集,主要是直接通过服务器真实物理网卡,或者在网页上嵌入代码、或者在web服务器应用上添加第三方模块来收集访问者信息。但是,针对独立服务器上,多网站的数据采集,这些常规的网站数据采集方法所采集的数据过于笼统,对某一个特定的网站没有实际价值,采集的数据也不具有准确性、参考性,因此并不能真正对网站运营状况进行全面、准确的评估,也难以为网站运营者提供有意义的参考。
技术实现要素:
本发明的目的之一至少在于,针对上述现有技术存在的问题,提供一种用于单服务器上多网站数据采集的系统和方法,能够针对单个独立服务器上的每个网站进行精确地多维度数据采集,其采集的数据关联性强、准确度和完整度高,能够全面、准确反映单独立服务器上的多个网站各自的运营状况。
为了实现上述目的,本发明采用的技术方案包括以下各方面。
一种用于单服务器上多网站数据采集的系统,其包括:数据采集模块、本地存储模块、控制模块、以及展示模块;
其中,所述数据采集模块包括多个数据采集进程,每个数据采集进程用于获取单个web服务器上部署的多个网站中特定网站的运行数据;
所述本地存储模块包括多个数据代理进程,每个数据代理进程具有与每个数据采集进程对应的起始存储地址和存储空间,用于通过与其对应的数据采集进程获取特定网站的运行数据,并将所采集的运行数据中的特定部分或者全部存储在本地存储模块中;
所述控制模块用于控制web服务器中每个网站的开启或者关闭,并在开启网站的同时为其分配对应的数据代理进程,以及通过总监控进程从本地存储模块获取特定网站的运行数据;
展示模块,用于根据控制模块设置的显示条件和对应的运行数据生成图形文件,并将所生成的图形文件展示在显示器上。
优选地,所述运行数据包括:每个网站的登录用户数量、每一页面的用户停留时间、每一页面文件的缓存大小、每一页面的读取数量、每一页面的写入数量、每一页面内存占用率、每一页面的cpu占用率、以及每一页面的网卡流量占用率。
优选地,所述每个数据采集进程用于获取特定一个网站的多项运行数据,或者所述web服务器上全部网站的同一项或多项运行数据。
优选地,所述系统进一步包括远端采集数据库,用于存储多个本地存储模块发送的运行数据;所述控制模块进一步用于通过总监控进程从远端采集数据库获取多个本地存储模块的发送的运行数据。
优选地,所述系统进一步包括告警模块,用于当所采集的运行数据中的一项或多项达到预设的报警阈值时,生成告警信息。
一种用于单服务器上多网站数据采集的方法,其包括:
建立多个数据采集进程,每个数据采集进程与单个web服务器上部署的多个网站中特定的网站相对应,以获取特定网站的运行数据;
根据已经建立的数据采集进程建立一一对应的相同数量的数据代理进程,并为每个数据代理进程分配对应的本地存储模块中的起始存储地址和存储空间;
将通过数据采集进程获取的运行数据通过数据代理进程写入本地存储模块;
通过总监控进程从本地存储模块获取特定网站的运行数据;
根据控制模块设置的显示条件和对应的运行数据生成图形文件,并将所生成的图形文件展示在显示器上。
优选地,所述方法进一步包括通过docker控制器来控制web服务器上部署的多个网站和对应的数据代理进程。
优选地,所述方法进一步包括:周期地将存储在本地存储模块的运行数据同步到远端采集数据库中,或者根据网络流量的占用率,在网络空闲时将存储在本地存储模块的运行数据同步到远端采集数据库中。
优选地,所述生成图形文件包括:根据所采集的运行数据生成包括动态图表的网页页面文件。
优选地,其特征在于,所述方法进一步包括:当所采集的运行数据中的一项或多项达到预设的报警阈值时,在展示模块上显示告警信息;或者通过邮件应用进程向预先设置的告警接收地址发送告警邮件;或者通过无线通信网络接口向预先设置的告警接收号码发送告警消息或者拨打告警语音电话。
综上所述,由于采用了上述技术方案,本发明至少具有以下有益效果:
通过数据采集模块中的每个数据采集进程与单个web服务器上部署的多个网站中的每个网站一一对应,能够针对单个独立服务器上的每个网站进行精确地多维度数据采集,其采集的数据关联性强、准确度和完整度高;通过展示模块根据控制模块设置的显示条件和对应的运行数据生成图形文件,并将所生成的图形文件展示在显示器上,能够全面、准确反映单独立服务器上的多个网站各自的运营状况。
附图说明
图1是根据本发明一实施例的一种用于单服务器上多网站数据采集的系统的结构示意图;
图2是根据本发明一实施例的一种用于单服务器上多网站数据采集的系统所显示的图形文件;
图3是根据本发明一实施例的一种用于单服务器上多网站数据采集的方法的流程图。
具体实施方式
下面结合附图及实施例,对本发明进行进一步详细说明,以使本发明的目的、技术方案及优点更加清楚明白。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
在同一台web服务器上部署多个网站的方式包括:多个网站使用同一个ip地址但通过不同的端口访问、多个网站使用多个ip地址、或者多个网站使用同一个ip地址但使用不同的主机名。进一步地,在一台服务器上部署的多个网站所运行的多种业务,可以通过虚拟机技术进行隔离,例如采用开源的应用容器引擎docker来对一台服务器上的多个容器内的资源进行隔离。docker是一种管理容器的引擎工具,其包括服务端和客户端,服务端是一个管理着所有容器和文件系统的服务进程,客户端则是一个服务端的控制器,用来控制docker的服务端进程。其中,容器主要指的是包含了一些特定应用的运行实例,既保证了当前应用的运行环境独立,又能保证容器相互之间的独立。
如图1所示,根据本发明一实施例的一种用于单服务器上多网站数据采集的系统包括:数据采集模块、本地存储模块、控制模块、展示模块、以及告警模块。
其中,数据采集模块包括多个数据采集进程(例如图1中示出的数据采集进程1~4),每个数据采集进程用于获取单个web服务器上部署的多个网站中特定网站的运行数据。该运行数据包括:该网站的登录用户数量、网站每一页面的用户停留时间、页面文件缓存大小(mb)、页面读取数量(页/秒)、页面写入数量(页/秒)、内存占用(mb)、cpu占用率(%)、网卡流量占用率(%)。在各实施例中,不同的数据采集进程可以分别监控一个网站的多项运行数据,也可以分别采集多个网站的同一项运行数据。
本地存储模块,用于根据控制模块的控制,通过与数据采集进程对应的多个数据代理进程(例如图1中示出的数据代理进程1~4)将所采集的运行数据中的特定部分或者全部存储在本地存储模块中。在优选的实施例中,本地存储模块可以根据控制模块的指令,将存储在本地的运行数据同步到远端采集数据库中,或者根据控制模块设置的间隔时间周期地同步,或者根据网络流量的占用率,在网络空闲时进行数据同步(例如,网络流量占用率小于50%时)。进一步地,控制模块还可以通过本地存模块从远端采集数据读取指定时间段内和/或指定网站范围内的历史运行数据。
控制模块用于控制web服务器中每个网站的开启或者关闭,并在开启网站的同时为其分配对应的数据代理进程。例如,可以通过docker控制器来控制web服务器上部署的多个网站和对应的数据代理进程。进一步地,控制模块还可以通过总监控进程从本地存储模块获取特定网站的运行数据。
展示模块,用于根据控制模块设置的显示条件和对应的运行数据生成图形文件,并将所生成的图形文件展示在显示器上。具体地,可以根据控制模块设置的筛选条件,从web服务器上的多个网站中选定其中的一个,展示如图2所示的特定网站在不同时间所占用的cpu和内存的百分比。或者,也可以设置展示web服务器上的一个网站中特定网页页面在不同时间所占用的cpu和内存的百分比。其中,图形文件可以为数据图表或者根据所采集的运行数据生成的包括动态图表的网页页面文件。
告警模块,用于当所采集的运行数据中的一项或多项达到预设的报警阈值时,生成告警信息。具体地,可以在展示模块上显示告警信息,或者通过邮件应用进程向预先设置的告警接收地址发送告警邮件,或者通过无线通信网络接口向预先设置的告警接收号码发送告警消息或者向其拨打告警语音电话,以便及时通知对应的网站管理人员。
如图3所示,根据本发明一实施例的一种用于单服务器上多网站数据采集的方法包括以下步骤:
步骤301:建立并分配数据采集进程
具体地,可以在网站所在的docker中集成数据采集进程,而docker可以部署在独立的数据采集服务器上或者部署在web服务器上。当单个web服务器上部署的多个网站中特定的网站在docker控制器的控制下开启之时,控制模块为该特定的网站分配对应的数据采集进程。例如,可以通过docker控制器来控制web服务器上部署的多个网站和对应的数据采集进程。
步骤302:建立并分配数据代理进程
具体地,本地存储模块可以根据已经建立的数据采集进程建立一一对应的相同数量的数据代理进程,并为每个数据代理进程分配对应的本地存储模块中的起始存储地址和存储空间。
步骤303:将通过数据采集进程获取的运行数据通过数据代理进程写入本地存储模块
具体地,可以在特定的用户登录待采集的网站时将对应的用户在特定页面停留时间、该页面的缓存大小、以及当时该网站的页面读取/写入数量、内存/cpu占用等数据通过对应的数据代理进程写入本地存储模块,例如数据采集系统的本地磁盘阵列。
步骤304:通过总监控进程从本地存储模块获取特定网站的运行数据
在各种实施例中,控制模块根据根据展示需要或者数据分析需要,通过总监控进程从本地存储模块获取特定的运行数据,例如,特定一个网站的多项运行数据,或者该web服务器上全部网站的同一项或多项运行数据。
步骤305:根据控制模块设置的显示条件和对应的运行数据生成图形文件,并将所生成的图形文件展示在显示器上
具体地,可以在控制模块设置的筛选条件,从web服务器上的多个网站中选定其中的一个,展示如图2所示的特定网站中。或者,也可以设置展示web服务器上的多个网站中特定网页页面在不同时间所占用的cpu和内存的百分百。其中,图形文件可以为数据图表或者根据所采集的数据生成的包括动态图表的网页页面文件。
通过本发明上述实施例公开的系统和方法,能够针对单个独立服务器上的每个网站进行精确地多维度数据采集,其采集的数据关联性强、准确度和完整度高,能够全面、准确反映单独立服务器上的多个网站各自的运营状况。
以上所述,仅为本发明具体实施方式的详细说明,而非对本发明的限制。相关技术领域的技术人员在不脱离本发明的原则和范围的情况下,做出的各种替换、变型以及改进均应包含在本发明的保护范围之内。