一種嵌入式網絡日誌收集方法及系統與流程
2023-05-24 12:56:56 1

本發明涉及嵌入式設備領域,尤其涉及一種嵌入式網絡日誌收集方法及系統。
背景技術:
隨著物聯網的發展,越來越多的嵌入式設備投入使用,嵌入式設備以低功耗、低成本、高穩定性深入人們的心中。
目前,隨著嵌入式設備智能化越來越高,系統越來越複雜,當出現問題時卻難以定位,由於嵌入式設備低成本,常使用flash作為存儲手段,flash具有存儲空間小,讀寫次數有限及引起壞塊等缺點,使得嵌入式出現設備無日誌、日誌極少或日誌方式各式各樣等問題,維護困難。
因此,提供一種能夠有效解決當前嵌入式設備無日誌、日誌極少或日誌方式各式各樣等問題的日誌收集方法及系統是本領域技術人員需要解決的技術問題。
技術實現要素:
本發明實施例提供了一種嵌入式網絡日誌收集方法及系統,解決了大量嵌入式設備無日誌或少日誌的情況,方便了嵌入式設備出現問題時進行問題定位,提供設備的穩定性,特別是物聯網及家庭智能設備普及後,擺脫設備越多,問題越多的情景。
本發明實施例提供了一種嵌入式網絡日誌收集方法,包括:
嵌入式系統端的應用程式通過系統函數將應用程式日誌發送至嵌入式系統端的syslogd服務;
嵌入式系統端的內核日誌收集服務klogd在獲取到內核發送的內核日誌後,通過系統函數將內核日誌發送至嵌入式系統端的syslogd服務;
嵌入式系統端的syslogd服務根據預設配置通過syslog協議將應用程式日誌和內核日誌發送至伺服器端的syslogd服務或開源程序。
優選地,嵌入式系統端的系統為linux系統。
優選地,伺服器端的系統為windows系統。
優選地,開源程序為tftpd32.exe。
優選地,本發明實施例提供的一種嵌入式網絡日誌收集方法還包括:伺服器端根據應用程式日誌獲取到與應用程式日誌對應的設備編號、應用程式日誌發出時間、應用程式日誌等級;
或/和
伺服器端根據應用程式日誌獲取到與內核日誌對應的設備編號、內核日誌發出時間、內核日誌等級。
優選地,本發明實施例還提供了一種嵌入式網絡日誌收集系統,包括:嵌入式系統端和伺服器端;
嵌入式系統端和伺服器端通信連接;
嵌入式系統端包括:應用程式、內核、syslogd服務和內核日誌收集服務klogd;
應用程式和syslogd服務通信連接;
內核和內核日誌收集服務klogd通信連接;
內核日誌收集服務klogd和syslogd服務連接;
嵌入式系統端的應用程式用於通過系統函數將應用程式日誌發送至嵌入式系統端的syslogd服務;
嵌入式系統端的內核日誌收集服務klogd用於在獲取到內核發送的內核日誌後,通過系統函數將內核日誌發送至嵌入式系統端的syslogd服務;
嵌入式系統端的syslogd服務用於根據預設配置通過syslog協議將應用程式日誌和內核日誌發送至伺服器端的syslogd服務或開源程序。
優選地,嵌入式系統端的系統為linux系統。
優選地,伺服器端的系統為windows系統。
優選地,開源程序為tftpd32.exe。
優選地,伺服器端用於根據應用程式日誌獲取到與應用程式日誌對應的設備編號、應用程式日誌發出時間、應用程式日誌等級;
伺服器端還用於根據應用程式日誌獲取到與內核日誌對應的設備編號、內核日誌發出時間、內核日誌等級。
從以上技術方案可以看出,本發明實施例具有以下優點:
本發明實施例提供了一種嵌入式網絡日誌收集方法及系統,其中,該嵌入式網絡日誌收集方法包括:嵌入式系統端的應用程式通過系統函數將應用程式日誌發送至嵌入式系統端的syslogd服務;嵌入式系統端的內核日誌收集服務klogd在獲取到內核發送的內核日誌後,通過系統函數將內核日誌發送至嵌入式系統端的syslogd服務;嵌入式系統端的syslogd服務根據預設配置通過syslog協議將應用程式日誌和內核日誌發送至伺服器端的syslogd服務或開源程序。本發明實施例提出一種統一的、用戶都可收集日誌的方法進行日誌收集,當出現問題時,用戶只需把日誌發回設備製造商及可定位問題。在把嵌入式日誌收集至伺服器系統進行統一後,解決了大量嵌入式設備無日誌或少日誌的情況,方便了嵌入式設備出現問題時進行問題定位,提供設備的穩定性,特別是物聯網及家庭智能設備普及後,擺脫設備越多,問題越多的情景。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其它的附圖。
圖1為本發明實施例提供的一種嵌入式網絡日誌收集方法的流程示意圖;
圖2為本發明實施例提供的一種嵌入式網絡日誌收集系統的結構示意圖;
圖3為本發明實施例提供的一種嵌入式網絡日誌收集方法的應用例示意圖;
圖4(a)、圖4(b)為伺服器端的tftpd32.exe的配置示意圖;
圖5為收集到的日誌示意圖。
具體實施方式
本發明實施例提供了一種嵌入式網絡日誌收集方法及系統,解決了大量嵌入式設備無日誌或少日誌的情況,方便了嵌入式設備出現問題時進行問題定位,提供設備的穩定性,特別是物聯網及家庭智能設備普及後,擺脫設備越多,問題越多的情景。
為使得本發明的發明目的、特徵、優點能夠更加的明顯和易懂,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發明一部分實施例,而非全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬於本發明保護的範圍。
請參閱圖1,本發明實施例提供的一種嵌入式網絡日誌收集方法的一個實施例,包括:
101、嵌入式系統端的應用程式通過系統函數將應用程式日誌發送至嵌入式系統端的syslogd服務;
102、嵌入式系統端的內核日誌收集服務klogd在獲取到內核發送的內核日誌後,通過系統函數將內核日誌發送至嵌入式系統端的syslogd服務;
103、嵌入式系統端的syslogd服務根據預設配置通過syslog協議將應用程式日誌和內核日誌發送至伺服器端的syslogd服務或開源程序。
本發明實施例基於syslog協議,提出一種統一的、用戶都可收集日誌的方法進行日誌收集,當出現問題時,用戶只需把日誌發回設備製造商及可定位問題。
本發明實施例提供的一種嵌入式網絡日誌收集方法的另一個實施例,包括:
a、嵌入式系統端的應用程式通過系統函數將應用程式日誌發送至嵌入式系統端的syslogd服務;
嵌入式系統端的應用程式通過系統函數將應用程式日誌發送至嵌入式系統端的syslogd服務,需要說明的是,此處嵌入式系統端的應用程式有多個,嵌入式系統端為嵌入式設備。具體的,嵌入式系統端的系統為linux系統。
b、嵌入式系統端的內核日誌收集服務klogd在獲取到內核發送的內核日誌後,通過系統函數將內核日誌發送至嵌入式系統端的syslogd服務;
嵌入式系統端的內核日誌收集服務klogd在獲取到內核發送的內核日誌後,通過系統函數將內核日誌發送至嵌入式系統端的syslogd服務,需要說明的是,系統函數具體為syslog。
c、嵌入式系統端的syslogd服務根據預設配置通過syslog協議將應用程式日誌和內核日誌發送至伺服器端的syslogd服務或開源程序。
嵌入式系統端的syslogd服務根據預設配置通過syslog協議將應用程式日誌和內核日誌發送至伺服器端的syslogd服務或開源程序。具體的,伺服器端的系統為windows系統,開源程序為tftpd32.exe。
進一步地,伺服器端的syslogd服務或開源程序在獲取到應用程式日誌和內核日誌後,伺服器端根據應用程式日誌獲取到與應用程式日誌對應的設備編號、應用程式日誌發出時間、應用程式日誌等級;
或/和
伺服器端根據應用程式日誌獲取到與內核日誌對應的設備編號、內核日誌發出時間、內核日誌等級。
需要說明的是,此處與應用程式日誌對應的設備編號用於確認應用程式日誌來自哪一臺設備,與內核日誌對應的設備編號也用於確認內核日誌來自哪一臺設備。
上面是對一種嵌入式網絡日誌收集方法進行的詳細說明,為便於理解,下面將以一具體應用場景對一種嵌入式網絡日誌收集方法的應用進行說明,請參閱圖3至圖5,應用例包括:
(1)syslogd是一個開源的日誌服務,把它移植到嵌入式設備中,收集內核日誌klogd和應用程式發來的日誌,還可以根據配置把日誌保存和發送至指定的外部伺服器。如:syslogd-l-s32000-m0-o/mnt/log/messages-l7-r192.168.10.10,-l表示既把日誌保存本地,並把日誌發送到伺服器192.168.10.10,-s表示本地最多保存32000kb的日誌。
(2)一個嵌入式linux系統中包含內核和多個應用程式,為了能收集到內核和多個應用程式的日誌,嵌入式系統中運行上述服務syslogd,該服務可以把該系統收集到的日誌根據配置通過syslog協議發送到系統外。為了能讓syslogd服務收到所有應用程式的日誌,應用程式可使用linux系統函數syslog把日誌發送給syslogd。同樣,為了收集到內核的日誌,需要運行內核日誌收集服務klogd,該服務把收集到的日誌通過系統函數syslog發送到syslogd,如圖3所示。
(3)為了收集所有嵌入式設備發出來的日誌,必須架設一個支持syslog協議的服務程序,由於普遍使用的windows系統,可使用開源程序tftpd32.exe,按圖4(a)、圖4(b)配置後,日誌收集如圖5,如圖5所示,服務收集到的日誌表明了日誌來自哪一臺設備,發出的時間及日誌等級,這樣就解決了大量嵌入式設備日誌收集的問題了。
請參閱圖2,本發明實施例提供的一種嵌入式網絡日誌收集系統的一個實施例,包括:
嵌入式系統端和伺服器端;
嵌入式系統端和伺服器端通信連接;
嵌入式系統端包括:應用程式、內核、syslogd服務和內核日誌收集服務klogd;
應用程式和syslogd服務通信連接;
內核和內核日誌收集服務klogd通信連接;
內核日誌收集服務klogd和syslogd服務連接;
嵌入式系統端的應用程式用於通過系統函數將應用程式日誌發送至嵌入式系統端的syslogd服務;
嵌入式系統端的內核日誌收集服務klogd用於在獲取到內核發送的內核日誌後,通過系統函數將內核日誌發送至嵌入式系統端的syslogd服務;
嵌入式系統端的syslogd服務用於根據預設配置通過syslog協議將應用程式日誌和內核日誌發送至伺服器端的syslogd服務或開源程序。
進一步地,嵌入式系統端的系統為linux系統。
進一步地,伺服器端的系統為windows系統。
進一步地,開源程序為tftpd32.exe。
進一步地,伺服器端用於根據應用程式日誌獲取到與應用程式日誌對應的設備編號、應用程式日誌發出時間、應用程式日誌等級;
伺服器端還用於根據應用程式日誌獲取到與內核日誌對應的設備編號、內核日誌發出時間、內核日誌等級。
以上所述,以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。