本發(fā)明涉及云計算和容器,尤其涉及一種微服務(wù)場景下實現(xiàn)prometheus自動監(jiān)控方法。
背景技術(shù):
1、隨著云計算和容器技術(shù)的發(fā)展,微服務(wù)架構(gòu)已成為現(xiàn)代軟件開發(fā)的主流模式。微服務(wù)架構(gòu)將復(fù)雜的應(yīng)用拆分成多個小的、獨立的服務(wù)單元,這些服務(wù)單元可以獨立開發(fā)、部署和擴展。然而,這種分布式的特性也給系統(tǒng)監(jiān)控帶來了挑戰(zhàn),因為需要對眾多分散的服務(wù)進行持續(xù)的性能和健康監(jiān)控。
2、prometheus是一個開源的系統(tǒng)監(jiān)控和警報工具包,廣泛用于記錄實時的時間序列數(shù)據(jù)。它通過http協(xié)議從被監(jiān)控組件中抓取指標,并存儲這些數(shù)據(jù)以供后續(xù)查詢和圖形展示。prometheus特別適用于存儲大量時間序列數(shù)據(jù)的監(jiān)控系統(tǒng),如微服務(wù)架構(gòu)中的監(jiān)控。
3、盡管prometheus提供了強大的監(jiān)控能力,但在微服務(wù)環(huán)境中,手動配置每個服務(wù)的監(jiān)控仍然是一項耗時且容易出錯的任務(wù)。隨著服務(wù)數(shù)量的增加,手動管理監(jiān)控目標和配置變得不可擴展,且難以適應(yīng)快速變化的生產(chǎn)環(huán)境。
4、因此在微服務(wù)場景下實現(xiàn)prometheus自動監(jiān)控的方法,以減少人工干預(yù),提高監(jiān)控效率和準確性,確保系統(tǒng)的高可用性和性能。這種方法應(yīng)該能夠自動發(fā)現(xiàn)新服務(wù),更新監(jiān)控配置,并且無縫集成到現(xiàn)有的prometheus監(jiān)控體系中。
5、手動配置prometheus是一種常見的策略,存在缺點:
6、1.維護成本高:手動配置需要對每個監(jiān)控目標進行詳細的設(shè)置和調(diào)整。當監(jiān)控目標發(fā)生變化時,需要手動更新配置文件,這會增加維護的工作量和復(fù)雜性。
7、2.錯誤風(fēng)險:手動配置容易出錯,特別是在大型監(jiān)控系統(tǒng)中。錯誤的配置可能導(dǎo)致監(jiān)控數(shù)據(jù)不準確或丟失,從而影響監(jiān)控的準確性和可靠性。
8、3.缺乏靈活性:手動配置通常只適用于靜態(tài)環(huán)境,無法適應(yīng)動態(tài)變化的資源。例如,在kubernetes環(huán)境中,由于pods和服務(wù)可以頻繁地創(chuàng)建、刪除和更新,手動配置可能無法及時適應(yīng)這些變化。
9、prometheus在kubernetes環(huán)境下配置自動發(fā)現(xiàn)監(jiān)控的缺點:
10、入門成本高:基于云服務(wù)的應(yīng)用部署,引入了k8s服務(wù),需要對應(yīng)的服務(wù)升級和云環(huán)境部署。
11、調(diào)試困難:自動發(fā)現(xiàn)機制可能會使調(diào)試變得更加困難,因為錯誤可能源于多個地方,包括kubernetes集群、prometheus配置或目標本身。
12、依賴性:prometheus的自動發(fā)現(xiàn)機制依賴于kubernetes集群的健康和穩(wěn)定性,如果kubernetes集群出現(xiàn)問題,可能會影響到prometheus的監(jiān)控能力。
技術(shù)實現(xiàn)思路
1、鑒于上述問題,提出了本發(fā)明以便提供克服上述問題或者至少部分地解決上述問題的一種微服務(wù)場景下實現(xiàn)prometheus自動監(jiān)控方法。
2、根據(jù)本發(fā)明的一個方面,提供了一種微服務(wù)場景下實現(xiàn)prometheus自動監(jiān)控方法,所述自動監(jiān)控方法包括:
3、系統(tǒng)參數(shù)配置;
4、加載相關(guān)配置,完成監(jiān)控;
5、自動更新服務(wù)狀態(tài)更新監(jiān)控列表。
6、可選的,所述系統(tǒng)參數(shù)配置具體包括:
7、服務(wù)運行管理人員依據(jù)管理界面,配置需要監(jiān)控的微服務(wù)相關(guān)參數(shù);
8、第一步是配置prometheus服務(wù)參數(shù),包括服務(wù)器ip,用戶名、密碼,安裝部署路徑信息;
9、第二步是nacos參數(shù),包括地址、用戶名、密碼、namespace、服務(wù)名稱,并且支持多prometheus、nacos的的配置,關(guān)聯(lián)配置的prometheus和nacos配置,完成prometheus要監(jiān)控的所有nacos服務(wù)。
10、可選的,所述加載相關(guān)配置,完成監(jiān)控具體包括:
11、服務(wù)依據(jù)相關(guān)配置相關(guān)參數(shù),首先加載所有prometheus參數(shù)列表,逐個分析其對應(yīng)的nacos配置參數(shù),并依據(jù)nacos的服務(wù)訂閱列表訂閱相關(guān)服務(wù)信息,對服務(wù)信息進行處理,修改為prometheus的監(jiān)控配置格式文件,將所有文件生成后,依據(jù)prometheus的參數(shù)信息,上傳至指定的路徑后,依據(jù)prometheus的重載api調(diào)用此接口,完成配置的重新加載,等待1分鐘后,調(diào)用targets接口,查詢prometheus的監(jiān)控列表對比之前的的服務(wù)列表文件,若一致代表系統(tǒng)監(jiān)控正常,若不一致,查找出不一致的信息入庫,待運維人員檢查異常。
12、可選的,所述自動更新服務(wù)狀態(tài)更新監(jiān)控列表具體包括:
13、定時更新任務(wù)刷新監(jiān)控列表,服務(wù)會依據(jù)訂閱的nacos服務(wù)列表信息,訂閱nacos服務(wù)注冊中心的服務(wù)變更事件,監(jiān)聽到服務(wù)的新上線或則下線事件,動態(tài)的獲取變更信息,并更新本地的監(jiān)控服務(wù)文件,再上傳至對應(yīng)的監(jiān)控服務(wù)prometheus的服務(wù)器中,繼續(xù)調(diào)用重載api接口和targets接口,完成配置更新和異常對比。
14、可選的,所述系統(tǒng)參數(shù)配置還包括:
15、服務(wù)運行管理人員在進行微服務(wù)監(jiān)控配置時,通過管理界面設(shè)置prometheus和nacos服務(wù)的關(guān)鍵參數(shù);
16、prometheus服務(wù)的配置是基礎(chǔ),輸入服務(wù)器的ip地址以確保數(shù)據(jù)的準確收集,同時設(shè)置用戶名和密碼以保障訪問的安全性;
17、安裝部署路徑的指定則關(guān)系到prometheus服務(wù)的運行環(huán)境;
18、管理人員需針對nacos服務(wù)進行詳細配置,包括輸入服務(wù)地址以連接nacos集群,配置用戶名和密碼進行身份驗證,定義命名空間以區(qū)分不同的服務(wù)環(huán)境,以及明確指定需要監(jiān)控的具體服務(wù)名稱;
19、在面對多租戶或大規(guī)模服務(wù)部署時,系統(tǒng)提供了強大的多實例配置能力,允許管理人員為每個prometheus實例配置多個nacos服務(wù);
20、通過智能關(guān)聯(lián)配置,管理人員輕松地將prometheus與nacos服務(wù)關(guān)聯(lián)起來;
21、系統(tǒng)還提供了高級的監(jiān)控特性,根據(jù)預(yù)設(shè)的性能指標閾值自動觸發(fā)告警,及時通知管理人員潛在的問題;
22、數(shù)據(jù)可視化工具幫助管理人員直觀地理解服務(wù)的性能狀況,通過圖表和儀表板展示關(guān)鍵性能指標;
23、系統(tǒng)還支持歷史數(shù)據(jù)分析,使管理人員能夠追蹤服務(wù)性能的變化趨勢,為優(yōu)化服務(wù)提供數(shù)據(jù)支持。
24、可選的,所述加載相關(guān)配置,完成監(jiān)控還包括:
25、服務(wù)在運行過程中,根據(jù)預(yù)設(shè)的相關(guān)配置和參數(shù)進行操作;
26、首先加載所有的prometheus參數(shù)列表,服務(wù)會逐個分析參數(shù)對應(yīng)的nacos配置參數(shù),通過分析nacos的配置參數(shù),服務(wù)獲取到需要訂閱的服務(wù)信息;
27、服務(wù)根據(jù)nacos的服務(wù)訂閱列表,訂閱相關(guān)的服務(wù)信息;服務(wù)信息是系統(tǒng)運行的關(guān)鍵,包含了各種服務(wù)的運行狀態(tài)和ip端口信息;
28、訂閱到服務(wù)信息后,服務(wù)對信息進行處理;
29、處理的方式是將服務(wù)信息修改為prometheus的監(jiān)控配置格式文件;
30、文件生成后,服務(wù)根據(jù)prometheus的參數(shù)信息,將文件上傳至指定的路徑;
31、文件上傳完成后,服務(wù)依據(jù)prometheus的重載api調(diào)用此接口,完成配置的重新加載;
32、等待1分鐘后,服務(wù)會調(diào)用targets接口,查詢prometheus的監(jiān)控列表,并與之前的服務(wù)列表文件進行對比;
33、如果兩者一致,那么系統(tǒng)監(jiān)控正常,無需進行任何操作;如果不一致,服務(wù)查找出不一致的信息,并將信息入庫,待運維人員檢查異常。
34、可選的,所述自動更新服務(wù)狀態(tài)更新監(jiān)控列表具體包括:
35、服務(wù)依據(jù)訂閱的nacos服務(wù)列表信息,訂閱nacos服務(wù)注冊中心的服務(wù)變更事件;
36、監(jiān)聽到服務(wù)的新上線或則下線事件,動態(tài)地獲取變更信息,并更新本地的監(jiān)控服務(wù)文件,將更新后的文件上傳至對應(yīng)的監(jiān)控服務(wù)prometheus的服務(wù)器中;
37、繼續(xù)調(diào)用重載api接口和targets接口,完成配置更新和異常對比;
38、服務(wù)根據(jù)訂閱的nacos服務(wù)列表信息來訂閱nacos服務(wù)注冊中心的服務(wù)變更事件;
39、當有新的服務(wù)上線或者現(xiàn)有的服務(wù)下線時,服務(wù)會立即監(jiān)聽到事件;
40、監(jiān)聽到事件,服務(wù)動態(tài)地獲取變更信息;
41、通過訂閱nacos服務(wù)注冊中心的服務(wù)變更事件,服務(wù)能夠動態(tài)地獲取變更信息,并更新本地的監(jiān)控服務(wù)文件;
42、將更新后的文件上傳至對應(yīng)的監(jiān)控服務(wù)prometheus的服務(wù)器中。
43、本發(fā)明提供的一種微服務(wù)場景下實現(xiàn)prometheus自動監(jiān)控方法,所述自動監(jiān)控方法包括:系統(tǒng)參數(shù)配置;加載相關(guān)配置,完成監(jiān)控;自動更新服務(wù)狀態(tài)更新監(jiān)控列表。避免了手動配置的繁瑣,提高了監(jiān)控配置的效率和準確性。
44、上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。