Linux

在 rsyslog(客戶端)和 syslogd(伺服器)之間發送日誌

  • August 11, 2021

我有兩台機器。第一個執行嵌入式 Linux,第二個執行 FreeBSD。裝有 Linux 的機器已經rsyslog並且需要是 syslog 客戶端。另一個已經安裝syslogd,需要作為伺服器。裝有 FreeBSD 的機器,syslogd不會將遠端日誌寫入文件。rsyslog當我只是為了在我的 Linux 機器上進行測試而更改時sysklogd,遠端日誌記錄正在工作。問題是我必須rsyslog在客戶端。什麼會導致問題?是否rsyslogsyslogd彼此不相容?據我所知,日誌消息格式是相同的。

當我 tcpdump -enpi <interface>在 FreeBSD 上執行時,我看到了 syslog 消息

Linux MAC > FreeBSD MAC, ethertype IPv4 (0x0800), length 94: client_IP.35398 > server_IP.514: SYSLOG user.notice, length: 52

在我rsyslog.conf在 Linux(客戶端)上的文件中,我添加了以下行:

*.* @server_IP

在我syslog.conf在 FreeBSD(伺服器)上的文件中,我添加了以下幾行:

+client_IP
*.*  /path/to/client/logs 

rc.confFreeBSD 上的文件中,我添加了以下幾行:

syslogd_enable="YES" 
syslogd_flags="-a client_IP -vv" 

-a client_IP從中刪除syslogd_flagsrc.conf問題可能是客戶端埠號。如果未指定埠syslogd_flags,則假定為 514,但我的日誌從另一個日誌中流出。另一種解決方案是將所有埠添加到客戶端 IP 地址-a client_IP:*

引用自:https://unix.stackexchange.com/questions/664136