syslog介紹 CS架構來採集系統日誌

2021-09-22 06:38:43 字數 1564 閱讀 7720

unix/linux系統中的大部分日誌都是通過一種叫做syslog的機制產生和維護的。syslog是一種標準的協議,分為客戶端和伺服器端,客戶端是產生日誌訊息的一方,而伺服器端負責接收客戶端傳送來的日誌訊息,並做出儲存到特定的日誌檔案中或者其他方式的處理。

在linux中,常見的syslog伺服器端程式是syslogd守護程式。這個程式可以從三個地方接收日誌訊息:(1)unix域套接字 /dev/log;(2)udp埠514;(3)特殊的裝置/dev/klog(讀取核心發出的訊息)。相應地,產生日誌訊息的程式就需要通過上述三種方式寫入訊息,對於大多數程式而言就是向/dev/log這個套接字傳送日誌訊息。

在unix類作業系統上,syslog廣泛應用於系統日誌。syslog日誌訊息既可以記錄在本地檔案中,也可以通過網路傳送到接收syslog的伺服器。接收syslog的伺服器可以對多個裝置的syslog訊息進行統一的儲存,或者解析其中的內容做相應的處理。常見的應用場景是網路管理工具、安全管理系統、日誌審計系統。

完整的syslog日誌中包含產生日誌的程式模組(facility)、嚴重性(severity或 level)、時間、主機名或ip、程序名、程序id和正文。在unix類作業系統上,能夠按facility和severity的組合來決定什麼樣的日誌訊息是否需要記錄,記錄到什麼地方,是否需要傳送到乙個接收syslog的伺服器等。由於syslog簡單而靈活的特性,syslog不再僅限於 unix類主機的日誌記錄,任何需要記錄和傳送日誌的場景,都可能會使用syslog。

長期以來,沒有乙個標準來規範syslog的格式,導致syslog的格式是非常隨意的。最壞的情況下,根本就沒有任何格式,導致程式不能對syslog 訊息進行解析,只能將它看作是乙個字串。

在2023年定義的rfc3164中,描述了bsd syslog協議: 不過這個規範的很多內容都不是強制性的,常常是「建議」或者「約定」,也由於這個規範出的比較晚,很多裝置並不遵守或不完全遵守這個規範。接下來就介紹一 下這個規範。

約定傳送syslog的裝置為device,**syslog的裝置為relay,接收syslog的裝置為collector。relay本身也可以傳送自身的syslog給collector,這個時候它表現為乙個device。relay也可以只**部分接收到的syslog訊息,這個時候它同時表現為relay和collector。

syslog訊息傳送到collector的udp 514埠,不需要接收方應答,rfc3164建議 device 也使用514作為源埠。規定syslog訊息的udp報文不能超過1024位元組,並且全部由可列印的字元組成。完整的syslog訊息由3部分組成,分別是pri、header和msg。大部分syslog都包含pri和msg部分,而header可能沒有。下面是乙個syslog訊息: <30>oct 9 22:33:20 hlfedora auditd[1787]: the audit daemon is exiting. 其中「<30>」是pri部分,「oct 9 22:33:20 hlfedora」是header部分,「auditd[1787]: the audit daemon is exiting.」是msg部分。

syslog使用介紹

syslog在網路管理中的應用 syslog是一種工業標準的協議,可用來記錄裝置的日誌。在unix系統,路由器 交換機等網路裝置中,系統日誌 system log 記錄系統中任何時間發生的大小事件。管理者可以通過檢視系統記錄,隨時掌握系統狀況。unix的系統日誌是通過syslogd這個程序記錄系統有...

網路程式設計 C S架構,TCP IP介紹

什麼是c s架構?c指的是client 客戶端軟體 s指的是server 服務端軟體 應用軟體如何執行?客戶端軟體想要基於網路傳送一條訊息給服務端軟體,流程是 1 客戶端軟體產生資料,存放於客戶端軟體的記憶體中,然後呼叫介面將自己記憶體中的資料傳送 拷貝給作業系統記憶體 2 客戶端作業系統收到資料後...

CS架構與BS架構

cs架構 c s client server 基於客戶端 伺服器 cs架構的優點就是基於客戶機和伺服器模式,大部分的運算是在客戶機上執行,從而提高一定的效率,但是也因為他在客戶機上執行,所以要安裝客戶端,也導致了軟體維護和公升級時的不方便,需要程式設計師親自進行公升級配置。舉例 qq聊天軟體。以及眾...