本發(fā)明涉及服務器監(jiān)控領域,尤其涉及一種監(jiān)控系統(tǒng)及方法。
背景技術:
近年,伴隨著應用軟件系統(tǒng)體系膨脹,架構的擴展,軟件體系已經越來越難以把控,軟件運行過程中出現(xiàn)的問題也越來越復雜,難以解決,而一些時延要求高的內容,甚至會因為數(shù)據(jù)的丟失造成不必要的經濟損失,這就要提前監(jiān)控系統(tǒng),監(jiān)控系統(tǒng)的全流程,做到無縫監(jiān)控,并同時可以監(jiān)控多個系統(tǒng)。
目前的系統(tǒng)監(jiān)控多是用shell腳本的形式,去監(jiān)控系統(tǒng)運行狀況的CPU、內存、網絡、無效鏈接、運行日志等,一般都是單臺設備監(jiān)控;或者是將系統(tǒng)的日志存入數(shù)據(jù)庫中,然后系統(tǒng)再對各個節(jié)點的日志進行分析。這樣的方式比較簡單,一般設備較少時采用,而且監(jiān)控的內容也十分有限,而且監(jiān)控內容一般不做更進一步存儲、分析,對系統(tǒng)的進一步建設,指導意義有限。在新的項目做監(jiān)控的時候,還需要針對特例重新開發(fā),無法通過配置,實現(xiàn)復用。
技術實現(xiàn)要素:
本發(fā)明的目的在于,解決現(xiàn)有的服務器監(jiān)控技術領域中無法同時對多臺服務器進行監(jiān)控,并且對新的項目做監(jiān)控時需要重新開發(fā)監(jiān)控系統(tǒng)而無法實現(xiàn)復用的問題,提供了一種監(jiān)控系統(tǒng)及方法。
為了實現(xiàn)上述目的,一方面,本發(fā)明提供了一種監(jiān)控系統(tǒng)。該監(jiān)控系統(tǒng)包括監(jiān)控裝置和一臺或多臺服務器;監(jiān)控裝置包括:接收模塊、存儲模塊和分析模塊;一臺或多臺服務器中的任一臺服務器包括數(shù)據(jù)搜集客戶端;接收模塊,用于接收由數(shù)據(jù)搜集客戶端收集的服務器日志數(shù)據(jù),日志數(shù)據(jù)包括服務器的運行參數(shù)、中間運行日志和應用日志;存儲模塊,用于依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式,并根據(jù)存儲方式對日志數(shù)據(jù)進行存儲;分析模塊,用于根據(jù)日志數(shù)據(jù)的存儲方式從模型庫中選擇相應類型的模型,并根據(jù)相應類型的模型對存儲后的日志數(shù)據(jù)進行分析;監(jiān)控者基于日志數(shù)據(jù)的分析結果進行監(jiān)控。
優(yōu)選地,數(shù)據(jù)搜集客戶端采用單項傳輸機制將搜集的服務器日志數(shù)據(jù)傳輸給監(jiān)控裝置。
優(yōu)選地,存儲模塊具體用于:依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為File類型,并根據(jù)File類型對日志數(shù)據(jù)進行存儲;和/或
依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為Hdfs類型,并根據(jù)Hdfs類型對日志數(shù)據(jù)進行存儲;和/或
依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為Redis類型,并根據(jù)Redis類型對日志數(shù)據(jù)進行存儲。
優(yōu)選地,分析模塊具體用于:根據(jù)日志數(shù)據(jù)的存儲方式為File類型從模型庫中選擇數(shù)據(jù)庫類型的模型,并根據(jù)數(shù)據(jù)庫類型的模型對存儲后的日志數(shù)據(jù)進行分析;根據(jù)日志數(shù)據(jù)的存儲方式為Hdfs類型從模型庫中選擇大數(shù)據(jù)類型的模型,并根據(jù)大數(shù)據(jù)類型的模型對存儲后的日志數(shù)據(jù)進行分析;根據(jù)日志數(shù)據(jù)的存儲方式為Redis類型從模型庫中選擇內存計算類型的模型,并根據(jù)內存計算類型的模型對存儲后的日志數(shù)據(jù)進行分析;監(jiān)控者基于日志數(shù)據(jù)的分析結果進行監(jiān)控。
優(yōu)選地,監(jiān)控裝置還包括預先建立的模型庫。
另一方面,本發(fā)明還提供了一種監(jiān)控方法。該方法包括步驟:接收由數(shù)據(jù)搜集客戶端搜集的服務器日志數(shù)據(jù),日志數(shù)據(jù)包括服務器的運行參數(shù)、中間運行日志和應用日志;依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式,并根據(jù)存儲方式對日志數(shù)據(jù)進行存儲;根據(jù)日志數(shù)據(jù)的存儲方式從模型庫中選擇相應類型的模型,并根據(jù)相應類型的模型對存儲后的日志數(shù)據(jù)進行分析;監(jiān)控者基于日志數(shù)據(jù)的分析結果進行監(jiān)控。
優(yōu)選地,數(shù)據(jù)搜集客戶端采用單項傳輸機制對搜集的服務器日志數(shù)據(jù)進行傳輸。
優(yōu)選地,依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式,并根據(jù)存儲方式對日志數(shù)據(jù)進行存儲步驟具體包括:依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為File類型,并根據(jù)File類型對日志數(shù)據(jù)進行存儲;和/或
依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為Hdfs類型,并根據(jù)Hdfs類型對日志數(shù)據(jù)進行存儲;和/或
依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為Redis類型,并根據(jù)Redis類型對日志數(shù)據(jù)進行存儲。
優(yōu)選地,根據(jù)日志數(shù)據(jù)的存儲方式從模型庫中選擇相應類型的模型,并根據(jù)相應類型的模型對存儲后的日志數(shù)據(jù)進行分析步驟具體包括:根據(jù)日志數(shù)據(jù)的存儲方式為File類型從模型庫中選擇數(shù)據(jù)庫類型的模型,并根據(jù)數(shù)據(jù)庫類型的模型對存儲后的日志數(shù)據(jù)進行分析;根據(jù)日志數(shù)據(jù)的存儲方式為Hdfs類型從模型庫中選擇大數(shù)據(jù)類型的模型,并根據(jù)大數(shù)據(jù)類型的模型對存儲后的日志數(shù)據(jù)進行分析;根據(jù)日志數(shù)據(jù)的存儲方式為Redis類型從模型庫中選擇內存計算類型的模型,并根據(jù)內存計算類型的模型對存儲后的日志數(shù)據(jù)進行分析。
優(yōu)選地,還包括預先建立模型庫。
本發(fā)明提供的一種監(jiān)控系統(tǒng)及方法,可以采集并處理多個服務器上的數(shù)據(jù),可以在新的項目上進行復用,實現(xiàn)對多個服務器和多個項目進行集中監(jiān)控。
附圖說明
圖1為本發(fā)明實施例提供的一種監(jiān)控系統(tǒng)的結構示意圖;
圖2為圖1中監(jiān)控裝置的結構示意圖;
圖3為圖2中分析模塊采用的模型庫中各類型的模型配置流程示意圖,包括圖3a、圖3b和圖3c:
圖3a為模型庫中數(shù)據(jù)庫類型的模型配置流程示意圖,
圖3b為模型庫中大數(shù)據(jù)類型的模型配置流程示意圖,
圖3c為模型庫中內存計算類型的模型配置流程示意圖;
圖4為本發(fā)明實施例提供的一種監(jiān)控方法的流程示意圖。
具體實施方式
下面結合附圖和具體實施例對本發(fā)明進行詳細、清楚、完整的說明。顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
圖1為本發(fā)明實施例提供的一種監(jiān)控系統(tǒng)的結構示意圖。如圖1所示,該監(jiān)控系統(tǒng)包括監(jiān)控裝置100和服務器1,服務器2,…,服務器n(n為正整數(shù)),即一臺或多臺服務器。一臺或多臺服務器中的任一臺服務器都包括數(shù)據(jù)搜集客戶端。
圖2為圖1中監(jiān)控裝置的結構示意圖。如圖2所示,該監(jiān)控裝置100包括:接收模塊101、存儲模塊102和分析模塊103。
接收模塊101用于接收由數(shù)據(jù)搜集客戶端收集的服務器日志數(shù)據(jù)。數(shù)據(jù)搜集客戶端收集的服務器日志數(shù)據(jù)包括服務器的運行參數(shù)、中間運行日志和應用日志。其中,服務器運行參數(shù)包括CPU、內存和網絡參數(shù)以及無效鏈接等;中間運行日志包括中間件中各容器參數(shù),堆棧參數(shù)、數(shù)據(jù)庫連接參數(shù)等;應用日志包括各種操作執(zhí)行的成功、失敗情況,或者用戶注冊、登錄及其他情況的異常。數(shù)據(jù)搜集客戶端對服務器數(shù)據(jù)可以根據(jù)模型庫的配置,只搜集經存儲后可以輸入模型庫中的模型進行分析的數(shù)據(jù),以減少資源的占用,避免影響服務器的性能。并采用單項傳輸機制將搜集的服務器日志數(shù)據(jù)傳輸給監(jiān)控裝置,因單項傳輸無需進行心跳檢測,從而可以減少對網絡的占用。
例如,在每臺服務器上安裝的數(shù)據(jù)搜集客戶端為Scribe客戶端。Scribe客戶端可以對任意數(shù)量的服務器的日志數(shù)據(jù)進行分布式搜集,當需要搜集對新的服務器的日志數(shù)據(jù)時,通過安裝Scribe客戶端即可進行擴展。而且通過Scribe客戶端進行傳輸可以實現(xiàn)高容錯,當存儲模塊的網絡或者機器出現(xiàn)故障時,Scribe客戶端會將日志轉存到本地或者另一個位置,當Scribe服務器恢復后,Scribe客戶端會將轉存的日志重新傳輸給存儲模塊。此外,Scribe客戶端對服務器日志數(shù)據(jù)的搜集不是采用抓取方式,而是采用Push方式,對CPU的占用極低。
存儲模塊102用于依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式,并根據(jù)存儲方式對日志數(shù)據(jù)進行存儲。
依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為File類型,并根據(jù)File類型對日志數(shù)據(jù)進行存儲,以將其加載至各種數(shù)據(jù)倉庫中,進行數(shù)據(jù)匯聚。依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為Hdfs類型,并根據(jù)Hdfs類型對日志數(shù)據(jù)進行存儲,以將其導入大數(shù)據(jù)平臺,并采用大數(shù)據(jù)處理的方式對數(shù)據(jù)進行離線處理或者實時處理。依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為Redis類型,并根據(jù)Redis類型對日志數(shù)據(jù)進行存儲,在數(shù)據(jù)量較小時,直接把日志數(shù)據(jù)加載至Rddis服務器,以便于其它程序進行訪問和進行內存計算。
該監(jiān)控系統(tǒng)還包括預先建立的模型庫。圖3為圖2中分析模塊采用的模型庫中各類型的模型配置流程示意圖。如圖3a所示,數(shù)據(jù)庫類型模型的配置包括步驟201-203:
步驟201,從ORACLE、MYSQL等多種類型的數(shù)據(jù)庫中,導入數(shù)據(jù)庫數(shù)據(jù)源、數(shù)據(jù)處理分層結構、各層處理過程和結果存儲位置等。數(shù)據(jù)分層后各層的數(shù)據(jù)結果可作為下一層數(shù)據(jù)處理的數(shù)據(jù)源頭,處理的結果將被保存于結果存儲位置中的指定位置。通過基于原子操作的基礎設置可以將數(shù)據(jù)庫類型模型的算法解析成不同的可執(zhí)行SQL,對模型而言具體的數(shù)據(jù)庫類型不影響分析結果。
步驟202,校驗步驟201中的數(shù)據(jù)庫類型模型的配置是否符合規(guī)范,以用于進一步的觸發(fā)執(zhí)行,如果不符合規(guī)范,則繼續(xù)配置。
步驟203,為配置符合規(guī)范的數(shù)據(jù)庫類型模型配置觸發(fā)條件,即指某一個時間點對庫中數(shù)據(jù)進行處理,將處理后的數(shù)據(jù)達到閾值的數(shù)據(jù)進行輸出。并打開執(zhí)行開關。
如圖3b所示,大數(shù)據(jù)類型模型的配置包括步驟301-303:
步驟301,導入Hdfs數(shù)據(jù)源,即采用Hdfs方式存儲的日志數(shù)據(jù);導入預先準備的數(shù)據(jù)處理腳本或者java多線程運行程序,以及結果存儲位置等,可以實現(xiàn)離線處理或者在線實時處理。其中,處理腳本和java多線程運行程序均可以運行在Hadoop、Strom等數(shù)據(jù)平臺,并且java多線程運行程序相較于處理腳本,在借助數(shù)據(jù)平臺進行大規(guī)模的數(shù)據(jù)處理具有更高的擴展性,處理的結果將被保存于結果存儲位置中的指定位置。
步驟302,校驗步驟301中的大數(shù)據(jù)類型模型的配置是否符合規(guī)范,以用于進一步的觸發(fā)執(zhí)行,如果不符合規(guī)范,則繼續(xù)配置。
步驟303,為配置符合規(guī)范的大數(shù)據(jù)類型模型配置觸發(fā)條件,即對大數(shù)據(jù)平臺中數(shù)據(jù)按照shell腳本或者java程序進行實時或者定時處理后,進行輸出。并打開執(zhí)行開關。
如圖3c所示,內存計算類型模型的配置包括步驟401-403:
步驟401,導入集群數(shù)據(jù)接口,導入數(shù)據(jù)處理java代碼和結果存儲位置等。java平臺在軟件開發(fā)中具有高擴展性,利用java代碼可以靈活的對Redis集群中的數(shù)據(jù)進行處理,處理的結果將被保存于結果存儲位置中的指定位置。
步驟402,校驗步驟401中的內存計算類型模型的配置是否符合規(guī)范,以用于進一步的觸發(fā)執(zhí)行,如果不符合規(guī)范,則繼續(xù)配置。
步驟403,為配置符合規(guī)范的內存計算類型模型配置觸發(fā)條件,即處理后的數(shù)據(jù)達到對應閾值的數(shù)據(jù),進行輸出。并打開執(zhí)行開關。
用戶可以根據(jù)需要采用同一種存儲方式對所有日志數(shù)據(jù)進行存儲,也可以采用多種存儲方式對相同的日志數(shù)據(jù)進行存儲。不同的分析模型可以得到不同導向的分析結果,包括運行綜合指數(shù)、服務器運行平穩(wěn)度、項目優(yōu)化導向等。運行綜合指數(shù)是通過數(shù)據(jù)分析后得到的系統(tǒng)運行的指標的綜合指數(shù),運行平穩(wěn)度是指根據(jù)歷史數(shù)據(jù),獲取當前指標的方差,從而反映運行平穩(wěn)度。優(yōu)化向導是根據(jù)歷史數(shù)據(jù)和當前綜合指數(shù)生成,比如單位時間里,應該優(yōu)化的指標。基于同一日志數(shù)據(jù)的不同導向的分析結果,還可以進一步分析出各個導向分析結果之間的關聯(lián)關系。
分析模塊103用于根據(jù)日志數(shù)據(jù)的存儲方式從模型庫中選擇相應類型的模型,并根據(jù)相應類型的模型對存儲后的日志數(shù)據(jù)進行分析;監(jiān)控者基于日志數(shù)據(jù)的分析結果進行監(jiān)控。
具體地,根據(jù)日志數(shù)據(jù)的存儲方式為File類型從模型庫中選擇數(shù)據(jù)庫類型的模型,并根據(jù)數(shù)據(jù)庫類型的模型對存儲后的日志數(shù)據(jù)進行分析;根據(jù)日志數(shù)據(jù)的存儲方式為Hdfs類型從模型庫中選擇大數(shù)據(jù)類型的模型,并根據(jù)大數(shù)據(jù)類型的模型對存儲后的日志數(shù)據(jù)進行分析;根據(jù)日志數(shù)據(jù)的存儲方式為Redis類型從模型庫中選擇內存計算類型的模型,并根據(jù)內存計算類型的模型對存儲后的日志數(shù)據(jù)進行分析;監(jiān)控者基于日志數(shù)據(jù)的分析結果進行監(jiān)控。
例如,根據(jù)日志數(shù)據(jù)的存儲方式為File類型從模型庫中選擇并觸發(fā)數(shù)據(jù)庫類型的模型,將File類型的日志數(shù)據(jù)輸入數(shù)據(jù)庫類型的模型中以得到分析結果。根據(jù)日志數(shù)據(jù)的存儲方式為Hdfs類型從模型庫中選擇并觸發(fā)大數(shù)據(jù)類型的模型,將Hdfs類型的日志數(shù)據(jù)輸入大數(shù)據(jù)類型的模型中以得到分析結果。根據(jù)日志數(shù)據(jù)的存儲方式為Redis類型從模型庫中選擇并觸發(fā)內存計算類型的模型,將Redis類型的日志數(shù)據(jù)輸入內存計算類型的模型中以得到分析結果。監(jiān)控者基于日志數(shù)據(jù)的分析結果進行監(jiān)控。
監(jiān)控裝置還可以包括推送模塊,推送模塊用于將分析結果制作成報表并設定優(yōu)先級,根據(jù)優(yōu)先級將報表形式的分析結果以短信或者郵件的方式推送給監(jiān)控者,以便于監(jiān)控者根據(jù)分析結果進行監(jiān)控,也可以將分析結果保存在預置數(shù)據(jù)庫中,以便于監(jiān)控者根據(jù)權限隨時取用。
本發(fā)明實施例提供的一種監(jiān)控系統(tǒng),可以采集并處理多個服務器上的數(shù)據(jù),可以在新的項目上進行復用,實現(xiàn)對多個服務器和多個項目進行集中監(jiān)控。
圖4為本發(fā)明實施例提供的一種監(jiān)控方法的流程示意圖。如圖4所示,該方法包括步驟501-503:
步驟501,接收由數(shù)據(jù)搜集客戶端搜集的服務器日志數(shù)據(jù),日志數(shù)據(jù)包括服務器的運行參數(shù)、中間運行日志和應用日志。
其中,數(shù)據(jù)搜集客戶端可以采用單項傳輸機制對搜集的服務器日志數(shù)據(jù)進行傳輸,數(shù)據(jù)搜集客戶端可以為Scribe客戶端。
步驟502,依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式,并根據(jù)存儲方式對日志數(shù)據(jù)進行存儲;
具體地,依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為File類型,并根據(jù)File類型對日志數(shù)據(jù)進行存儲;和/或依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為Hdfs類型,并根據(jù)Hdfs類型對日志數(shù)據(jù)進行存儲;和/或依據(jù)模型庫的配置確定日志數(shù)據(jù)的存儲方式為Redis類型,并根據(jù)Redis類型對日志數(shù)據(jù)進行存儲。
步驟503,根據(jù)日志數(shù)據(jù)的存儲方式從模型庫中選擇相應類型的模型,并根據(jù)相應類型的模型對存儲后的日志數(shù)據(jù)進行分析;監(jiān)控者基于日志數(shù)據(jù)的分析結果進行監(jiān)控。
具體地,根據(jù)日志數(shù)據(jù)的存儲方式為File類型從模型庫中選擇數(shù)據(jù)庫類型的模型,并根據(jù)數(shù)據(jù)庫類型的模型對存儲后的日志數(shù)據(jù)進行分析。根據(jù)日志數(shù)據(jù)的存儲方式為Hdfs類型從模型庫中選擇大數(shù)據(jù)類型的模型,并根據(jù)大數(shù)據(jù)類型的模型對存儲后的日志數(shù)據(jù)進行分析。根據(jù)日志數(shù)據(jù)的存儲方式為Redis類型從模型庫中選擇內存計算類型的模型,并根據(jù)內存計算類型的模型對存儲后的日志數(shù)據(jù)進行分析。
本發(fā)明實施例中的方法與前述系統(tǒng)相對應,在此不進行贅述。
本發(fā)明實施例提供的一種監(jiān)控方法,可以采集并處理多個服務器上的數(shù)據(jù),可以在新的項目上進行復用,實現(xiàn)對多個服務器和多個項目進行集中監(jiān)控。
以上的具體實施方式,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上僅為本發(fā)明的具體實施方式而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。