本發明涉及計算機技術領域,具體涉及一種非侵入式監控方法及裝置。
背景技術:
隨著公司業務的發展壯大,監控各個業務的健康度和運行狀態勢在必行。原來的各個業務管理人員,通過常規的方式搭建各自的監控系統,完成數據收集和監控,產生了很多管理后臺,這既帶來重復的工作量,也不方便集中管理和監控及告警。
傳統的監控系統,是通過在業務中深度嵌入統計代碼和侵入式監控系統來實現的,這種耦合度高的統計系統,反而影響了業務系統的性能。
技術實現要素:
為了克服上述現有技術存在的不足,本發明的主要目的在于提供一種非侵入式的且便于集中管理的監控方法。
本發明提供一種非侵入式監控方法,包括:
服務器獲取終端的業務數據。
將獲取的所述業務數據匯報到前端緩存。
將所述前端緩存的業務數據傳送至監控專用緩存中。
根據預先設置的監控取樣時長獲取所述監控專用緩存中的業務數據并進行累加得到監控數據數量。
當所述得到的監控數據數量小于預設的報警下限值或大于預設的報警上限值時,發送報警信息。
其中,所述終端內設置有實時日志,所述服務器從所述實時日志獲取業務數據,所述服務器通過設置連接超時時間從所述實時日志獲取業務數據,所述業務數據通過推送的方式匯報到前端緩存,所述前端緩存的業務數據通過拉取的方式傳送至所述監控專用緩存中,所述服務器通過拉取的方式從監控專用緩存中取出業務數據并累加得到監控數據數量。
優選地,當所述得到的監控數據數量小于預設的報警下限值或大于預設的報警上限值時,發送報警信息,包括:
設置報警下限值和報警上限值。
判斷所述得到的監控數據數量是否小于所述報警下限值,當判斷為是時,則發送報警信息。
當判斷為否時,則繼續判斷所述得到的監控數據數量是否大于所述報警上限值,當判斷為是時,則發送報警信息。
本發明還提供一種非侵入式監控裝置,包括:
日志緩存單元,用于獲取業務數據。
前端緩存單元,用于緩存日志緩存單元所獲取的業務數據。
專用緩存單元,用于緩存所述前端緩存單元傳送過來的業務數據。
zabbix監控單元,用于獲取所述專用緩存單元中的業務數據并累加得到監控數據數量,當所述得到的監控數據數量小于預設的報警下限值或大于預設的報警上限值時,發送報警信息。
優選地,所述前端業務緩存單元設置有多個,所述專用緩存單元采用輪詢的方式確定其要連接的前端緩存單元。
優選地,所述zabbix監控單元包括:
預設單元,用于設置監控取樣時長及報警下限值和報警上限值。
報警單元,用于根據監控取樣時長獲取所述專用緩存單元中的業務數據并累加得到監控數據數量,當所述得到的監控數據數量小于預設的報警下限值或大于預設的報警上限值時,發送報警信息。
優選地,所述報警單元包括:
統計單元,用于根據所述監控取樣時長獲取所述專用緩存單元中業務數據并進行累加得到監控數據數量。
比較單元,用于將所述監控數據數量與所述報警下限值或報警上限值作比較,當判斷所述監控數據數量小于所述報警下限值或者所述監控數據數量大于所述報警上限值時,向相應的接收報警信息的接收對象發送報警信息。
本發明通過將redis和zabbix相結合,利用PHP連接Redis,可以設置極短連接超時時間的特性,將終端的各業務數據以推送的方式報到前端緩存,就算前端緩存宕機,因為設置了極短的連接超時時間,所以獲取業務數據不會造成影響。同時,將前端緩存中的業務數據盡快傳送至專用緩存,在專用緩存中對業務數據進行累加運算可以避免因為運算而影響到前端緩存的性能。
本發明由于設置有前端緩存和監控專用緩存,通過前端緩存獲取業務數據并盡快轉移至監控專用緩存中,而無需在業務系統中植入監控代碼,也無需修改業務系統,實現了非侵入式監控。使監控程序與主程序分開運行,避免了主程序調用外部監控程序耗時長以及監控程序出了問題影響到主程序運行的情況。
另外,根據預先設置的監控取樣時長獲取專用緩存單元中的業務數據,并對所獲取的業務數據進行累加運算得到監控數據數量,再將監控數據數量與預設的報警下限值或預設的報警上限值作對比,當監控數據數量小于預設報警下限值或大于預設報警上限值時,直接向相應的負責管理對象發出報警信息,使相應的負責管理對象可以及時的進行處理,使管理集中化,提高了工作效率,監控更到位。
附圖說明
圖1本發明實施例的非侵入式監控方法流程圖;
圖2為本發明實施例的非侵入式監控裝置結構示意圖;
圖3為本發明實施例的zabbix監控單元的結構圖;
圖4為本發明實施例的預設單元工作流程圖;
圖中,1、日志緩存單元;2、前端緩存單元;3、專用緩存單元;4、zabbix監控單元;41、預設單元;42、報警單元;420、統計單元;421、比較單元;43、接收對象配置單元。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
如圖1所示,本發明提供一種非侵入式監控方法,包括以下步驟:
步驟S11,服務器獲取終端的業務數據。
具體為,終端內設置有實時日志,主程序運行時產生的業務數據實時寫入實時日志,服務器通過設置連接超時時間從實時日志獲取業務數據,在本實施例中,連接超時時間設置為極小值。
步驟S12,將業務數據匯報到前端緩存。
具體為,實時日志中的業務數據通過推送的方式匯報到前端緩存,使其不再和具體業務代碼互相影響。在本實施中,還設置有日志文件,實時日志中的業務數據也會傳送至日志文件中保存,便于后期查閱。
步驟S13,將前端緩存中的業務數據傳送至監控專用緩存中。
具體為,將前端緩存中的業務數據通過拉取的方式盡快傳送至監控專用緩存,在本實施例中,監控專用緩存與主內存設置于不同的服務器上。
步驟S14,設置監控取樣時長和報警下限值及報警上限值。
步驟S15,讀取設置,并根據監控取樣時長獲取監控專用緩存中的業務數據并進行累加得到監控數據數量。
具體的,服務器通過拉取的方式從監控專用緩存中取出業務數據并累加得到監控數據數量。
步驟S16,判斷監控數據數量是否小于報警下限值,當判斷為是時,則進行步驟S17,發送報警信息,當判斷為否時,則進行步驟S18。
步驟S18,判斷監控數據數量是否大于報警上限值,當判斷為是時,則進行步驟S19,發送報警信息,當判斷為否時,則進行步驟S20,檢查通過。
具體為,在本實施例中,當監控數據數量小于報警下限值時,設置有對應的一個或多個接收報警信息的接收對象;當監控數據數量大于報警上限值時,同樣設置有對應的一個或多個接收報警信息的接收對象。使相應的負責人可以及時的接收到報警信息,及時地進行處理,監控更到位,管理更高效。
如圖2、圖3、圖4所示,本發明還提供一種非侵入式監控裝置,包括日志緩存單元1、前端緩存單元2、專用緩存單元3和zabbix監控單元4,其中,zabbix單元又包括預設單元41、報警單元42和接收對象配置單元43。zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。
當實施業務監控時,日志緩存單元1獲取業務數據,通過推送的方式匯報到前端緩存單元2緩存。前端緩存單元2設置有多個,專用緩存單元3采用輪詢的方式確定要連接的具體前端緩存單元2,前端緩存單元2通過拉取的方式將其緩存的業務數據盡快傳送至專用緩存單元2。接收對象配置單元43設置好對應的一個或多個接收報警信息的接收對象。
預設單元41設置好監控取樣時長、報警下限值和報警上限值并保存。然后報警單元42根據監控取樣時長通過拉取的方式獲取專用緩存單元2中的業務數據并累加得到監控數據數量,當得到的監控數據數量小于預設的報警下限值或大于預設的報警上限值時,發送報警信息。
具體地,報警單元42包括統計單元420和比較單元421,統計單元420用于根據監控取樣時長獲取專用緩存單元2中業務數據并進行累加得到監控數據數量。比較單元421用于將監控數據數量首先與報警下限值作對比,判斷監控數據數量是否小于報警下限值時,當判斷為是時,則向相應的接收對象發送報警信息。當判斷為否時,則繼續判斷監控數據數量是否大于報警上限值,當判斷為是時,則向相應的報警對象發送報警信息。否則為檢查通過。
在本實施例中,還設置有日志文件單元,實時緩存單元1將業務數據傳送給日志文件單元保存,便于后期查閱。
以上所述,僅為本發明較佳的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍為準。