顯示具有 rsyslog 標籤的文章。 顯示所有文章
顯示具有 rsyslog 標籤的文章。 顯示所有文章

2024年6月23日 星期日

Use Rsyslog receive remote logging-remote setup

使用Rsyslog 建置log伺服器接收遠端log紀錄-remote

 
在Oracle Linux 8 使用Rsyslog 發送log紀錄至已使用Oracle Linux 9 建置的log 伺服器
Rsyslog是經過 omfwd 模組提供透過 UDP 或 TCP 的轉發。將使用 TCP 協議進行傳輸,確保資訊傳輸的可靠性。

安裝環境

Server主機:Oracle Linux 9.4  
Rsyslog 8.2310
遠端主機:Oracle Linux 8.4
Rsyslog 8.2102
05-remote os

設定過程

安裝過程先關閉firewall避免造成影嚮,後續再進行相關設定。
設定過程參考Redhat9資料

遠端主機設定

在/etc/rsyslog.d/目錄新建文件10-remotelog.conf。
06-10-remotelog.conf

10-remotelog.conf
---
*.* action(type="omfwd"
      queue.type="linkedlist"
      queue.filename="example_fwd"
      action.resumeRetryCount="-1"
      queue.saveOnShutdown="on"
      target="ol9-1" port="514" protocol="tcp"
     )
---
*.* action(type="omfwd"
    *.*:表示主機所有Log訊息傳送,使用的是 omfwd(遠程轉發)模組運作。
queue.type="linkedlist"
    設置queue類型為 linkedlist。使用linkedlist來管理Log訊息的queue。
queue.filename="example_fwd"
   設置queue的文件名為example_fwd。文件用於保存queue的數據,以便在系統重啟或 rsyslog 重啟時能夠恢復queue。
action.resumeRetryCount="-1"
    設置重試次數為 -1,表示在連接中斷後無限次重試,直到連接恢復。
queue.saveOnShutdown="on"
    設置在系統或 rsyslog 關閉時保存queue狀態。這樣可以確保在系統重新啟動後,queue中的Log訊息不會丟失。
ol9-1"
    設置遠程主機為ol9-1。Log訊息將被轉發到這台主機。主機名稱可以用dns或在/etc/hosts設定。
port="514"
    設置遠程主機的端口號為 514。Log訊息將被發送到這個端口。
protocol="tcp"
    設置傳輸協議為 TCP,確保日誌消息能夠可靠地傳輸到遠程主機。

測試rsyslog設定,如果沒有錯誤產生,即設定正確。
# rsyslogd -N 1
檢查rsyslog服務運行狀態並重新啟動
# systemctl status rsyslog
重新啟動rsyslog服務。
# systemctl restart rsyslog
07-remote restart

結果檢查

在遠端主機的/var/log/remote/msg/可以看到依服務分別存放於服務名稱的檔案。
10-test

也可以單獨測試
logger test
09-logger test

因為遠端主機是使用bee01帳號登入,再切換為root,所以測試時訊息是紀錄在bee01.log


參考資料:

2024年6月22日 星期六

Use Rsyslog receive remote logging-server setup

使用Rsyslog 建置log伺服器接收遠端log紀錄-Server

 
在Oracle Linux 9 使用Rsyslog 建置log伺服器,來接收接收遠端設備log紀錄。
Rsyslog是經過 omfwd 模組提供透過 UDP 或 TCP 的轉發。將使用 TCP 協議進行傳輸,確保資訊傳輸的可靠性。Port 先使用預設 514。

安裝環境

Server主機:Oracle Linux 9.4  
Rsyslog 8.2310
01-os
遠端主機:Oracle Linux 8.4
Rsyslog 8.2310

設定過程

安裝過程先關閉firewall避免造成影嚮,後續再進行相關設定。
設定過程參考Redhat9資料

Server主機設定

不修改/etc/rsyslog.conf,在/etc/rsyslog.d/目錄新建一個文件/etc/rsyslog.d/remotelog.conf
02-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 名稱為TmplAuthpriv,類型為list
模板的內容如下:
    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的檔案。

載入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

03-configtest

檢查rsyslog服務運行狀態並重新啟動
# systemctl status rsyslog

重新啟動rsyslog服務。
# systemctl restart rsyslog

檢查rsyslog服務運行狀態
# systemctl status rsyslog
04-systemctl restart rsyslog




參考資料: