我正在调试日志记录 SaaS 解决方案的一个奇怪问题。我们似乎正在复制发送到 SaaS 的日志。日志通过 rsyslog 转发器通过 TLS 发送。我正在尝试查看是否可以通过运行远程 rsyslog 服务器并将实例的日志转发到该服务器进行监控来重现该问题。我们将日志来源服务器称为guineapig
远程 rsyslog 服务器watcher
。
watcher
使用如下配置配置为侦听 UDP 端口 514:
$ModLoad imudp.so
$UDPServerRun 514
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# log everything to the /var/log/remotesyslog file
*.* /var/log/remotesyslog
guineapig
配置为watcher
使用其 IP 地址转发所有内容:
$ModLoad imuxsock
$ModLoad imjournal
$ModLoad imudp.so
$UDPServerRun 514
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$IMJournalStateFile imjournal.state
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.*
/var/log/boot.log
里面:/etc/rsyslog.d/22-remote-rsyslog.conf
guineapig
# forward everything over UDP to watcher
*.* @@10.0.1.1:514
不幸的是,当我重新启动 SystemD rsyslog 服务并尝试触发 上的日志消息时guineapig
,我没有看到它出现在 上的文件中watcher
:
user@guineapig ~$ logger "please work"
# doesn't work
但是,如果我直接告诉logger
去哪里,日志行会显示:
user@guineapig ~$ logger -n 10.0.1.1 "please work for real"
# works
我在浏览 rsyslog 的文档时遇到了非常困难的时间,但由于某种原因,我的日志没有正确转发到watcher
.
我的配置有明显的问题吗guineapig
?两个系统都运行在 CentOS 7 上。
答案1
如前所述这里它似乎rsyslog
使用与 TCP 不同的语法来通过 UDP 转发。
对于 TCP 转发:
*.* @@10.0.1.1:514
对于UDP转发:
*.* @10.0.1.1:514
该更改修复了我的日志记录设置。
答案2
*.* action(type="omfwd" target="10.0.1.1:514" port="514" protocol="tcp")
来自文档:
这是最简单的转发操作:
*.* 动作(类型=“omfwd” 目标=“192.0.2.1” 端口=“10514” 协议=“tcp”)
它相当于以下过时的旧格式行:
*.* @@192.0.2.1:10514 # 不要再使用这个!