问题标签 [seq-logging]

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 回答
162 浏览

azure - 如何将 Docker 容器日志从 Azure App Service 发送到 Seq 日志服务器?

我的网站使用 docker 容器,并使用 Azure 应用服务将其托管在 Azure 上。我使用 Seq 日志服务器来集中日志记录。

如何将 Docker 容器日志从我的 Azure 应用服务发送到我的 Seq 日志服务器?

恐怕答案可能是这是不可能的。将 Docker 容器日志发送到 Seq 日志服务器的“正确”方法包括docker run命令添加一些参数,但我找不到在 Azure App Service 或相应的Azure Web App Service for Container 任务中提供此类参数的任何方法我用来将新的容器映像部署到该服务。

我希望将 docker 日志发送到 Seq 的原因之一是我认为 Azure 对日志的处理令人困惑。 这个问题包含许多关于如何从 Azure 中抓取一些 docker 日志的答案,但没有一个比在 Seq 日志服务器中搜索“docker”更简单或完整。


也许 Azure App Service 不是适合这项工作的正确工具。相反,也许我应该使用 Azure 容器实例 (ACI)。 与 Docker 的集成似乎很强大。但是,这个答案

Azure Web App for Containers 针对长期运行的东西(始终运行),而 ACI 针对计划\突发\短期工作负载(类似于 Azure Functions)。

我的网站应该一直在运行,所以这让我觉得我在正确使用 Azure 应用服务。


也许我应该使用Docker 任务部署到我的 Azure App Service 。然而,有两件事让我不这么认为。首先是任务说:

使用此任务使用 Docker 注册表服务连接构建 Docker 映像并将其推送到任何容器注册表。

[...]

此任务还可用于控制作业和服务容器。这种用法不常见,但偶尔用于特殊情况。

此外,我的 Azure 应用服务在执行时包含许多参数docker run。我不知道他们都做了什么,也不知道我需要包括什么才能使事情正常工作。


也许这些可通过参数配置的选项docker run可以在创建时使用 Docker 映像进行硬编码。但是,我没有发现任何建议表明这是可能的。


docker run我关心的论点之一是--log-driver。可以通过daemon.json配置文件设置 Docker 容器的默认日志驱动程序。也许与我的 Azure App Service 关联的 Docker 容器可以通过此配置文件进行配置。但是,我还没有找到任何方法来做到这一点。