我有两台机器。第一个运行嵌入式 Linux,第二个运行 FreeBSD。安装 Linux 的机器已经rsyslog
并且需要成为 syslog 客户端。另一个已经安装syslogd
并且需要成为服务器。使用 FreeBSD 的机器syslogd
不会将远程日志写入文件。当我只是为了测试而更改rsyslog
为sysklogd
在我的 Linux 机器上时,远程日志记录正在工作。问题是我必须rsyslog
在客户端上。什么可能导致问题?是rsyslog
和syslogd
不相容吗?据我所知,日志消息格式是相同的。
当我
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.conf
FreeBSD 文件中添加了以下几行:
syslogd_enable="YES"
syslogd_flags="-a client_IP -vv"
答案1
我-a client_IP
从syslogd_flags
in 中删除了rc.conf
。问题可能是客户端端口号。如果未指定端口,syslogd_flags
则假定为 514,但我的日志是从另一个端口发出的。另一种解决方案是将所有端口添加到客户端 IP 地址-a client_IP:*
。