【发布时间】:2019-12-12 06:46:04
【问题描述】:
假设我们有一个记录到 Logstash 的 Kubernetes 集群(在生产中)。
我们希望将特定的日志段发送到我们的远程 Splunk 机器 (VM)。
设计是添加Splunk forwarder,它将收集日志并将其转发。
我们可以只运行 splunk forwarder in a docker container 并公开它在 k8s 集群内有一个服务。
但我希望将日志收集器与 Splunk 转发器分离,并在与 Splunk 转发器共享卷的 sidecar 容器中运行更轻量级的日志收集器,例如 Rsyslog 或 Syslog-ng (或将来可能取代它的任何其他货运代理)。
在寻找解决方案时,我发现一些项目(下面列出)似乎还没有准备好生产。
日志收集器的解耦对我来说似乎是一种微不足道的设计模式,但由于缺乏稳定的官方解决方案,我开始怀疑这是否有原因。
另一方面,可能更现代(更轻量级)的解决方案(如 fluentd)接管了 Syslog 旧版解决方案。
有什么想法吗?
Rsyslog-docker 项目:
https://github.com/rsyslog/rsyslog-docker
https://github.com/jumanjihouse/docker-rsyslog
https://github.com/deoren/rsyslog-docker
https://github.com/camptocamp/docker-rsyslog-bin/blob/master/Dockerfile
https://github.com/megastef/rsyslog-logsene
Syslog-ng-docker 项目:
【问题讨论】:
-
syslog-ng 可以使用其 HTTP 驱动程序将日志直接发送到 Splunk HEC:syslog-ng.com/community/b/blog/posts/sending-logs-splunk-http 一些提示:syslog-ng.com/community/b/blog/posts/…
-
感谢@MrAnno,但我的主要问题是如何在容器中运行 Syslog-ng(生产就绪解决方案)。
标签: docker logging syslog rsyslog syslog-ng