本發(fā)明涉及網(wǎng)絡(luò)信息技術(shù)領(lǐng)域,尤其涉及一種用于單服務(wù)器上多網(wǎng)站數(shù)據(jù)采集的系統(tǒng)和方法。
背景技術(shù):
網(wǎng)站流量泛指網(wǎng)站的訪問量,其可用一個網(wǎng)站一段時間內(nèi)訪問者的數(shù)量、訪問者所瀏覽的網(wǎng)頁的點擊率和平均停留時間等指標來加以描述。隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,網(wǎng)站流量和客戶群體以及他們的需求被越來越多的人重視。網(wǎng)站的開發(fā)者和管理者需要確切地知道有多少人訪問自己的網(wǎng)站、他們來自哪里、對網(wǎng)站的哪些欄目和服務(wù)感興趣、一般都瀏覽哪些信息、他們的需求是什么等訪問者相關(guān)訪問信息。因此,為了對網(wǎng)站的開發(fā)者和管理者提供有意義的訪問者訪問信息,以便對網(wǎng)站的邏輯結(jié)構(gòu)、網(wǎng)站運行狀況、服務(wù)器負載等具體情況進行更加有效的跟蹤和改進,需要對網(wǎng)站流量、訪問ip、訪問者行為等數(shù)據(jù)的采集進行科學的統(tǒng)計和分析。
常規(guī)的數(shù)據(jù)采集,主要是直接通過服務(wù)器真實物理網(wǎng)卡,或者在網(wǎng)頁上嵌入代碼、或者在web服務(wù)器應(yīng)用上添加第三方模塊來收集訪問者信息。但是,針對獨立服務(wù)器上,多網(wǎng)站的數(shù)據(jù)采集,這些常規(guī)的網(wǎng)站數(shù)據(jù)采集方法所采集的數(shù)據(jù)過于籠統(tǒng),對某一個特定的網(wǎng)站沒有實際價值,采集的數(shù)據(jù)也不具有準確性、參考性,因此并不能真正對網(wǎng)站運營狀況進行全面、準確的評估,也難以為網(wǎng)站運營者提供有意義的參考。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的之一至少在于,針對上述現(xiàn)有技術(shù)存在的問題,提供一種用于單服務(wù)器上多網(wǎng)站數(shù)據(jù)采集的系統(tǒng)和方法,能夠針對單個獨立服務(wù)器上的每個網(wǎng)站進行精確地多維度數(shù)據(jù)采集,其采集的數(shù)據(jù)關(guān)聯(lián)性強、準確度和完整度高,能夠全面、準確反映單獨立服務(wù)器上的多個網(wǎng)站各自的運營狀況。
為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案包括以下各方面。
一種用于單服務(wù)器上多網(wǎng)站數(shù)據(jù)采集的系統(tǒng),其包括:數(shù)據(jù)采集模塊、本地存儲模塊、控制模塊、以及展示模塊;
其中,所述數(shù)據(jù)采集模塊包括多個數(shù)據(jù)采集進程,每個數(shù)據(jù)采集進程用于獲取單個web服務(wù)器上部署的多個網(wǎng)站中特定網(wǎng)站的運行數(shù)據(jù);
所述本地存儲模塊包括多個數(shù)據(jù)代理進程,每個數(shù)據(jù)代理進程具有與每個數(shù)據(jù)采集進程對應(yīng)的起始存儲地址和存儲空間,用于通過與其對應(yīng)的數(shù)據(jù)采集進程獲取特定網(wǎng)站的運行數(shù)據(jù),并將所采集的運行數(shù)據(jù)中的特定部分或者全部存儲在本地存儲模塊中;
所述控制模塊用于控制web服務(wù)器中每個網(wǎng)站的開啟或者關(guān)閉,并在開啟網(wǎng)站的同時為其分配對應(yīng)的數(shù)據(jù)代理進程,以及通過總監(jiān)控進程從本地存儲模塊獲取特定網(wǎng)站的運行數(shù)據(jù);
展示模塊,用于根據(jù)控制模塊設(shè)置的顯示條件和對應(yīng)的運行數(shù)據(jù)生成圖形文件,并將所生成的圖形文件展示在顯示器上。
優(yōu)選地,所述運行數(shù)據(jù)包括:每個網(wǎng)站的登錄用戶數(shù)量、每一頁面的用戶停留時間、每一頁面文件的緩存大小、每一頁面的讀取數(shù)量、每一頁面的寫入數(shù)量、每一頁面內(nèi)存占用率、每一頁面的cpu占用率、以及每一頁面的網(wǎng)卡流量占用率。
優(yōu)選地,所述每個數(shù)據(jù)采集進程用于獲取特定一個網(wǎng)站的多項運行數(shù)據(jù),或者所述web服務(wù)器上全部網(wǎng)站的同一項或多項運行數(shù)據(jù)。
優(yōu)選地,所述系統(tǒng)進一步包括遠端采集數(shù)據(jù)庫,用于存儲多個本地存儲模塊發(fā)送的運行數(shù)據(jù);所述控制模塊進一步用于通過總監(jiān)控進程從遠端采集數(shù)據(jù)庫獲取多個本地存儲模塊的發(fā)送的運行數(shù)據(jù)。
優(yōu)選地,所述系統(tǒng)進一步包括告警模塊,用于當所采集的運行數(shù)據(jù)中的一項或多項達到預(yù)設(shè)的報警閾值時,生成告警信息。
一種用于單服務(wù)器上多網(wǎng)站數(shù)據(jù)采集的方法,其包括:
建立多個數(shù)據(jù)采集進程,每個數(shù)據(jù)采集進程與單個web服務(wù)器上部署的多個網(wǎng)站中特定的網(wǎng)站相對應(yīng),以獲取特定網(wǎng)站的運行數(shù)據(jù);
根據(jù)已經(jīng)建立的數(shù)據(jù)采集進程建立一一對應(yīng)的相同數(shù)量的數(shù)據(jù)代理進程,并為每個數(shù)據(jù)代理進程分配對應(yīng)的本地存儲模塊中的起始存儲地址和存儲空間;
將通過數(shù)據(jù)采集進程獲取的運行數(shù)據(jù)通過數(shù)據(jù)代理進程寫入本地存儲模塊;
通過總監(jiān)控進程從本地存儲模塊獲取特定網(wǎng)站的運行數(shù)據(jù);
根據(jù)控制模塊設(shè)置的顯示條件和對應(yīng)的運行數(shù)據(jù)生成圖形文件,并將所生成的圖形文件展示在顯示器上。
優(yōu)選地,所述方法進一步包括通過docker控制器來控制web服務(wù)器上部署的多個網(wǎng)站和對應(yīng)的數(shù)據(jù)代理進程。
優(yōu)選地,所述方法進一步包括:周期地將存儲在本地存儲模塊的運行數(shù)據(jù)同步到遠端采集數(shù)據(jù)庫中,或者根據(jù)網(wǎng)絡(luò)流量的占用率,在網(wǎng)絡(luò)空閑時將存儲在本地存儲模塊的運行數(shù)據(jù)同步到遠端采集數(shù)據(jù)庫中。
優(yōu)選地,所述生成圖形文件包括:根據(jù)所采集的運行數(shù)據(jù)生成包括動態(tài)圖表的網(wǎng)頁頁面文件。
優(yōu)選地,其特征在于,所述方法進一步包括:當所采集的運行數(shù)據(jù)中的一項或多項達到預(yù)設(shè)的報警閾值時,在展示模塊上顯示告警信息;或者通過郵件應(yīng)用進程向預(yù)先設(shè)置的告警接收地址發(fā)送告警郵件;或者通過無線通信網(wǎng)絡(luò)接口向預(yù)先設(shè)置的告警接收號碼發(fā)送告警消息或者撥打告警語音電話。
綜上所述,由于采用了上述技術(shù)方案,本發(fā)明至少具有以下有益效果:
通過數(shù)據(jù)采集模塊中的每個數(shù)據(jù)采集進程與單個web服務(wù)器上部署的多個網(wǎng)站中的每個網(wǎng)站一一對應(yīng),能夠針對單個獨立服務(wù)器上的每個網(wǎng)站進行精確地多維度數(shù)據(jù)采集,其采集的數(shù)據(jù)關(guān)聯(lián)性強、準確度和完整度高;通過展示模塊根據(jù)控制模塊設(shè)置的顯示條件和對應(yīng)的運行數(shù)據(jù)生成圖形文件,并將所生成的圖形文件展示在顯示器上,能夠全面、準確反映單獨立服務(wù)器上的多個網(wǎng)站各自的運營狀況。
附圖說明
圖1是根據(jù)本發(fā)明一實施例的一種用于單服務(wù)器上多網(wǎng)站數(shù)據(jù)采集的系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是根據(jù)本發(fā)明一實施例的一種用于單服務(wù)器上多網(wǎng)站數(shù)據(jù)采集的系統(tǒng)所顯示的圖形文件;
圖3是根據(jù)本發(fā)明一實施例的一種用于單服務(wù)器上多網(wǎng)站數(shù)據(jù)采集的方法的流程圖。
具體實施方式
下面結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明,以使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白。應(yīng)當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
在同一臺web服務(wù)器上部署多個網(wǎng)站的方式包括:多個網(wǎng)站使用同一個ip地址但通過不同的端口訪問、多個網(wǎng)站使用多個ip地址、或者多個網(wǎng)站使用同一個ip地址但使用不同的主機名。進一步地,在一臺服務(wù)器上部署的多個網(wǎng)站所運行的多種業(yè)務(wù),可以通過虛擬機技術(shù)進行隔離,例如采用開源的應(yīng)用容器引擎docker來對一臺服務(wù)器上的多個容器內(nèi)的資源進行隔離。docker是一種管理容器的引擎工具,其包括服務(wù)端和客戶端,服務(wù)端是一個管理著所有容器和文件系統(tǒng)的服務(wù)進程,客戶端則是一個服務(wù)端的控制器,用來控制docker的服務(wù)端進程。其中,容器主要指的是包含了一些特定應(yīng)用的運行實例,既保證了當前應(yīng)用的運行環(huán)境獨立,又能保證容器相互之間的獨立。
如圖1所示,根據(jù)本發(fā)明一實施例的一種用于單服務(wù)器上多網(wǎng)站數(shù)據(jù)采集的系統(tǒng)包括:數(shù)據(jù)采集模塊、本地存儲模塊、控制模塊、展示模塊、以及告警模塊。
其中,數(shù)據(jù)采集模塊包括多個數(shù)據(jù)采集進程(例如圖1中示出的數(shù)據(jù)采集進程1~4),每個數(shù)據(jù)采集進程用于獲取單個web服務(wù)器上部署的多個網(wǎng)站中特定網(wǎng)站的運行數(shù)據(jù)。該運行數(shù)據(jù)包括:該網(wǎng)站的登錄用戶數(shù)量、網(wǎng)站每一頁面的用戶停留時間、頁面文件緩存大小(mb)、頁面讀取數(shù)量(頁/秒)、頁面寫入數(shù)量(頁/秒)、內(nèi)存占用(mb)、cpu占用率(%)、網(wǎng)卡流量占用率(%)。在各實施例中,不同的數(shù)據(jù)采集進程可以分別監(jiān)控一個網(wǎng)站的多項運行數(shù)據(jù),也可以分別采集多個網(wǎng)站的同一項運行數(shù)據(jù)。
本地存儲模塊,用于根據(jù)控制模塊的控制,通過與數(shù)據(jù)采集進程對應(yīng)的多個數(shù)據(jù)代理進程(例如圖1中示出的數(shù)據(jù)代理進程1~4)將所采集的運行數(shù)據(jù)中的特定部分或者全部存儲在本地存儲模塊中。在優(yōu)選的實施例中,本地存儲模塊可以根據(jù)控制模塊的指令,將存儲在本地的運行數(shù)據(jù)同步到遠端采集數(shù)據(jù)庫中,或者根據(jù)控制模塊設(shè)置的間隔時間周期地同步,或者根據(jù)網(wǎng)絡(luò)流量的占用率,在網(wǎng)絡(luò)空閑時進行數(shù)據(jù)同步(例如,網(wǎng)絡(luò)流量占用率小于50%時)。進一步地,控制模塊還可以通過本地存模塊從遠端采集數(shù)據(jù)讀取指定時間段內(nèi)和/或指定網(wǎng)站范圍內(nèi)的歷史運行數(shù)據(jù)。
控制模塊用于控制web服務(wù)器中每個網(wǎng)站的開啟或者關(guān)閉,并在開啟網(wǎng)站的同時為其分配對應(yīng)的數(shù)據(jù)代理進程。例如,可以通過docker控制器來控制web服務(wù)器上部署的多個網(wǎng)站和對應(yīng)的數(shù)據(jù)代理進程。進一步地,控制模塊還可以通過總監(jiān)控進程從本地存儲模塊獲取特定網(wǎng)站的運行數(shù)據(jù)。
展示模塊,用于根據(jù)控制模塊設(shè)置的顯示條件和對應(yīng)的運行數(shù)據(jù)生成圖形文件,并將所生成的圖形文件展示在顯示器上。具體地,可以根據(jù)控制模塊設(shè)置的篩選條件,從web服務(wù)器上的多個網(wǎng)站中選定其中的一個,展示如圖2所示的特定網(wǎng)站在不同時間所占用的cpu和內(nèi)存的百分比?;蛘撸部梢栽O(shè)置展示web服務(wù)器上的一個網(wǎng)站中特定網(wǎng)頁頁面在不同時間所占用的cpu和內(nèi)存的百分比。其中,圖形文件可以為數(shù)據(jù)圖表或者根據(jù)所采集的運行數(shù)據(jù)生成的包括動態(tài)圖表的網(wǎng)頁頁面文件。
告警模塊,用于當所采集的運行數(shù)據(jù)中的一項或多項達到預(yù)設(shè)的報警閾值時,生成告警信息。具體地,可以在展示模塊上顯示告警信息,或者通過郵件應(yīng)用進程向預(yù)先設(shè)置的告警接收地址發(fā)送告警郵件,或者通過無線通信網(wǎng)絡(luò)接口向預(yù)先設(shè)置的告警接收號碼發(fā)送告警消息或者向其撥打告警語音電話,以便及時通知對應(yīng)的網(wǎng)站管理人員。
如圖3所示,根據(jù)本發(fā)明一實施例的一種用于單服務(wù)器上多網(wǎng)站數(shù)據(jù)采集的方法包括以下步驟:
步驟301:建立并分配數(shù)據(jù)采集進程
具體地,可以在網(wǎng)站所在的docker中集成數(shù)據(jù)采集進程,而docker可以部署在獨立的數(shù)據(jù)采集服務(wù)器上或者部署在web服務(wù)器上。當單個web服務(wù)器上部署的多個網(wǎng)站中特定的網(wǎng)站在docker控制器的控制下開啟之時,控制模塊為該特定的網(wǎng)站分配對應(yīng)的數(shù)據(jù)采集進程。例如,可以通過docker控制器來控制web服務(wù)器上部署的多個網(wǎng)站和對應(yīng)的數(shù)據(jù)采集進程。
步驟302:建立并分配數(shù)據(jù)代理進程
具體地,本地存儲模塊可以根據(jù)已經(jīng)建立的數(shù)據(jù)采集進程建立一一對應(yīng)的相同數(shù)量的數(shù)據(jù)代理進程,并為每個數(shù)據(jù)代理進程分配對應(yīng)的本地存儲模塊中的起始存儲地址和存儲空間。
步驟303:將通過數(shù)據(jù)采集進程獲取的運行數(shù)據(jù)通過數(shù)據(jù)代理進程寫入本地存儲模塊
具體地,可以在特定的用戶登錄待采集的網(wǎng)站時將對應(yīng)的用戶在特定頁面停留時間、該頁面的緩存大小、以及當時該網(wǎng)站的頁面讀取/寫入數(shù)量、內(nèi)存/cpu占用等數(shù)據(jù)通過對應(yīng)的數(shù)據(jù)代理進程寫入本地存儲模塊,例如數(shù)據(jù)采集系統(tǒng)的本地磁盤陣列。
步驟304:通過總監(jiān)控進程從本地存儲模塊獲取特定網(wǎng)站的運行數(shù)據(jù)
在各種實施例中,控制模塊根據(jù)根據(jù)展示需要或者數(shù)據(jù)分析需要,通過總監(jiān)控進程從本地存儲模塊獲取特定的運行數(shù)據(jù),例如,特定一個網(wǎng)站的多項運行數(shù)據(jù),或者該web服務(wù)器上全部網(wǎng)站的同一項或多項運行數(shù)據(jù)。
步驟305:根據(jù)控制模塊設(shè)置的顯示條件和對應(yīng)的運行數(shù)據(jù)生成圖形文件,并將所生成的圖形文件展示在顯示器上
具體地,可以在控制模塊設(shè)置的篩選條件,從web服務(wù)器上的多個網(wǎng)站中選定其中的一個,展示如圖2所示的特定網(wǎng)站中?;蛘?,也可以設(shè)置展示web服務(wù)器上的多個網(wǎng)站中特定網(wǎng)頁頁面在不同時間所占用的cpu和內(nèi)存的百分百。其中,圖形文件可以為數(shù)據(jù)圖表或者根據(jù)所采集的數(shù)據(jù)生成的包括動態(tài)圖表的網(wǎng)頁頁面文件。
通過本發(fā)明上述實施例公開的系統(tǒng)和方法,能夠針對單個獨立服務(wù)器上的每個網(wǎng)站進行精確地多維度數(shù)據(jù)采集,其采集的數(shù)據(jù)關(guān)聯(lián)性強、準確度和完整度高,能夠全面、準確反映單獨立服務(wù)器上的多個網(wǎng)站各自的運營狀況。
以上所述,僅為本發(fā)明具體實施方式的詳細說明,而非對本發(fā)明的限制。相關(guān)技術(shù)領(lǐng)域的技術(shù)人員在不脫離本發(fā)明的原則和范圍的情況下,做出的各種替換、變型以及改進均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。