读取发送到远程服务器的 syslog-ng 日志

读取发送到远程服务器的 syslog-ng 日志

我有一个 Docker 容器,它将 syslog 日志发送到 logentries.com。这工作正常,但当 logentries 出现故障或延迟时,我希望有一种方法来读取容器内实时生成的日志。

我知道我可以将日志写入文件,但我不想这样做,因为我很少需要它们,而且由于它在 Docker 内部,所以存储是短暂的。

理想情况下,是否有某种方式可以读取由 syslog-ng 处理的日志,也许通过 /dev/log 套接字?

谢谢!

答案1

我将使用带有模板文件名的文件目标和overwrite-if-older() 选项。这样,您便可以仅存储一周或一天的日志。

您可以使用 usertty 目标,但据我所知,docker 中没有可以连接的控制台,而且 usertty 在 syslog-ng 中可能会很慢(如果您的主机上没有那么多日志,这可能不是问题)。

第三个选项是使用 syslog-ng 的磁盘缓冲区,这样如果 logentries 无法访问,syslog-ng 就会将日志存储在磁盘上,并在重新启动时发送它们。但是,磁盘缓冲区仅在尚未发布的 syslog-ng 3.8 中可用(但您可以从源代码编译开发版本GitHub

问候,罗伯特·费凯特

相关内容