问题标签 [fluent-docker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2303 浏览

c# - C# + DockerCompose - 在尝试连接之前等待 MS SQL Server Docker 容器启动

我正在尝试为我的微服务创建集成测试,类似于Spotify 的方法

我仍在研究如何启动和播种数据库。目前我有一个带有FluentDocker v2.2.15 和DbUp 4.1.0 的 .NET Core 2.0 项目。

我使用 FluentDocker 调用 DockerCompose 并启动我的服务,包括SQL Server 容器

然后我使用 DbUp 运行我的脚本并为数据库播种。

当我给 SQL Server 足够的时间来启动它时,例如在调试时,我可以成功运行它。但是,如果我全速运行它,那么 DbUp 会在它尚未准备好时尝试连接到 SQL Server。FluentDocker 有一个WaitForPort方法,但它似乎不适用于 DockerCompose API。

我想知道是否有办法在运行脚本之前等待 SQL Server 的端口 1433 响应(不包括非确定性策略,例如await Task.Delay),或者是否有其他库允许我进行这种控制。

谢谢

0 投票
1 回答
1123 浏览

openshift - 如何向fluentd添加多个文件路径?

我是 openshift 和流利的世界的新手。

我的项目部署在 openshift 上,现在我的项目的控制台日志在 fluentd 的帮助下路由到 graylog(看起来像默认配置)。但是,我还有一堆其他日志文件位于不同的文件夹结构下,我希望这些文件也被路由到 graylog。我如何告诉 fluent-d 去寻找位于不同 pod 下的文件?最终我要么需要添加另一个文件路径,要么以某种方式将我的所有日​​志文件路由到 /var/log/containers。如何实现?

我目前的配置

0 投票
1 回答
376 浏览

docker - 是否可以使用 fluentd 动态设置日志路径?

我正在制作一些管理系统,并想用 fluentd 管理 docker 容器的日志。

我真正想做的是使用 --log-opt 标签中的参数动态保存日志。例如,当我部署容器时,我使用如下命令: docker run --log-driver=fluentd --log-opt fluentd-address=some_addr --log-opt tag={task_id} some_image

我要做的是通过 log-opt 标记中的 task_id 对日志进行分类。在fluent.conf中,我想设置这样的路径:/fluent/log/{task_id}/data.*.log

如何将变量或占位符传递到 fluentd conf 文件中?

0 投票
1 回答
133 浏览

logging - 如何在应用程序(K8S 部署)中为 fluentd 源类型格式设置标签

要求是在端口 24224(fluentd 端口)中接收应用程序日志并将这些日志存储在 AWS S3 中。

创建 fluent.conf 文件以接收 24224 端口中的日志并根据匹配存储在 s3 中。

但不确定如何在 Kubernetes 部署 YAML 文件中为应用程序日志设置标签。

我们使用 Deployment YAML 部署了多个应用程序。现在必须为每个应用程序/部署设置标签。

可能我们有包含日志驱动程序的 docker-compose 文件。

需要帮助在 Kubernetes 部署文件中转换此日志记录/标记方法。

0 投票
0 回答
633 浏览

docker - fluent-plugin-concat 的配置使日志消失

我的“fluent-plugin-concat”配置导致我的长日志消失而不是被连接并发送到 Kinesis steam。我使用 fluentd 将日志从部署在 AWS/ECS 上的容器发送到 kinesis 流。(然后到某个地方的 ES 集群)在极少数情况下,一些日志非常大。大多数时候,它们都低于 16K 的 docker 限制。但是,那些罕见的长日志非常重要,我们不想错过它们。

附上我的配置文件。

就在最后的比赛序列之前,我补充说:

我尝试的另一种配置:使用波纹管选项仅发送第二部分日志太 ES,第一部分只能在 fluentd 日志中看到。将此配置的日志添加为文件。

我正在测试的日志也作为 json 文档附加。如果我删除了这个配置,这个日志将分 2 块发送。我究竟做错了什么?(已编辑)

完整的配置文件:

示例日志消息 - 长单行:

fluentd-container-log ...仅包含消息的第一部分:以及以下错误消息:

转储错误事件:error_class=Fluent::Plugin::Parser::ParserError error="pattern not match with data

0 投票
0 回答
85 浏览

jenkins - fluentd 配置以获取 jenkins docker 日志

我有一个 jenkins pod,它以这种格式发出日志:

我正在努力使用流利的转发器配置来获取此日志。

帮助表示赞赏。

0 投票
1 回答
165 浏览

docker - 如何将带有 docker 日志的目录挂载到 docker 容器

我正在Docker for Windows使用Windows 10WSL

我想使用收集 docker 日志Fluentd

我发现 docker 在这里登录我的机器存储\\wsl$\docker-desktop-data\version-pack-data\community\docker\containers

我需要将此文件夹绑定到fluend容器

有什么想法吗?

0 投票
0 回答
187 浏览

amazon-s3 - Fluentd:将多个容器日志存储在一个文件中(AWS S3)

我想将多个容器日志存储在 AWS S3 的单个文件中。

我们有一个应用程序的多个组件,比如说ui、server、engine、alert。所有在 AWS EKS 集群中作为 pod 运行。

我有一个FluentD 守护程序集,用于将 S3 中的所有日志存储在单独的文件中(s3://app/app-ui-1.log、s3://app/app-server-1.log、s3://app/app -engine-1.log, s3://app/app-alert-1.log),工作正常。


但我的要求是将所有组件日志存储一个文件中-> s3://app/app-all-logs/1.log

内容应该喜欢

我尝试使用以下 FluentD 配置,但它将每个组件的日志存储在单独的文件中,例如

UI日志转到 s3://app/app-all-logs/ 1.log

服务器日志转到 s3://app/app-all-logs/ 2.log

引擎日志转到 s3://app/app-all-logs/ 3.log

FluentD 配置文件:

0 投票
0 回答
47 浏览

c# - 如何在 FluentD 中查看日志?

我的环境:

  1. 我使用 Docker-compose 文件https://docs.fluentd.org/container-deployment运行 FluentD
  2. 我按照此处所述运行简单示例: https ://github.com/zoetrope/fluent-logger-csharp

最后:该应用程序运行良好,但我无法使用 http://localhost:5601 找到任何日志记录

有什么问题?

0 投票
0 回答
69 浏览

docker - Docker 容器即使在提供 fluentd 日志驱动程序后也会在本地生成日志

嗨,我有 2 个 Google 云虚拟机(ubuntu),其中有以下 docker 配置:

机器 1 具有:Docker 版本 18.03.1-ce,构建 9ee9f40

机器 2 具有:Docker 版本 20.10.0,构建 7287ab3

1.我在两台机器上都尝试使用 docker compose file

sudo docker-compose -f docker-compose.yaml 运行 --name=CONTAINER_NAME -d IMAGE_NAME

结果:

机器 1: sudo docker logs container_name -f

来自守护进程的错误响应:配置的日志驱动程序不支持读取(所有日志都转发到 fluentd )

机器 2: sudo docker logs container_name -f

我可以看到生成的日志(这不是我所期望的,因为我提供了日志记录驱动程序)此外,所有日志都被转发到 fluentd

2.我尝试了简单的 docker run 命令。

sudo docker run --log-driver=fluentd --log-opt fluentd-address=my.fluentd.com:15753 --name CONTAINER_NAME IMAGE_NAME 结果:机器 1:

sudo docker logs container_name -f

来自守护进程的错误响应:配置的日志驱动程序不支持读取(所有日志都转发到 fluentd )

机器2:

sudo docker logs container_name -f

我可以看到生成的日志(这不是我所期望的,因为我提供了日志记录驱动程序)此外,所有日志都被转发到 fluentd

我期待与机器 1 类似的东西,当我将日志记录驱动程序与 fluentd 一起使用时,docker 容器不应在本地生成任何日志。

我在这里失踪了吗?是因为更新版本的 docker 吗?

机器 1 具有:Docker 版本 18.03.1-ce,构建 9ee9f40

机器 2 具有:Docker 版本 20.10.0,构建 7287ab3

(无法理解为什么 -ce 在最新版本中不存在)

请帮帮我。