Linux
在 rsyslog(客戶端)和 syslogd(伺服器)之間發送日誌
我有兩台機器。第一個執行嵌入式 Linux,第二個執行 FreeBSD。裝有 Linux 的機器已經
rsyslog
並且需要是 syslog 客戶端。另一個已經安裝syslogd
,需要作為伺服器。裝有 FreeBSD 的機器,syslogd
不會將遠端日誌寫入文件。rsyslog
當我只是為了在我的 Linux 機器上進行測試而更改時sysklogd
,遠端日誌記錄正在工作。問題是我必須rsyslog
在客戶端。什麼會導致問題?是否rsyslog
和syslogd
彼此不相容?據我所知,日誌消息格式是相同的。當我
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.conf
FreeBSD 上的文件中,我添加了以下幾行:syslogd_enable="YES" syslogd_flags="-a client_IP -vv"
我
-a client_IP
從中刪除syslogd_flags
。rc.conf
問題可能是客戶端埠號。如果未指定埠syslogd_flags
,則假定為 514,但我的日誌從另一個日誌中流出。另一種解決方案是將所有埠添加到客戶端 IP 地址-a client_IP:*
。