如何通过 TCP 从 Docker 中的 rsyslog 传输一些日志?

如何通过 TCP 从 Docker 中的 rsyslog 传输一些日志?

我需要一件非常简单的事情(用于由 协调的大型系统的集成测试docker-compose):设置一个内部Debian基础Docker图像rsyslog,以便在运行时rsyslog将一些syslog消息发送TCP到另一台机器(容器)。我该怎么做?

我知道Dockerfile,问题是关于rsyslog配置以及如何生成一些系统日志消息?理想情况下,如果可以预定义它们(以便在集成测试的另一端匹配它们)。

我刚刚尝试添加以下行:

*.* @@remote-machine

/etc/rsyslog.conf在我的图像末尾Docker,但显然我没有收到任何消息。配置错误吗?这里是否假定了 TCP 端口?或者当我使用运行此容器时514没有可用的消息?syslogdocker-compose

我的Dockerfile样子是:

FROM debian:10.4

RUN apt-get update && apt-get -y upgrade
RUN apt-get -y install rsyslog

# ... modify /etc/rsyslog.conf :
#   - append the *.* @@remote-machine line (see above)
#   - disable imklog which is causing errors

ENTRYPOINT ["/etc/init.d/rsyslog"]
CMD ["start"]

谢谢!

答案1

你可以使用该logger命令创建任意系统日志消息。例如:

logger --server 172.17.0.2 --priority local7.info --tag TEST Sample log message

相关内容