是否可以在 Docker 中运行 syslog 并将其作为主机的 syslog 守护进程公开给主机?

Posted

技术标签:

【中文标题】是否可以在 Docker 中运行 syslog 并将其作为主机的 syslog 守护进程公开给主机?【英文标题】:Is it possible run syslog inside Docker and expose that to the host as host's syslog daemon? 【发布时间】:2016-02-18 11:08:42 【问题描述】:

我正在尝试在 Docker 中运行 syslog,以便它可以访问容器的 DNS 配置。

【问题讨论】:

【参考方案1】:

是的。我现在正在这样做,因为我有一个容器化的 ELK(Elasticsearch/Logstash/Kibana)。

我的 logstash 在端口 514 上运行一个监听器,用于 syslog 流量*,它转发给 ELK。

嗯,更准确地说 - 我正在运行一个 haproxy 实例,我正在使用 confd 和 etcd 将它重定向到我的 syslog 容器所在的任何位置,但原则是不变的。

我的主人有

*.* @@localhost

在他们的rsyslog.conf

而且效果很好。 (我也可以从我的容器记录到这个 syslogd)

【讨论】:

【参考方案2】:

我觉得这有点老了,但它可以帮助别人!

我认为最好的方法是使用 docker 驱动程序将日志发送到 syslog,而不是在里面运行 syslog。 docker 的最佳实践之一是在容器内只运行一个进程。

如果您想让一个 docker 在内部运行 syslog 并将所有日志从其他容器转发到此容器,这将是个好主意,因为您将分离关注点并且还可以扩展日志容器。

这是一个容器:enter link description here

【讨论】:

以上是关于是否可以在 Docker 中运行 syslog 并将其作为主机的 syslog 守护进程公开给主机?的主要内容,如果未能解决你的问题,请参考以下文章

docker如何配置syslog作为log输出。

无法登录到 docker 容器 syslog 文件

Docker-如何使用 syslog 在主机上记录日志?

使用 docker-compose 将 json 写入 syslog

Docker 守护进程写入 syslog 但为啥

docker log driver