摘要:主要圍繞基于實時采集分析監(jiān)控系統(tǒng)實現(xiàn)對B/S架構(gòu)的應(yīng)用管理系統(tǒng)的實時采集分析監(jiān)控,保障企事業(yè)單位的應(yīng)用管理系統(tǒng)的高可用性,也能為企事業(yè)單位減少應(yīng)用系統(tǒng)巡檢監(jiān)控所產(chǎn)生的人力成本。同時,在應(yīng)用管理系統(tǒng)出現(xiàn)問題時,實時采集分析監(jiān)控系統(tǒng)可以為技術(shù)人員提供數(shù)據(jù)追溯查詢,以便于定位和解決問題,減少處理問題的時間,提高解決問題的效率。
關(guān)鍵詞:數(shù)據(jù)采集分析監(jiān)控系統(tǒng)數(shù)據(jù)可視化監(jiān)測預(yù)警
DevelopmentandApplicationofReal-TimeMonitoringSystemBasedonPythonDataCollectionandAnalysis
ZHANGShuqun1*ZHUZhiping2WEIJinpei3
GuangdongAIBPolytechnic,Guangzhou,GuangdongProvince,510507China
Abstract:Thisarticlemainlyfocusesontheimplementationofreal-timedatacollection,analysis,andmonitoringofB/Sarchitecture-basedapplicationmanagementsystems.Thesystemaimstoensurehighavailabilityoftheapplicationmanagementsystemsinenterprisesandinstitutions,whilecanalsoreducethelaborcostsassociatedwithroutineinspectionsandmonitoringofapplicationsystems.Additionally,thereal-timedatacollection,analysis,andmonitoringsystemcanprovidetechnicalpersonnelwithdatatracingandqueryingcapabilitiesintheeventofanyissueswiththeapplicationmanagementsystem,enablingthemtoquicklylocateandresolveproblems,therebyreducingthetimerequiredtoaddressissuesandimprovingtheefficiencyofproblem-solving.
KeyWords:Datacololectionandanalysis;Monitoringsystem;Datavisualization;Monitoringandearlywarning
近年來,我國境內(nèi)被攻擊的網(wǎng)站數(shù)量急劇上升,其中,中小型企業(yè)被攻擊的比例更是呈現(xiàn)逐年增長的趨勢,教育機構(gòu)類的網(wǎng)站被攻擊的概率也相應(yīng)增加。分析統(tǒng)計顯示,黑客攻擊的主要方式大部分來源于DdoS攻擊,這就導(dǎo)致企業(yè)和教育機構(gòu)類網(wǎng)站不勝負荷,以至于癱瘓而無法提供正常的網(wǎng)絡(luò)服務(wù)。除了人為主動攻擊破壞之外,大部分系統(tǒng)運行過程中也無法避免出現(xiàn)資源超載、內(nèi)存溢出和網(wǎng)絡(luò)中斷等問題。一旦出現(xiàn)應(yīng)用無法訪問的情況,如果沒有安裝應(yīng)用監(jiān)控軟件,很難及時發(fā)現(xiàn)情況并解決,從而導(dǎo)致業(yè)務(wù)無法正常處理,影響企業(yè)單位的正常運轉(zhuǎn)。根據(jù)這一現(xiàn)象,市面上相繼出現(xiàn)了各種應(yīng)用安全監(jiān)控預(yù)警平臺,但是其性價比往往偏低,一個普通的安全產(chǎn)品要十幾萬起步,所以,大部分企業(yè)通常采取人工定時巡檢。為了解決這個問題,本文主要闡述實時采集分析監(jiān)控系統(tǒng),以低成本、高效率的方式實現(xiàn)Web應(yīng)用的實時監(jiān)測,確保Web應(yīng)用的穩(wěn)定運行,為技術(shù)人員提供數(shù)據(jù)追溯查詢,以便于定位和解決問題,減少處理問題的時間,提高解決問題的效率。
1實時監(jiān)控系統(tǒng)的技術(shù)要點
1.1基于Scrapy實現(xiàn)高精準度的采集匹配
針對主流B/S架構(gòu)的應(yīng)用管理系統(tǒng),采集、分析、統(tǒng)計其公共特性,建立公共標(biāo)識資源庫,再根據(jù)標(biāo)識資源庫,結(jié)合Scrapy研發(fā)其采集匹配規(guī)則,最終實現(xiàn)高精準度匹配,提高采集數(shù)據(jù)質(zhì)量。采用Scrapy實現(xiàn)數(shù)據(jù)采集的原因有以下幾個方面。
1.1.1Scrapy有較高精準度的選擇器
Scrapy通常使用XPath或CSS選擇器來定位和提取網(wǎng)頁中的相關(guān)數(shù)據(jù)。同時,要做到精確的抓準,需要對目標(biāo)網(wǎng)頁的HTML結(jié)構(gòu)進行深入分析,編寫針對特定元素或?qū)傩缘倪x擇器,以準確地抓取所需數(shù)據(jù)。
1.1.2Scrapy有處理動態(tài)內(nèi)容的優(yōu)勢
現(xiàn)在的主流網(wǎng)頁通常包含動態(tài)加載的網(wǎng)頁內(nèi)容,在加載網(wǎng)頁時,HTML響應(yīng)中沒有返回數(shù)據(jù)字段,這就導(dǎo)致采集的數(shù)據(jù)缺失,或者無法采集到相應(yīng)內(nèi)容[1]。但是,可以通過Scrapy并配合Selenium等瀏覽器自動化工具模擬用戶操作,等待動態(tài)內(nèi)容加載完成后再進行抓取。
1.1.3Scrapy有處理反爬蟲機制
現(xiàn)如今,較多網(wǎng)站為了保護數(shù)據(jù)和網(wǎng)頁的訪問速度,會設(shè)置反爬蟲機制,如限制訪問頻率、設(shè)置驗證碼校驗等功能。通過Scrapy中間件,可以方便地添加代理、設(shè)置請求頭、處理cookies等,從而繞過這些反爬蟲機制,同時也可以靈活配置爬蟲的訪問頻率和重試策略,避免對目標(biāo)網(wǎng)站造成過大的壓力。
1.1.4Scrapy有較強的數(shù)據(jù)清洗和驗證功能
Scrapy提供了實體管道(ItemPipeline)組件,用于對抓取的數(shù)據(jù)進行清洗和驗證。通過編寫自定義的管道,可以高效地去除無關(guān)數(shù)據(jù)、處理缺失值、轉(zhuǎn)換數(shù)據(jù)類型等,從而確保數(shù)據(jù)的準確性和一致性。
1.1.5Scrapy有增量抓取和去重功能
為了實現(xiàn)較高精準度的網(wǎng)頁采集,通常需要對數(shù)據(jù)進行定時增量更新,從而避免重復(fù)抓取[1]。Scrapy可以通過記錄已抓取數(shù)據(jù)的唯一標(biāo)識(如URL、唯一ID等),在每次抓取時與已有數(shù)據(jù)進行比較,只抓取新增或更新的數(shù)據(jù)。
1.1.6Scrapy有較強自定義擴展和插件
Scrapy具有較強的可擴展性,用戶可以編寫自定義的擴展和插件,以滿足用戶的特定采集需求。例如,用戶可以編寫自定義的中間件來處理特定類型的網(wǎng)頁或數(shù)據(jù),或者編寫自定義的爬蟲來適應(yīng)不同網(wǎng)站的抓取規(guī)則。
1.2基于Pandas提升數(shù)據(jù)處理分析效率
基于Pandas擴展程序庫對所采集的數(shù)據(jù)實現(xiàn)高效率的處理、統(tǒng)計和分析的方法,制訂對采集的多種類型的數(shù)據(jù)格式進行過濾、匯總的應(yīng)對方案,并根據(jù)不同的數(shù)據(jù)集制訂不同的處理方法,最終實現(xiàn)高效率的數(shù)據(jù)分析能力。Pandas的優(yōu)點如下。
1.2.1高效性能
Pandas構(gòu)建在NumPy之上,充分運用了NumPy的高效數(shù)組運算能力[2],可以對大規(guī)模數(shù)據(jù)進行快速處理和計算。其內(nèi)置的數(shù)據(jù)結(jié)構(gòu)(如Series和DataFrame)設(shè)計巧妙,內(nèi)存使用率較高,對于大型表格數(shù)據(jù)的處理更加高效。
1.2.2靈活的數(shù)據(jù)結(jié)構(gòu)
DataFrame是Pandas的核心數(shù)據(jù)結(jié)構(gòu)[2],類似于電子表格或SQL表,能較靈活地處理異構(gòu)數(shù)據(jù),并且支持行索引和列標(biāo)簽,對于多維度數(shù)據(jù)的查詢和分析更加直觀。同時,Pandas序列是一維帶標(biāo)簽的數(shù)組,對于單列數(shù)據(jù)存儲更加高效。
1.2.3易用性與功能性
Pandas提供了豐富的API,這使得數(shù)據(jù)清洗、轉(zhuǎn)化、合并、重塑、篩選、分組、聚合等操作變得非常簡便[2],同時也支持SQL風(fēng)格的查詢操作,能通過布爾索引實現(xiàn)復(fù)雜條件下的數(shù)據(jù)選取。
1.2.4兼容性強
Pandas能夠無縫集成其他Python庫,例如,Matplotlib用于數(shù)據(jù)可視化,Statsmodels和Scikit-learn進行統(tǒng)計建模和機器學(xué)習(xí),以及與SQL數(shù)據(jù)庫交互等[3]。同時,其支持多種數(shù)據(jù)格式的讀寫,包括CSV、Excel、SQL數(shù)據(jù)庫、HDF5、Parquet等,極大地提高了數(shù)據(jù)輸入輸出效率。
1.2.5時間序列功能
Pandas內(nèi)置了很多類和函數(shù),能便捷地對時間序列數(shù)據(jù)和各種頻率的時間序列數(shù)據(jù)進行處理,如日期/時間的相關(guān)操作、重采樣、窗口函數(shù)計算等功能。
1.3通過Matplotlib組件展示多維度數(shù)據(jù)視圖
結(jié)合Matplotlib繪圖庫,對采集分析的數(shù)據(jù)集合進行多維度優(yōu)化展示[4]。同時,制訂不同業(yè)務(wù)場景下對不同數(shù)據(jù)類型自定義生成數(shù)據(jù)視圖圖層,最終實現(xiàn)可配置化且直觀的多維度數(shù)據(jù)圖表。采用Matplotlib展示多維度數(shù)據(jù)視圖的原因如下。
1.3.1Matplotlib有強大的繪圖功能
Matplotlib支持繪制各種靜態(tài)、動態(tài)、交互式的可視化圖表,包括柱狀圖、餅圖、線圖、散點圖、等高線圖、3D圖形等[4]。同時,Matplotlib支持定制圖表中的每一個細節(jié),如坐標(biāo)軸標(biāo)簽、圖例、顏色、字體等。
1.3.2Matplotlib易于集成
Matplotlib對于Python的其他庫(如Pandas、NumPy等)[4]的集成非常簡便,從而使數(shù)據(jù)處理和可視化的流程的使用更加的順暢。
1.3.3Matplotlib提供了豐富的擴展庫
Matplotlib提供了許多擴展庫,如Seaborn、Plotly等,這些庫在Matplotlib的基礎(chǔ)上提供了更多的繪圖功能和更美觀的圖表樣式,使數(shù)據(jù)可視化變得更加簡單和直觀。
1.3.4Matplotlib交互性較強
Matplotlib支持交互式繪圖,用戶可以通過鼠標(biāo)對圖表進行縮放、平移、選擇等操作,這在探索數(shù)據(jù)和調(diào)試圖表時非常有用。
2實時監(jiān)控系統(tǒng)的主要功能模塊介紹
通過上述內(nèi)容,為確保實時采集分析監(jiān)控系統(tǒng)的高可用性,其系統(tǒng)包括以下4個功能模塊:數(shù)據(jù)定時采集匹配、數(shù)據(jù)比較分析、數(shù)據(jù)可視化、定時提醒功能。
數(shù)據(jù)定時采集匹配模塊的主要功能是通過設(shè)定特定的執(zhí)行時間,在指定時間自動啟動并采集目標(biāo)網(wǎng)站或數(shù)據(jù)源的信息[5],同時,結(jié)合requests實現(xiàn)發(fā)送HTTP請求和解析HTML頁面,從而實現(xiàn)對網(wǎng)站數(shù)據(jù)的抓取和提取,并將采集的數(shù)據(jù)存儲到指定的數(shù)據(jù)庫中,以便后續(xù)分析和處理。其工作基本流程為:定時進行爬取B/S架構(gòu)的應(yīng)用數(shù)據(jù),并對數(shù)據(jù)進行結(jié)構(gòu)化解析,最后再存入數(shù)據(jù)庫中,為后續(xù)數(shù)據(jù)分析提供數(shù)據(jù)基礎(chǔ)。
數(shù)據(jù)對比分析模塊的主要功能是對采集的數(shù)據(jù)進行處理分析,以便于判斷當(dāng)前應(yīng)用管理系統(tǒng)所處的狀態(tài)。其功能模塊主要運用Scrapy對網(wǎng)頁數(shù)據(jù)的標(biāo)識字段進行定時采集,并存入數(shù)據(jù)庫[6],再運用Pandas對采集的數(shù)據(jù)標(biāo)識進行分析和對比數(shù)據(jù)特征庫,從而判斷當(dāng)前網(wǎng)頁的所處狀態(tài)。同時,此模塊也實現(xiàn)不同數(shù)據(jù)集的對比或同一數(shù)據(jù)集內(nèi)不同部分之間的差異比較。
數(shù)據(jù)可視化模塊的主要功能是對采集的數(shù)據(jù)進行加工美化展示,用戶能夠通過圖表的方式更直觀地查看到應(yīng)用的運行情況和對不同時期的數(shù)據(jù)進行對比,把純數(shù)字和文字的表述轉(zhuǎn)換成直觀的數(shù)據(jù)圖形,以為用戶后續(xù)的排錯、找問題提供指引。
監(jiān)控預(yù)警模塊的主要功能是基于數(shù)據(jù)比較分析模塊的分析結(jié)果,提供用戶簡便的自定義監(jiān)控預(yù)警功能,如用戶短信的綁定和郵箱的綁定兩個功能,并且用戶可以定制個性化的推送提醒方案,通過方案,用戶可以根據(jù)不同的預(yù)警級別綁定不一樣的預(yù)警提示。
3結(jié)語
當(dāng)Web應(yīng)用出現(xiàn)宕機或者異常時,通過實時監(jiān)控系統(tǒng)對網(wǎng)頁進行采集、分析、對比,能及時提醒用戶Web應(yīng)用的當(dāng)前狀態(tài),從而保障了企事業(yè)單位的Web應(yīng)用的安全性和可用性,減少了應(yīng)用系統(tǒng)巡檢監(jiān)控所產(chǎn)生的人力成本。同時,實時監(jiān)控系統(tǒng)也可以在應(yīng)用管理系統(tǒng)出現(xiàn)問題時,為技術(shù)人員提供數(shù)據(jù)追溯查詢,以便快速排查、解決問題,減少處理問題的時間,提高解決問題的效率。
參考文獻
[1]張楠.基于Python的房產(chǎn)信息網(wǎng)站數(shù)據(jù)采集策略分析[J].集成電路應(yīng)用,2024,41(1):344-346.
[2]郭瑾.基于Python的招聘數(shù)據(jù)爬取與數(shù)據(jù)可視化分析研究[J].輕工科技,2024,40(2):94-96,99.
[3]王紀才,徐啟南,袁霄翔.基于Python爬蟲的電影數(shù)據(jù)可視化分析[J].周口師范學(xué)院學(xué)報,2023,40(5):60-65.
[4]謝文法,張樂天,劉士浩.Python可視化技術(shù)在電動力學(xué)教學(xué)中的應(yīng)用[J].物理與工程,2024,34(1):92-96.
[5]余戰(zhàn)秋.Python數(shù)據(jù)采集軟件的設(shè)計與應(yīng)用[J].電子技術(shù),2023,52(7):307-309.
[6]蔡文樂,秦立靜.基于Python爬蟲的招聘數(shù)據(jù)可視化分析[J].物聯(lián)網(wǎng)技術(shù),2024,14(1):102-105.