使用 stdout 或 stderr 作为流利的来源?
Using stdout or stderr as a fluentd source?
我目前在 Kubernetes 中设置了一个 php-fpm 容器来输出错误消息、异常……到标准错误,我想知道如何使用这个容器的输出作为 source/input 表示流利。
正在读取日志文件的输出并使用 f.e。 tail 作为输入插件,在这种情况下不是一个选项,所以我正在寻找不同的解决方案。
Docker 将您的 stdout/stderr 日志写入 /var/lib/docker/containers
并且 Kubernetes 将此目录符号链接到 /var/log/containers
.
在Kubernetes的世界里,访问其他容器日志的接口只有这个目录,不能直接访问他们的stdout或者stderr。
查看有关部署到 Kubernetes 的 Fluentd 文档:https://docs.fluentd.org/container-deployment/kubernetes
在 DaemonSet 清单上,您可以看到 /var/log
在 Fluentd 容器中以相同的名称安装,并且 tail
插件用于读取此目录中的文件。
所以我说你对拥有 12 因素应用程序的担忧是完全有效的,当你将日志写入 stdout/stderr 时,Docker 将它们写入文件和那些文件是 Fluentd 必须用来访问日志的方式。所以使用 tail
插件并继续。
顺便说一下,这对于 12 因素应用问题来说是可以的:
In staging or production deploys, each process’ stream will be captured by the execution environment, collated together with all other streams from the app, and routed to one or more final destinations for viewing and long-term archival. These archival destinations are not visible to or configurable by the app, and instead are completely managed by the execution environment.
我目前在 Kubernetes 中设置了一个 php-fpm 容器来输出错误消息、异常……到标准错误,我想知道如何使用这个容器的输出作为 source/input 表示流利。
正在读取日志文件的输出并使用 f.e。 tail 作为输入插件,在这种情况下不是一个选项,所以我正在寻找不同的解决方案。
Docker 将您的 stdout/stderr 日志写入 /var/lib/docker/containers
并且 Kubernetes 将此目录符号链接到 /var/log/containers
.
在Kubernetes的世界里,访问其他容器日志的接口只有这个目录,不能直接访问他们的stdout或者stderr。
查看有关部署到 Kubernetes 的 Fluentd 文档:https://docs.fluentd.org/container-deployment/kubernetes
在 DaemonSet 清单上,您可以看到 /var/log
在 Fluentd 容器中以相同的名称安装,并且 tail
插件用于读取此目录中的文件。
所以我说你对拥有 12 因素应用程序的担忧是完全有效的,当你将日志写入 stdout/stderr 时,Docker 将它们写入文件和那些文件是 Fluentd 必须用来访问日志的方式。所以使用 tail
插件并继续。
顺便说一下,这对于 12 因素应用问题来说是可以的:
In staging or production deploys, each process’ stream will be captured by the execution environment, collated together with all other streams from the app, and routed to one or more final destinations for viewing and long-term archival. These archival destinations are not visible to or configurable by the app, and instead are completely managed by the execution environment.