System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及軟件部署,尤其涉及一種vip漂移自動異常診斷方法、系統、電子設備及存儲介質。
技術介紹
1、keepalived?是一種部署在?linux?系統中的輕量級高可用解決方案,廣泛應用于企業級高可用性架構中。該系統通過持續監控服務器狀態,提供了可靠的高可用性保障。當檢測到服務器故障時,keepalived?會自動將該服務器從系統中移除,并無縫切換至備用服務器,確保業務不中斷,?這個過程vip會漂移至別的服務器。故障服務器恢復正常后,keepalived?會自動將其重新納入服務器群組,整個過程無需人工干預,極大地簡化了系統維護。
2、然而當通過?keepalived?代理的服務出現問題時,網絡連通性排查往往面臨挑戰。由于應用層面僅能看到虛擬?ip(vip),而無法直接識別其對應的服務器及網卡,網絡連接問題的進一步排查因此變得困難,最終導致企業平均故障修復時間(mttr)高,應用業務最終可用性。
3、傳統獲取keepalived?vip漂移的方法主要有以下兩種:
4、prometheus的keepalivedexpoter組件。這個組件可以暴露keepalived組件的狀態指標,其中為了解決上訴問題組件暴露了keepalived_up以及keepalived_become_master_total等指標,但是keepalived_up只能指示企業運維人員keeaplived組件是否起著,keepalived_become_master_total只能指示vip是否發生ip漂移,并不能具體知
5、zabbix?監控是否發生漂移,這種方式和第一種類似,只能指示vip是否發生ip漂移,并且不能為診斷提供信息。
6、通過修改keepalived源碼暴露漂移指標,keepalived是一個開源組件,修改源碼將會導致后續keepalived升級成本高,不能獲取社區的一些優秀沉淀。
技術實現思路
1、針對上述問題中存在的不足之處,本專利技術提供一種vip漂移自動異常診斷方法、系統、電子設備及存儲介質。
2、為實現上述目的,本專利技術提供一種vip漂移自動異常診斷方法,包括:
3、利用ebpf攔截connect、getsocktopt系統調用,采集vip建聯失敗信息,獲取應用訪問vip時網絡連接的異常;
4、通過keepalive探針,利用ebpf攔截sendmsg、recvmsg系統調用,獲取vip漂移服務器信息;
5、基于所述vip漂移服務器信息,構建網絡現場信息獲取任務;
6、根據task-agentip?將所述任務下發目標的應用服務器,業務探針接收到所述任務在業務服務上進行網絡診斷,獲取數據;
7、將所述數據進行分片;
8、將分片的數據輸入qwen-72b大模型中,獲取分析結果。
9、優選的是,利用ebpf攔截connect、getsocktopt系統調用,采集vip建聯失敗信息,獲取應用訪問vip時網絡連接的異常包括:
10、攔截connect系統調用獲取函數參數,并根據連接目的地址ip;
11、判斷應用訪問是否為vip類型,若不是則丟棄不處理;
12、若是則啟動探針,獲取所述connect系統調用返回值狀態碼,若所述返回值狀態碼為-115,則以fd為key,value?為ip保留連接信息;若所述返回值狀態碼為其他非-115的負值,則生成應用連接vip的connect失敗事件;
13、攔截getsocktopt系統調用getsockopt函數,獲取fd以及對fd操作的level、opt操作類型,若是sol_socket說明是對socket的操作,且so_error說明返回錯誤,并判斷所述返回錯誤是否小于0,小于0則連接狀態的異常,根據fd為key,獲取所述ip保留連接信息。
14、優選的是,通過keepalive探針,利用ebpf攔截sendmsg、recvmsg系統調用,獲取vip漂移服務器信息包括:
15、攔截sendmsg系統獲取消息sendmsg?byte數組;
16、提取所述sendmsg?byte數組前2個字節內容,轉化成數字,若所述數字為16則代表為af_netlink協議,并進行協議提取獲取ip信息,以fd為key,ip為value,保持至bpf_map,若不是則放棄處理;
17、攔截recvmsg系統獲取消息recvmsg?byte數組;
18、提取所述recvmsg?byte數組前2個字節內容,轉化成數字,若所述數字為16,則進一步獲取recvmsg?返回值,如果返回成功,則ip漂移成功,根據fd信息獲取漂移的目標ip,組裝成漂移事件發至后臺,若不是則放棄處理。
19、優選的是,協議信息提取目的地址ip步驟:
20、指針偏移22個字節,獲取到協議開始指針開始地址ptr;
21、所述prt偏移4個字節,讀取2個字節,獲取操作類型,?若操作類型是rtm_newaddr,則prt讀取4個字節,獲取網卡操作內容的長度len,ptr偏移len字節獲取網卡信息的開始地址ifprt,否則跳過處理,rtm_newaddr是內核標識ip?地址被分配或綁定到某個網絡接口的類型;
22、所述ifprt偏移4個字節,讀取4個字節獲取網卡序號,?調用內核if_nametoindex函數根據網卡序號獲取網卡名稱;
23、所述ifprt偏移8個字節獲取屬性開始地址,繼續偏移2個讀取屬性長度alen,在偏移alen獲取十進制ip地址。
24、優選的是,所述任務附帶traceid,所述traceid是代碼一次連接失敗的信息。
25、優選的是,所述數據包括iptables表、路由表、arp表、以task-ip信息為目的的traceroute表。
26、優選的是,將所述數據進行分片步驟包括:
27、讀取分析所述iptables表,選擇chain為自定義標識,通過工具先過濾沒有target的chain,統計chain?的token數t以及chain的行數offset,放到token特征文檔traceid_iptable_tokens?格式為chainxx?t?offset?/n?chainxx?tl?/n,chain的tokens?大于x,則統計chain?每一行的tokens?tl,并都統計到token特征文檔chainxx_line_tokens里,格式為line?tl;
28、分析所述路由表、所述arp表以及所述traceroute表,以行為分割符統計每一行的tokens?tl,統計到token特征文檔traceid_xx_tokens文檔中,格式為line?tl;
29、是否有特征文本文檔來自技高網...
【技術保護點】
1.一種VIP漂移自動異常診斷方法,其特征在于,包括:
2.根據權利要求1所述的VIP漂移自動異常診斷方法,其特征在于,利用ebpf攔截connect、getsocktopt系統調用,采集VIP建聯失敗信息,獲取應用訪問VIP時網絡連接的異常包括:
3.根據權利要求2所述的VIP漂移自動異常診斷方法,其特征在于,通過keepalive探針,利用ebpf攔截sendmsg、recvmsg系統調用,獲取VIP漂移服務器信息包括:
4.根據權利要求3所述的VIP漂移自動異常診斷方法,其特征在于,協議信息提取目的地址IP步驟:
5.根據權利要求4所述的VIP漂移自動異常診斷方法,其特征在于,所述任務附帶traceid,所述traceid是代碼一次連接失敗的信息。
6.根據權利要求5所述的VIP漂移自動異常診斷方法,其特征在于,所述數據包括iptables表、路由表、arp表、以TASK-ip信息為目的的traceroute表。
7.根據權利要求6所述的VIP漂移自動異常診斷方法,其特征在于,將所述數據進行分片步驟包括
8.一種VIP漂移及自動異常診斷系統,其特征在于,包括:
9.一種電子設備,其特征在于,包括至少一個處理單元以及至少一個存儲單元,其中,所述存儲單元存儲有計算機程序,當所述程序被所述處理單元執行時,使得所述處理單元執行權利要求1~7任一權利要求所述的方法。
10.一種存儲介質,其特征在于,其存儲有可由電子設備執行的計算機程序,當所述程序在所述電子設備上運行時,使得所述電子設備執行權利要求1~7任一權利要求所述的方法。
...【技術特征摘要】
1.一種vip漂移自動異常診斷方法,其特征在于,包括:
2.根據權利要求1所述的vip漂移自動異常診斷方法,其特征在于,利用ebpf攔截connect、getsocktopt系統調用,采集vip建聯失敗信息,獲取應用訪問vip時網絡連接的異常包括:
3.根據權利要求2所述的vip漂移自動異常診斷方法,其特征在于,通過keepalive探針,利用ebpf攔截sendmsg、recvmsg系統調用,獲取vip漂移服務器信息包括:
4.根據權利要求3所述的vip漂移自動異常診斷方法,其特征在于,協議信息提取目的地址ip步驟:
5.根據權利要求4所述的vip漂移自動異常診斷方法,其特征在于,所述任務附帶traceid,所述traceid是代碼一次連接失敗的信息。
6....
【專利技術屬性】
技術研發人員:蔣玉芳,王翱宇,李留,沈彬彬,陳煒舜,
申請(專利權)人:杭州諧云科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。