是否可以将rsyslog输入路由到特定输出(标记,规则)?
我正在尝试在Docker中构建系统日志转发器设备,该设备会将UDP 514上收到的系统日志数据包转发到远程系统日志目标。我还想监视rsyslog容器,并希望仅将容器syslog发送到stdout,以便可以通过“ docker logs” API进行收集/查看。
我既不希望将本地syslog转发到远程服务器,也不希望将接收到的UDP syslog写入stdout。
我引用了https://github.com/jabenninghoff/rsyslog-forwarder,这是仅使用supervisor和rsyslogd进行的最低配置。
rsyslog.conf:
# local system logging, commented out for now as want to write to stdout, not remote syslog server
#module(load="imuxsock")
#input(type="imuxsock" Socket="/var/run/rsyslog/dev/log" CreatePath="on")
# run UDP syslog on syslog port 514
module(load="imudp")
input(type="imudp" port="514")
# configure outputs
#forward to remote syslog server
*.* action(type="omfwd" target="my-remote-server.com" port="514" protocol="udp")
# default is to send all output to stdout, but want only localfiles - not sure how to do this
#$ModLoad omstdout.so
#*.* :omstdout:
我可以将所有输入路由到stdout,或者将所有输入路由到远程syslog服务器,但是我不能将每个输入路由到特定的输出。
我已经参考了数据并花了很多时间进行谷歌搜索,但是我不知道如何使用配置规则(模板/标签)将rsyslog输入与输出绑定。