linux系統中大部分的日誌是透過一種syslog機制產生和維護。 syslog是一種協議,分為客戶端和伺服器端。客戶端產生日誌,伺服器端接收日誌。並對接收的日誌做出儲存到檔案或其他方式的處理。
在linux中,常見syslog伺服器端程式是syslogd守護程式。這個程式從三個地方接收日誌
【1】: unix域套接字/dev/log
【2】:udp連接埠514
## # 【2】:udp埠514## 】特殊的裝置/dev/klog
對應的,產生日誌的訊息的程式需要透過上述三種方式寫入訊息。對於大多數程式而言就是向/dev/log這個套接字發送日誌訊息。
在unix作業系統上,syslog廣泛用於系統日誌。 syslog日誌訊息既可以記錄在本機檔案中,也可以透過網路傳送到syslog的伺服器。接收syslog的伺服器可以對多個裝置的syslog訊息進行統一儲存。或解析其中的內容做對應的處理。常見的應用場景是網路管理工具,安全管理系統,日誌管理系統。完整的syslog日誌包含
【1】:產生日誌的程式模組
【2】:嚴重性
# 4】:主機名稱或IP 【5】:進程名稱 6】:進程ID## # 年定義的RFC3164中,描述了BSD syslog協議:http://www.ietf.org/rfc/rfc3164.txt,不過這個規範的很多內容都不是強制性的,常常是“建議”或者“約定”,也由於這個規範出的比較晚,很多設備並不遵守或不完全遵守這個規範。接下來就介紹一 下這個規範。
約定發送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服務端與用戶端,實作日誌轉送
環境:ubantu16.04 1、服務端<1> 修改/etc/default/rsyslog
#
> SYSLOGD_OPTIONS為"-r -x -m 0"-r表示下的訊息## -m 0表示時間戳標記間隔,
若指定只接受某或多個ip過來的日誌,例"-s 168.1.1.1:168"##1.2168"
> 修改/etc/rsyslog.conf
取消註解:# 在檔案末端新增這兩個句子 修改/etc/syslog. 新增註解## # 在結尾增加這兩句 3、服務重啟 4、測試 在用戶端執行下方程式碼,可在服務端/var/log/mylog中看到日誌已存入服務端$ModLoad imudp.so
$UDPServerRun 514
syslog.info;syslog.!err;syslog.!crit;syslog.!alert /var/log/mylog #info信息记录到日志服务器的/var/log/mylog中
syslog.err /var/log/testerror #error信息记录到日志服务器的/var/log/testerror中 2 、客户端
$ModLoad imudp.so
$UDPServerRun 514
以上是linux中怎麼配置syslog實作日誌轉發的詳細內容。更多資訊請關注PHP中文網其他相關文章!