使用Rsyslog 建置log伺服器接收遠端log紀錄-Server
在Oracle Linux 9 使用Rsyslog 建置log伺服器,來接收接收遠端設備log紀錄。
Rsyslog是經過 omfwd 模組提供透過 UDP 或 TCP 的轉發。將使用 TCP 協議進行傳輸,確保資訊傳輸的可靠性。Port 先使用預設 514。
安裝環境
Server主機:Oracle Linux 9.4Rsyslog 8.2310
遠端主機:Oracle Linux 8.4
Rsyslog 8.2310
設定過程參考Redhat9資料
Rsyslog 8.2310
設定過程
安裝過程先關閉firewall避免造成影嚮,後續再進行相關設定。設定過程參考Redhat9資料
Server主機設定
不修改/etc/rsyslog.conf,在/etc/rsyslog.d/目錄新建一個文件/etc/rsyslog.d/remotelog.conf/etc/rsyslog.d/remotelog.conf
---
template(name="TmplAuthpriv" type="list") {
constant(value="/var/log/remote/auth/")
property(name="hostname")
constant(value="/")
property(name="programname" SecurePath="replace")
constant(value=".log")
}
template(name="TmplMsg" type="list") {
constant(value="/var/log/remote/msg/")
property(name="hostname")
constant(value="/")
property(name="programname" SecurePath="replace")
constant(value=".log")
}
module(load="imtcp")
ruleset(name="remote1"){
authpriv.* action(type="omfile" DynaFile="TmplAuthpriv")
*.info;mail.none;authpriv.none;cron.none
action(type="omfile" DynaFile="TmplMsg")
}
input(type="imtcp" port="514" ruleset="remote1")
---
template(name="TmplAuthpriv" type="list") {
constant(value="/var/log/remote/auth/")
property(name="hostname")
constant(value="/")
property(name="programname" SecurePath="replace")
constant(value=".log")
}
template(name="TmplMsg" type="list") {
constant(value="/var/log/remote/msg/")
property(name="hostname")
constant(value="/")
property(name="programname" SecurePath="replace")
constant(value=".log")
}
module(load="imtcp")
ruleset(name="remote1"){
authpriv.* action(type="omfile" DynaFile="TmplAuthpriv")
*.info;mail.none;authpriv.none;cron.none
action(type="omfile" DynaFile="TmplMsg")
}
input(type="imtcp" port="514" ruleset="remote1")
---
新建template 名稱為TmplAuthpriv,類型為list
模板的內容如下:
constant(value="/var/log/remote/auth/"):Log文件的路徑前綴。
property(name="hostname"):將傳送Log的主機名稱作為路徑的一部分。
模板的內容如下:
constant(value="/var/log/remote/auth/"):Log文件的路徑前綴。
property(name="hostname"):將傳送Log的主機名稱作為路徑的一部分。
constant(value="/"):添加一個斜杠作為分隔符。
property(name="programname" SecurePath="replace"):將Log相關的程序名作為路徑的一部分,並用安全路徑替換任何潛在的危險字符。
constant(value=".log"):新增加為副檔名為.log的檔案。
新建template 名稱為TmplMsg,類型為list
模板的內容如下:
constant(value="/var/log/remote/msg/"):Log文件的路徑前綴。
property(name="hostname"):將傳送Log的主機名作為路徑的一部分。
constant(value="/"):添加一個斜杠作為分隔符。
property(name="programname" SecurePath="replace"):將Log相關的程序名作為路徑的一部分,並用安全路徑替換任何潛在的危險字符。
constant(value=".log"):新增加為副檔名為.log的檔案。
property(name="programname" SecurePath="replace"):將Log相關的程序名作為路徑的一部分,並用安全路徑替換任何潛在的危險字符。
constant(value=".log"):新增加為副檔名為.log的檔案。
新建template 名稱為TmplMsg,類型為list
模板的內容如下:
constant(value="/var/log/remote/msg/"):Log文件的路徑前綴。
property(name="hostname"):將傳送Log的主機名作為路徑的一部分。
constant(value="/"):添加一個斜杠作為分隔符。
property(name="programname" SecurePath="replace"):將Log相關的程序名作為路徑的一部分,並用安全路徑替換任何潛在的危險字符。
constant(value=".log"):新增加為副檔名為.log的檔案。
載入imtcp模組,讓rsyslog使用TCP協議接收遠程日誌。
新增ruleset 名稱為remote1,用於處理接收到的日誌。
authpriv.* 使用omfile依TmplAuthpriv 動態生成的文件處理。
*.info;mail.none;authpriv.none;cron.none 使用omfile依 TmplMsg 動態生成的文件處理
設用輸入使用Tcp port 514,並使用remote1規則,處理接收到的日誌消息。
測試rsyslog設定,如果沒有錯誤產生,即設定正確。
# rsyslogd -N 1
檢查rsyslog服務運行狀態並重新啟動
# systemctl status rsyslog
# systemctl status rsyslog
重新啟動rsyslog服務。
# systemctl restart rsyslog
檢查rsyslog服務運行狀態
# systemctl status rsyslog
# systemctl status rsyslog
參考資料:
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。