在rsyslog(客户端)和syslogd(服务器)之间发送日志

在rsyslog(客户端)和syslogd(服务器)之间发送日志

我有两台机器。第一个运行嵌入式 Linux,第二个运行 FreeBSD。安装 Linux 的机器已经rsyslog并且需要成为 syslog 客户端。另一个已经安装syslogd并且需要成为服务器。使用 FreeBSD 的机器syslogd不会将远程日志写入文件。当我只是为了测试而更改rsyslogsysklogd在我的 Linux 机器上时,远程日志记录正在工作。问题是我必须rsyslog在客户端上。什么可能导致问题?是rsyslogsyslogd不相容吗?据我所知,日志消息格式是相同的。

当我 tcpdump -enpi <interface>在 FreeBSD 上运行时,我看到系统日志消息

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

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

*.* @server_IP

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

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

在我的rc.confFreeBSD 文件中添加了以下几行:

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

答案1

-a client_IPsyslogd_flagsin 中删除了rc.conf。问题可能是客户端端口号。如果未指定端口,syslogd_flags则假定为 514,但我的日志是从另一个端口发出的。另一种解决方案是将所有端口添加到客户端 IP 地址-a client_IP:*

相关内容