本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),尤指一種處理系統(tǒng)日志報(bào)文的方法和裝置。
背景技術(shù):
在Unix類操作系統(tǒng)上,系統(tǒng)日志(Syslog)消息可以通過網(wǎng)絡(luò)發(fā)送到Syslog服務(wù)器,Syslog服務(wù)器可以對發(fā)送Syslog消息的設(shè)備的Syslog消息進(jìn)行統(tǒng)一的存儲(chǔ),或解析其中的內(nèi)容作相應(yīng)的處理。
路由器是Syslog的應(yīng)用場景之一。圖1為現(xiàn)有的路由器的結(jié)構(gòu)組成示意圖,如圖1所示,現(xiàn)有的路由器處理系統(tǒng)日志報(bào)文的方法大致包括:
端口模塊將接收到的報(bào)文發(fā)送給協(xié)議棧模塊,協(xié)議棧模塊將報(bào)文中的調(diào)試信息發(fā)送給調(diào)試信息管理模塊,調(diào)試信息管理模塊根據(jù)命令行接口模塊的第一配置信息選擇性的向Syslog客戶端模塊發(fā)送調(diào)試信息;Syslog客戶端模塊根據(jù)命令行接口模塊的第二配置信息(例如,互聯(lián)網(wǎng)協(xié)議(IP,Internet Protocol)地址和端口)將調(diào)試信息組織成Syslog報(bào)文發(fā)送給協(xié)議棧模塊,協(xié)議棧模塊將Syslog報(bào)文封裝成用戶數(shù)據(jù)包協(xié)議(UDP,User Datagram Protocol)報(bào)文發(fā)送給端口模塊;端口模塊將UDP報(bào)文發(fā)送給Syslog服務(wù)器所在的設(shè)備;
或者,當(dāng)路由器出現(xiàn)故障時(shí),告警管理模塊向Syslog客戶端模塊發(fā)送告警日志,Syslog客戶端模塊根據(jù)命令行接口模塊的第一配置信息將告警日志組織成Syslog報(bào)文發(fā)送給協(xié)議棧模塊,協(xié)議棧模塊將Syslog報(bào)文封裝成UDP報(bào)文發(fā)送給端口模塊;端口模塊將UDP報(bào)文發(fā)送給Syslog服務(wù)器所在的設(shè)備。
現(xiàn)有的處理系統(tǒng)日志報(bào)文的方法中,端口模塊將UDP報(bào)文發(fā)送給Syslog服務(wù)器所在的設(shè)備后,如果Syslog服務(wù)器所在的設(shè)備查找不到與UDP報(bào)文中的IP地址和端口相匹配的Syslog服務(wù)器,則Syslog服務(wù)器所在的設(shè)備向 路由器發(fā)送控制報(bào)文協(xié)議(ICMP,Internet Control Message Protocol)對端不可達(dá)報(bào)文,路由器的端口模塊將接收到的ICMP對端不可達(dá)報(bào)文發(fā)送給協(xié)議棧模塊,并繼續(xù)執(zhí)行后續(xù)的步驟,這樣就會(huì)形成Syslog報(bào)文回環(huán),由于報(bào)文發(fā)送速度很快,會(huì)導(dǎo)致路由器的CPU使用率很高。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述問題,本發(fā)明提出了一種處理系統(tǒng)日志報(bào)文的方法和裝置,能夠避免Syslog報(bào)文回環(huán),從而降低CPU使用率。
為了達(dá)到上述目的,本發(fā)明提出了一種處理系統(tǒng)日志Syslog報(bào)文的方法,包括:
網(wǎng)絡(luò)設(shè)備接收到來自Syslog服務(wù)器的控制報(bào)文協(xié)議ICMP對端不可達(dá)報(bào)文;
網(wǎng)絡(luò)設(shè)備判斷出ICMP對端不可達(dá)報(bào)文中的源互聯(lián)網(wǎng)協(xié)議IP地址和第二配置信息中的IP地址相同,且ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口相同,不向Syslog服務(wù)器所在的設(shè)備發(fā)送Syslog報(bào)文。
優(yōu)選地,當(dāng)所述網(wǎng)絡(luò)設(shè)備判斷出所述ICMP對端不可達(dá)報(bào)文中的源IP地址和所述第二配置信息中的IP地址不相同,或所述ICMP對端不可達(dá)報(bào)文中的源端口和所述第二配置信息中的端口不相同時(shí),該方法還包括:
所述網(wǎng)絡(luò)設(shè)備向所述Syslog服務(wù)器所在的設(shè)備發(fā)送所述Syslog報(bào)文。
優(yōu)選地,該方法還包括:
所述網(wǎng)絡(luò)設(shè)備每隔預(yù)設(shè)時(shí)間向所述Syslog服務(wù)器所在的設(shè)備發(fā)送試探報(bào)文;
當(dāng)所述網(wǎng)絡(luò)設(shè)備未接收到試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文,或判斷出所述試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源IP地址和所述第二配置信息中的IP地址不相同,或判斷出所述試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源端口和所述第二配置信息中的端口不相同時(shí),向所述Syslog服務(wù)器所在的設(shè)備發(fā)送所述Syslog報(bào)文。
優(yōu)選地,當(dāng)所述網(wǎng)絡(luò)設(shè)備接收到所述試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文,且判斷出所述試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源IP地址和所述第二配置信息中的IP地址相同,且判斷出所述試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源端口和所述第二配置信息中的端口相同時(shí),該方法還包括:
繼續(xù)執(zhí)行不向所述Syslog服務(wù)器發(fā)送所述Syslog報(bào)文的步驟。
優(yōu)選地,當(dāng)所述網(wǎng)絡(luò)設(shè)備第(n-1)次發(fā)送所述試探報(bào)文的時(shí)間間隔小于預(yù)先設(shè)置的最大試探時(shí)間間隔時(shí),所述網(wǎng)絡(luò)設(shè)備第n次發(fā)送所述試探報(bào)文的時(shí)間間隔為:
其中,ΔTn為所述網(wǎng)絡(luò)設(shè)備第n次發(fā)送所述試探報(bào)文的時(shí)間間隔,ΔTn-1為所述網(wǎng)絡(luò)設(shè)備第(n-1)發(fā)送所述試探報(bào)文的時(shí)間間隔,k1和k2為常數(shù),n為大于或等于2的整數(shù)。
優(yōu)選地,當(dāng)所述網(wǎng)絡(luò)設(shè)備第(n-1)次發(fā)送所述試探報(bào)文的時(shí)間間隔大于或等于預(yù)先設(shè)置的最大試探時(shí)間間隔時(shí),所述網(wǎng)絡(luò)設(shè)備第n次發(fā)送所述試探報(bào)文的時(shí)間間隔為所述最大試探時(shí)間間隔;其中,n為大于或等于2的整數(shù)。
本發(fā)明還提出了一種處理系統(tǒng)日志Syslog報(bào)文的裝置,至少包括:
接收模塊,用于接收到來自Syslog服務(wù)器的控制報(bào)文協(xié)議ICMP對端不可達(dá)報(bào)文;
發(fā)送模塊,用于判斷出ICMP對端不可達(dá)報(bào)文中的源互聯(lián)網(wǎng)協(xié)議IP地址和第二配置信息中的IP地址相同,且ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口相同,不向Syslog服務(wù)器所在的設(shè)備發(fā)送Syslog報(bào)文。
優(yōu)選地,所述發(fā)送模塊還用于:
判斷出所述ICMP對端不可達(dá)報(bào)文中的源IP地址和所述第二配置信息中的IP地址不相同,或所述ICMP對端不可達(dá)報(bào)文中的源端口和所述第二配置信息中的端口不相同,向所述Syslog服務(wù)器所在的設(shè)備發(fā)送所述Syslog報(bào)文。
優(yōu)選地,所述發(fā)送模塊還用于:
每隔預(yù)設(shè)時(shí)間向所述Syslog服務(wù)器所在的設(shè)備發(fā)送試探報(bào)文;當(dāng)未接收 到試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文,或判斷出所述試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源IP地址和所述第二配置信息中的IP地址不相同,或判斷出所述試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源端口和所述第二配置信息中的端口不相同時(shí),向所述Syslog服務(wù)器所在的設(shè)備發(fā)送所述Syslog報(bào)文。
優(yōu)選地,所述接收模塊還用于:
接收到所述試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文;
所述發(fā)送模塊還用于:
判斷出所述試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源IP地址和所述第二配置信息中的IP地址相同,且判斷出所述試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源端口和所述第二配置信息中的端口相同,繼續(xù)執(zhí)行不向所述Syslog服務(wù)器發(fā)送所述Syslog報(bào)文的步驟。
與現(xiàn)有技術(shù)相比,本發(fā)明包括:網(wǎng)絡(luò)設(shè)備接收到來自Syslog服務(wù)器的ICMP對端不可達(dá)報(bào)文;網(wǎng)絡(luò)設(shè)備判斷出ICMP對端不可達(dá)報(bào)文中的源IP地址和第二配置信息中的IP地址相同,且ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口相同,不向Syslog服務(wù)器所在的設(shè)備發(fā)送Syslog報(bào)文。通過本發(fā)明的方案,在判斷出ICMP對端不可達(dá)報(bào)文中的源互聯(lián)網(wǎng)協(xié)議IP地址和第二配置信息中的IP地址相同,且ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口相同時(shí),不向Syslog服務(wù)器所在的設(shè)備發(fā)送Syslog報(bào)文,從而避免了Syslog報(bào)文的回環(huán),降低了CPU的使用率。
附圖說明
下面對本發(fā)明實(shí)施例中的附圖進(jìn)行說明,實(shí)施例中的附圖是用于對本發(fā)明的進(jìn)一步理解,與說明書一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明保護(hù)范圍的限制。
圖1為現(xiàn)有的路由器的結(jié)構(gòu)組成示意圖;
圖2為本發(fā)明處理Syslog報(bào)文的方法的流程圖;
圖3為本發(fā)明處理Syslog報(bào)文的裝置的結(jié)構(gòu)組成示意圖。
具體實(shí)施方式
為了便于本領(lǐng)域技術(shù)人員的理解,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的描述,并不能用來限制本發(fā)明的保護(hù)范圍。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的各種方式可以相互組合。
參見圖2,本發(fā)明提出了一種處理Syslog報(bào)文的方法,包括:
步驟200、網(wǎng)絡(luò)設(shè)備接收到來自Syslog服務(wù)器的ICMP對端不可達(dá)報(bào)文。
本步驟中,網(wǎng)絡(luò)設(shè)備可以是網(wǎng)絡(luò)中的任意設(shè)備,例如路由器等。
步驟201、網(wǎng)絡(luò)設(shè)備判斷出ICMP對端不可達(dá)報(bào)文中的源IP地址和第二配置信息中的IP地址相同,且ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口相同,不向Syslog服務(wù)器所在的設(shè)備發(fā)送Syslog報(bào)文。
本步驟中,當(dāng)網(wǎng)絡(luò)設(shè)備判斷出ICMP對端不可達(dá)報(bào)文中的源IP地址和第二配置信息中的IP地址不相同,或ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口不相同時(shí),向Syslog服務(wù)器所在的設(shè)備發(fā)送Syslog報(bào)文。
該方法還可以包括:網(wǎng)絡(luò)設(shè)備每隔預(yù)設(shè)時(shí)間向Syslog服務(wù)器所在的設(shè)備發(fā)送試探報(bào)文;當(dāng)網(wǎng)絡(luò)設(shè)備試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文,或判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源IP地址和第二配置信息中的IP地址不相同,或判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口不相同時(shí),向Syslog服務(wù)器所在的設(shè)備發(fā)送Syslog報(bào)文。
其中,當(dāng)網(wǎng)絡(luò)設(shè)備接收到試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文,且判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源IP地址和第二配置信息中的IP地址相同,且判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口相同時(shí),繼續(xù)執(zhí)行不向Syslog服務(wù)器發(fā)送Syslog報(bào)文的步驟。
其中,當(dāng)網(wǎng)絡(luò)設(shè)備第(n-1)次發(fā)送試探報(bào)文的時(shí)間間隔小于預(yù)先設(shè)置的 最大試探時(shí)間間隔時(shí),網(wǎng)絡(luò)設(shè)備第n次發(fā)送試探報(bào)文的時(shí)間間隔可以是:其中,ΔTn為網(wǎng)絡(luò)設(shè)備第n次發(fā)送試探報(bào)文的時(shí)間間隔,ΔTn-1為網(wǎng)絡(luò)設(shè)備第(n-1)發(fā)送試探報(bào)文的時(shí)間間隔,k1和k2為常數(shù),n為大于或等于2的整數(shù);當(dāng)網(wǎng)絡(luò)設(shè)備第(n-1)次發(fā)送試探報(bào)文的時(shí)間間隔大于或等于預(yù)先設(shè)置的最大試探時(shí)間間隔時(shí),網(wǎng)絡(luò)設(shè)備第n次發(fā)送試探報(bào)文的時(shí)間間隔可以是最大試探時(shí)間間隔。
參見圖3,本發(fā)明還提出了一種處理Syslog報(bào)文的裝置,可以設(shè)置在網(wǎng)絡(luò)設(shè)備中,至少包括:
接收模塊,用于接收到來自Syslog服務(wù)器的控制報(bào)文協(xié)議ICMP對端不可達(dá)報(bào)文;
發(fā)送模塊,用于判斷出ICMP對端不可達(dá)報(bào)文中的源互聯(lián)網(wǎng)協(xié)議IP地址和第二配置信息中的IP地址相同,且ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口相同,不向Syslog服務(wù)器所在的設(shè)備發(fā)送Syslog報(bào)文。
本發(fā)明的裝置中,發(fā)送模塊還用于:
判斷出ICMP對端不可達(dá)報(bào)文中的源IP地址和第二配置信息中的IP地址不相同,或ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口不相同,向Syslog服務(wù)器所在的設(shè)備發(fā)送Syslog報(bào)文。
本發(fā)明的裝置中,發(fā)送模塊還用于:
每隔預(yù)設(shè)時(shí)間向Syslog服務(wù)器所在的設(shè)備發(fā)送試探報(bào)文;當(dāng)未接收到試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文,或判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源IP地址和第二配置信息中的IP地址不相同,或判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口不相同時(shí),向Syslog服務(wù)器所在的設(shè)備發(fā)送Syslog報(bào)文。
本發(fā)明的裝置中,接收模塊還用于:
接收到試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文;
發(fā)送模塊還用于:
判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源IP地址和第二配置 信息中的IP地址相同,且判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口相同,繼續(xù)執(zhí)行不向Syslog服務(wù)器發(fā)送Syslog報(bào)文的步驟。
下面通過具體實(shí)施例詳細(xì)說明本發(fā)明的方法。
如圖1所示,端口模塊將接收到的報(bào)文發(fā)送給協(xié)議棧模塊,協(xié)議棧模塊將報(bào)文中的調(diào)試信息發(fā)送給調(diào)試信息管理模塊,調(diào)試信息管理模塊根據(jù)命令行接口模塊的第一配置信息選擇性的向Syslog客戶端模塊發(fā)送調(diào)試信息;Syslog客戶端模塊根據(jù)命令行接口模塊的第二配置信息(例如,IP地址和端口)將調(diào)試信息組織成Syslog報(bào)文發(fā)送給協(xié)議棧模塊,協(xié)議棧模塊將Syslog報(bào)文封裝成用戶數(shù)據(jù)包協(xié)議(UDP,User Datagram Protocol)報(bào)文發(fā)送給端口模塊;端口模塊將UDP報(bào)文發(fā)送給Syslog服務(wù)器所在的設(shè)備;
或者,當(dāng)網(wǎng)絡(luò)設(shè)備出現(xiàn)故障時(shí),告警管理模塊向Syslog客戶端模塊發(fā)送告警日志,Syslog客戶端模塊根據(jù)命令行接口模塊的第一配置信息將告警日志組織成Syslog報(bào)文發(fā)送給協(xié)議棧模塊,協(xié)議棧模塊將Syslog報(bào)文封裝成UDP報(bào)文發(fā)送給端口模塊;端口模塊將UDP報(bào)文發(fā)送給Syslog服務(wù)器所在的設(shè)備。
端口模塊將UDP報(bào)文發(fā)送給Syslog服務(wù)器所在的設(shè)備后,如果Syslog服務(wù)器所在的設(shè)備查找不到與UDP報(bào)文中的IP地址和端口相匹配的Syslog服務(wù)器,則Syslog服務(wù)器所在的設(shè)備向網(wǎng)絡(luò)設(shè)備發(fā)送ICMP對端不可達(dá)報(bào)文,網(wǎng)絡(luò)設(shè)備的端口模塊接收到ICMP對端不可達(dá)報(bào)文后,將ICMP對端不可達(dá)報(bào)文發(fā)送給協(xié)議棧模塊,協(xié)議棧模塊將ICMP對端不可達(dá)報(bào)文中的調(diào)試信息發(fā)送給調(diào)試信息管理模塊,調(diào)試信息管理模塊根據(jù)命令接口模塊的第一配置信息選擇性的向Syslog客戶端模塊發(fā)送調(diào)試信息,當(dāng)Syslog客戶端模塊判斷出調(diào)試信息中的源IP地址和第二配置信息中的IP地址相同,且調(diào)試信息中的源端口和第二配置信息中的端口相同時(shí),不將調(diào)試信息組織成Syslog報(bào)文發(fā)送給協(xié)議棧模塊。
其中,當(dāng)Syslog客戶端模塊判斷出調(diào)試信息中的源IP地址和第二配置信息中的IP地址不相同,且調(diào)試信息中的源端口和第二配置信息中的端口不 相同時(shí),將調(diào)試信息組織成Syslog報(bào)文發(fā)送給協(xié)議棧模塊,協(xié)議棧模塊將Syslog報(bào)文封裝成UDP報(bào)文發(fā)送給端口模塊,端口模塊將UDP報(bào)文發(fā)送給Syslog服務(wù)器所在的設(shè)備。
之后,Syslog客戶端模塊每隔預(yù)設(shè)時(shí)間向協(xié)議棧模塊發(fā)送試探報(bào)文,協(xié)議棧模塊將試探報(bào)文封裝成UDP報(bào)文發(fā)送給端口模塊,端口模塊將UDP報(bào)文發(fā)送給Syslog服務(wù)器所在的設(shè)備。
當(dāng)端口模塊未接收到試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文,或Syslog客戶端模塊判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源IP地址和第二配置信息中的IP地址不相同,或判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口不相同時(shí),向Syslog服務(wù)器所在的設(shè)備發(fā)送Syslog報(bào)文。
當(dāng)端口模塊接收到試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文,且Syslog客戶端模塊判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源IP地址和第二配置信息中的IP地址相同,且判斷出試探報(bào)文對應(yīng)的ICMP對端不可達(dá)報(bào)文中的源端口和第二配置信息中的端口相同時(shí),Syslog客戶端模塊繼續(xù)執(zhí)行不向Syslog服務(wù)器發(fā)送所述Syslog報(bào)文的步驟。
需要說明的是,以上所述的實(shí)施例僅是為了便于本領(lǐng)域的技術(shù)人員理解而已,并不用于限制本發(fā)明的保護(hù)范圍,在不脫離本發(fā)明的發(fā)明構(gòu)思的前提下,本領(lǐng)域技術(shù)人員對本發(fā)明所做出的任何顯而易見的替換和改進(jìn)等均在本發(fā)明的保護(hù)范圍之內(nèi)。