查看类别

使用 SQL 查询 Docker 容器日志

文件夹连接器 · 容器日志

将 Docker 容器日志转换为 SQL 表 您可以在任何地方进行查询

将查询流代理指向该文件夹。它会读取自身计算机上的日志文件,并在本地缓存中构建表,并随着文件的到达、更改或删除而保持表的更新。您可以从 Excel、Google Sheets、Nova、Claude 或 REST API 查询这些表。无需上传任何文件,也无需转换或编辑任何文件。

大约15分钟 无需编程 文件保留在您的网络上 免费计划涵盖了它
遇到任何问题?尽管问我们。 打开 支持 请在“查询流”(右上角菜单 → 支持)中给我们发送消息。我们会安排专人阅读您的消息,“我不知道这个屏幕需要什么”就是一个很好的问题。

你最终会得到什么

容器日志图标最终你会得到一个名为“ 活动 在 文件集 模式,每行包含 Docker 日志中的一行。使用 Docker json 文件配置文件时,列如下: 应用程序 (容器名称), 溪流, 等级, 日志记录器, 信息, 主持人, 服务 和 数据加上 图像, compose_project, compose_service, container_id 和 事件时间您可以使用 Excel、Google Sheets、仪表板或任何支持查询流的工具,通过 SQL 查询日志。日志文件始终保存在代理运行所在的计算机上。这不是 Docker 的 MCP 工具包,它不运行或管理容器;它只读取容器日志。

线路落在 活动或者 表名 你设置。每一行都包含 _stream_id (每个日志文件一个,轮换期间保留), _line_no, 事件时间, 事件时间原始标识列 应用程序个人资料的列, 源文件 和 _row_id始终按以下方式排序 事件时间.

桌子它包含什么
活动每行日志记录一行, 事件时间, 应用程序, 溪流, 信息其他个人资料列, 源文件 和 _line_no.
events_raw_lines未解析的行,保留为 线 与一个 原因:语法不匹配、无法解码、包含空字节或超过最大行数。不会丢弃任何内容。
日志游标, 日志快照记录, 来源, 资产司机记账。一个预留文件显示: 日志游标 停车原因 最后一个错误.

每个文件夹连接器还会给你提供 文件, 文件事件, 目录, 目录快照 和 卷.

文件存放位置代理可以打开的计算机或文件共享您的文件夹文件文件保留在原处查询流代理扫描文件夹,构建表格在本地缓存中运行 SQL仅选择,此处强制执行查询流一个出站链路检查谁可以看到什么内容 · 记录每个查询你在哪里使用它任何计算机,任何浏览器Excel · Google Sheets · NovaClaude · REST API · 自动化只看行,不要看文件
代理程序读取自身计算机上的文件夹,将读取到的行保存在本地加密缓存中,并针对该缓存运行所有查询。只有查询返回的行才会通过一个出站连接传输出去。无需打开端口,无需 VPN,也无需上传文件。

它的价值所在:

你需要准备什么

查询流帐户

所有套餐(包括免费套餐)都包含文件夹连接器。免费套餐是永久有效的,并非试用期。文件夹可容纳的文件数量没有上限。

代理程序,2.6.0 或更高版本

安装在可以打开该文件夹的计算机上:文件服务器本身、办公计算机或文件所在的计算机。旧版代理程序会将文件夹卡片显示为灰色并带有“显示错误”字样。 代理 2.6.0+ 徽章。支持 Windows、Mac 或 Linux 系统。

代理程序看到的文件夹路径

本地路径或网络共享,写作 \\服务器\共享\文件夹. The Agent runs as a service, so it cannot see drives you mapped at your login (Z: and friends). On Windows it can sign in to a share with a login you store; on Linux or a Mac, mount the share first (Linux under /mnt 或 /媒体, a Mac under /Volumes).

工作在哪里进行? 在运行代理的计算机上,它会扫描文件夹,并将扫描的行复制到该计算机上的加密本地缓存(一个名为“name”的模式)。 文件集并针对该缓存运行所有查询。您的文件仅被读取,绝不会被修改、移动或上传。

分五步完成设置

  1. 在可以打开该文件夹的计算机上安装代理程序

    登录,打开 下载然后在可以打开 Docker 容器日志的计算机上安装系统代理:例如文件服务器或任何可以访问共享目录且始终在线的计算机。安装过程只需一分钟,安装完成后即可自动运行。您需要 2.6.0 或更高版本;下载页面始终提供最新版本。

    为什么使用小型程序而不是驱动程序? 该代理程序只需安装一次,即可在 Windows、Mac 或 Linux 系统上运行(Windows 系统下约 85 MB,Mac 和 Linux 系统下略超过 100 MB)。它会打开一个与查询流的加密出站连接,这是它唯一需要的网络路径:无需打开入站端口,也无需 VPN。它会读取自身所在的文件夹,因此文件不会移动,只有查询返回的行数据才会通过互联网传输到您端的插件、浏览器或 AI 客户端。

    下载页面显示 您的访问密钥当代理提示时,将其粘贴到代理中,然后等待徽章读取。 已连接到查询流这是你在代理人的电脑上唯一要做的事情;其他所有操作都在你的浏览器中进行。

    完整攻略(如果您需要): Windows, 苹果, Linux.

  2. 指向你的 Docker 容器日志

    返回浏览器打开 数据 → 数据代理找到您刚刚安装的代理,然后单击其 添加连接器 按钮。打开 文件和文件夹 药丸和选择 容器日志 卡片。不确定哪张卡片合适?选择一张。 文件夹中的文件 相反:代理程序会扫描文件夹,在“我们发现了什么”页面上列出文件夹的内容,并为您打开预先填充好的正确卡片。

    巫师跑 文件夹 → 检查 → 设置 → Realm → 查看。 在 文件夹:

    根文件夹
    One path per line, as the Agent’s computer sees it. Each folder shows a status (reachable, denied, missing, unreachable, credentials invalid or not mounted) as soon as you add it. On a Windows Agent a share that needs a login gets one from the folder’s Credential column, stored once per server; on Linux or a Mac, mount the share first.
    扫描子文件夹,最大深度
    默认情况下,开启并有 8 个级别。
    包含模式,排除模式
    哪些文件有效?包含模式以该卡的正确通配符开头。一个连接器读取一种文件类型:包含 CSV 文件的文件夹。 和 Parquet 文件是同一个文件夹中有两个连接器,每种类型一个。
    跟随符号链接和连接点
    默认关闭。除非您启用此功能,否则代理程序不会遵循快捷方式或云端占位符。

    在可以打开 Docker 日志文件夹的代理上,单击 添加连接器, 打开 文件和文件夹 并选择 容器日志 卡片。保存后,它会在连接器列表中显示为 日志文件.

    • 描述 — 连接器的名称。
    • 根文件夹 — 代理计算机上的文件夹,每行一个。在 Linux 系统中,将共享文件夹挂载到 /mnt 或 /media 目录下。
    • 包含模式 — 开始于 **/*-json.log, **/*。日志 和 **/*。日志。*.
    • 日志类型 — 选择文件配置文件。列表已内置;仅 自定义日志文件夹 允许您定义格式。
    • 表名 — 可选,默认为 活动.
    • 回填(天) — 30. 事件保留 N 天 — 30.
  3. 查看它将建造什么

    在 查看 代理程序读取最多 64 个文件的样本,并显示它将要构建的内容。目前尚未创建任何内容。按钮显示: 测试连接 在判决结果出来之前, 下一页; 再次测试 更改设置后,程序会重新运行样本。您将看到以下四个标题之一:

    准备创建
    每个抽样文件都符合要求。文件下方的芯片显示了可访问的文件夹数量、文件和行数,以及将要存在的表。
    准备好了,附上笔记
    部分文件将被搁置,或者布局嗅探将被拒绝。琥珀色横幅会明确指出具体是哪些文件:“{n} 个文件(共 {m} 个)将被搁置”。 找出需要哪些文件以及原因 列表中,“您仍然可以创建它——连接器将不断重新检查并在其清单选项卡上报告原因。”
    这些文件不属于这种日志类型
    该样本无法解析为该卡的日志格式。请检查您是否选择了正确的卡,或使用…… 自定义日志文件夹 卡片并描述其格式。

    被拒绝或搁置的文件不会阻止您:点击 下一页完成向导后,稍后再修复异常文件。只有代理程序离线或文件夹缺失才会导致向导停止。

    如果样本与您选择的日志类型不匹配,则 查看 标题为“这些文件不是”,后面跟着类型。打开 经纪人完整报告 要了解原因,请选择另一个。 日志类型 并点击 再次测试即使文件被拒绝或搁置,您仍然可以点击。 下一页 并创建连接器。它会不断重新检查,并在其页面上报告原因。 显现 标签。

  4. 选择扫描频率,然后创建它

    默认值 设置 适用于每天接收少量文件的文件夹。以下四点您可能需要更改:

    扫描间隔
    每小时 默认情况下,扫描频率为每 5 分钟一次,也可选择每天一次。每次扫描都会比较文件大小和修改时间,以查找新增、已更改和已消失的文件。
    监视文件夹更改(近乎实时)
    默认关闭。启用后,代理程序会在几秒内响应本地磁盘;对于网络共享,响应速度会尽力而为,计划扫描仍是保证响应速度的手段。 静默期 (15 秒)等待文件写入完成。
    请刷新页面后再回答查询
    默认关闭。开启后,如果上次扫描时间早于查询时间,查询将首先重新扫描。 陈旧窗口 (60秒),最多等待 查询等待限制 (5 秒)。这适用于人员和插件,不适用于警报轮询。
    文件消失时
    删除它的行 默认情况下,或者 保留行,标记已删除(墓碑标记)。 这 消失的保护比率 (0.5)拒绝一次性丢失一半以上文件的扫描,并保留之前的库存,这就是离线共享的样子。

    然后选择 数据领域 检查行数是否计入统计。 审查 并点击 创建连接器首次扫描立即开始。连接器的 显现 该选项卡显示它生成的内容以及它保存的任何文件。

  5. 看看你的表格

    打开连接器: 显现 该选项卡列出了它创建的表。 文件 对话框列出了每个日志文件及其状态。 查询生成器 同样的桌子摆放在下面 文件集 模式。三个第一天就能运行的查询:

    过去一小时内每个容器的标准错误输出行数
    SELECT app, COUNT(*) AS stderr_lines, MAX(event_time) AS last_line FROM fileset.events WHERE stream = 'stderr' AND event_time >= now() - INTERVAL 1 HOUR GROUP BY app ORDER BY stderr_lines DESC LIMIT 100

    哪些容器正在向 stderr 写入数据,写入量是多少?通常情况下,最先发生故障的容器的写入量最大。

    按容器和镜像分类的最新错误消息
    SELECT event_time, app, image, level, message FROM fileset.events WHERE stream = 'stderr' OR message LIKE '%ERROR%' ORDER BY event_time DESC LIMIT 100

    最新的 stderr 输出包含容器名称和镜像信息,因此,如果镜像部署出现问题,则运行该镜像的每个容器都会出现此问题。

    今天哪些日志文件进行了轮换或被搁置了?
    SELECT relative_path, event_type, detail, event_at FROM fileset.files_events WHERE event_type IN ('rotated', 'truncated', 'drift', 'refused') AND event_at >= now() - INTERVAL 1 DAY ORDER BY event_at DESC LIMIT 100

    当日文件级历史记录:哪些容器日志进行了轮换,以及是否有任何文件被搁置,并详细说明了原因。

    每个文件夹连接器也都服务于相同的记账表,所有这些表都在…… 文件集 模式:

    桌子它包含什么
    文件文件夹中当前所有文件的概览:路径、名称、扩展名、大小、创建和修改时间、首次和最后访问时间。 files_current它还会保留已消失的文件。
    文件事件变更历史记录:每行记录一个文件。 出现, 曾是 修改的, 消失了被搁置一旁(漂移)或曾是 拒绝,随着时间推移 事件以及它是如何被注意到的 检测到 原因在于 细节.
    目录, 目录快照, 卷文件夹数量和大小、它们的增长方式,以及根目录所在的磁盘或共享文件夹。
    源文件, _row_id每行数据包含两列:该行数据来自哪个文件,以及该文件内的一个固定行 ID。按以下方式分组 源文件 比较文件。

就是这样。 将新文件放入文件夹,下次扫描后,该文件就会出现在数据库中。这些文件从未离开过它们所在的计算机。

Reaching a file on a network share

The Agent opens files as a background service, not as you, so a file on another computer needs one extra step. Which step depends on the computer the Agent runs on.

Windows

Type the network path, like \\服务器\共享\文件夹, never a mapped drive letter such as S:, which the Agent cannot see. If the share only lets in named people, click Service identity (the chip under the path, or a folder’s Credential column) and store a login for that server: a company domain account, or an account made on the server itself with Domain left blank. The Agent then signs in to that server and reads the file there, and every connector on that Agent that reads the same server must use the same login. Without a login, it reads as its own service account, which a company domain sees as the computer itself. Step by step on Windows

Linux

Share logins stored in the Portal are not used on Linux: an administrator mounts the share on the Agent’s computer first, in a folder under /mnt 或 /媒体, because the Agent’s service cannot see /home 或 /run/user. In the connector, keep the \\server\share path, which the Agent maps onto the mount, or type the mount path instead, such as /mnt/fileserver-shared/Accounts. How to mount a share on Linux

苹果

Share logins stored in the Portal are not used on a Mac: mount the share first from Terminal with sudo, in a folder under /Volumes, so the Agent’s background service can see it. In the connector, keep the \\server\share path, which the Agent maps onto the mount, or type the mount path instead, such as /Volumes/fileserver-shared/Accounts. How to mount a share on a Mac

If the test cannot get to the share, look for these words in its result: unreachable means the Agent’s computer got no answer from the server. On Linux or a Mac, not mounted means the share still has to be mounted, and that message includes the exact mount command for your server.

Folders on a share? On Windows, one login covers every folder you add from the same server. 监视文件夹的更改 works on a share too, on a best-effort basis; the scheduled scan is what guarantees every change is picked up.

When a folder is not reachable

Every folder on the 文件夹 step shows a status as soon as you add it. Hover the status to read the Agent’s own message; its first words say which case it is.

Status or message它的含义该怎么办
deniedThe share did not let the Agent in. With no login stored, a Windows Agent reads as its service account, which a company domain sees as the computer itself.Windows: click Service identity in the folder’s Credential column and store a login that can read the share, or ask whoever runs the server to give the stored one read access. Linux or Mac: the share is mounted, but its permissions keep the Agent out; check how it is mounted (Linux, 苹果).
credentials invalid,或 The stored credentials for \\server were refusedThe server rejected the stored login: a typo, the wrong domain or a changed password. The Agent waits a minute before it tries that login again, so the account is not locked out.Click the account name in the Credential column and type the login again. For an account made on the server itself, leave Domain blank.
丢失的No folder at that path. On Windows, a server name that cannot be found, or a share the server does not have, also shows as missing.Check the names, or pick the folder with Add folder from the agent instead of typing it.
unreachable,或 \\server did not answerNo answer from the server: it is off, the name is wrong, or a firewall blocks file sharing.Open the same \\server\share path on the Agent’s computer. If that fails too, it is a network problem.
not mounted (Linux or Mac)The share is not mounted on the Agent’s computer. Hover the status, or the Not mounted chip in the Credential column, for the exact mount command.Mount the share (Linux, 苹果), then test the folder again.
Another connector on this agent already signs in to \\server as …Windows allows one account per file server on each computer, and another connector on this Agent uses a different one.Use the same login as that connector, or change it on every connector that reads this server.
Windows already holds a sign-in to \\server for …Something else on the Agent’s computer is signed in to that server with another account, and the Agent never closes a sign-in it did not make.Follow the message: it names the Windows account the Agent runs as and says whether Use service identity would read the share through the existing sign-in.
This agent build cannot sign in to \\server with stored credentials.An older Agent that cannot use a stored share login.Update the Agent, then test again.

到处使用

连接器是查询流中的数据源,与其他数据源类似。只需在查询流中保存一次即可。 查询生成器 (该数据库方言为 DuckDB),并可从以下位置使用它:

在 Excel

该插件的 流式查询 将行拖放到工作表中,然后单击即可重新运行。 在 Excel 中运行 SQL.

谷歌工作表

这 查询流 插件会填充您选择的标签页。 用于 Google Sheets 的 Power Query.

Claude、Cursor 和其他人工智能客户端

通过 Query Streams MCP 服务器,Claude 了解文件夹模型,包括 源文件 和 文件事件. 通过 MCP 使用 Claude 查看容器日志.

REST API

在每个计划中,任何已保存的查询都会成为一个具有自己键的只读端点。 容器日志 REST API.

诺瓦

请用通俗易懂的英语询问商业计划书;Nova 可以根据其内置描述识别每个文件夹、表格和列。

自动化

按计划将行同步到 Airtable、Smartsheet、Baserow、SeaTable 或工作表。 自动化指南.

文件夹表也可以连接到您的其他连接器:联合查询可以匹配 源文件 将 Docker 容器日志中的名称或订单 ID 与同一代理上的数据库进行比对。

新建、更改和删除的文件如何显示

新增和已更改的文件

在每个 扫描间隔 (或在几秒钟内) 监视文件夹 (在)一个符合布局的新文件会被添加行并获得一个 出现 事件。已更改的文件会在一次事务中重新读取:删除旧行,导入新行,并获取一个 修改的 事件。日志文件会随着增长而不断跟踪;轮换后的文件会保留其流 ID。

已删除的文件

默认情况下,消失的文件会删除其所有行;如果您选择了墓碑标记选项,则会保留已删除的行,并获得一个 消失了 事件。如果超过一半的文件一次性消失,扫描将被拒绝,之前的库存清单将保留:离线共享就是这样的。

预留文件

不符合布局、无法打开或超过上限的文件将被整体忽略:其所有行均不会加载。 文件事件 获得 漂移 指定文件和列的名称。修复文件并保存;下次扫描将再次尝试。

我所看到的景象有多新鲜?

查询结果来自上次扫描。没有“重新扫描”或“立即同步”按钮;扫描间隔、文件夹监视器和 请刷新页面后再回答查询 这是三个控制点。 MAX(last_seen_utc) 起 files_current 告诉你代理人上次查看的时间。

代理程序会跟踪每个容器日志的增长情况。每个文件都维护一个字节和行光标,因此每次扫描只读取新行,而未写入的最后一行会等待下一行。轮换文件通过其前 4 KB 的内容来识别,并保持相同的状态。 _stream_id因此,不会重复计算任何内容。每个 .gz 成员信息读取一次; 。拉链, 。出租车 和 。杂志 文件将被跳过。默认情况下,首次读取的数据范围为 30 天前,每个文件最多 64 MiB,除非您更改设置,否则每行数据将保留 30 天。 事件保留 N 天要查看每个日志文件、其状态以及为什么某些日志文件被搁置或无法读取,请打开连接器的…… 文件 对话。

被搁置的文件

在“检查”步骤和“清单”选项卡上会出现三个词。它们的含义各不相同:

停放在一旁(停放)
文件与固定布局不符,或者文件无法读取、撕裂、锁定或超出限制。每个文件要么全部占用,要么全部不占用:已停放的文件不贡献任何行。 文件事件 记录 漂移 行 细节 指定文件名和列名。如果文件大小和修改时间保持不变,则跳过该文件;一旦文件大小和修改时间发生变化,则立即重试。
无法阅读
代理程序无法打开或解析该文件,因为它的类型是:不是真正的工作簿,被其他程序锁定,是云端占位符,或是无法解码的字节。它自行停止运行,文件夹的其他部分继续处理。只有当文件夹内没有任何可读文件时,代理程序才会拒绝整个文件夹的处理。
拒绝
代理程序无法固定任何布局,例如,因为文件对列类型存在冲突。目前尚无数据表。 文件事件 获得 拒绝 与原因争吵 细节代理程序会在每次扫描时重试,直到布局固定为止。修复或排除它所指的文件,消息就会消失。

在哪里看:琥珀色的横幅 查看 (找出需要哪些文件以及原因),连接器的 显现 之后是制表符,对于日志连接器 文件 对话框列出了已停放的文件及其原因。 最后一个错误在 SQL 中: SELECT relative_path, event_type, detail FROM fileset.files_events WHERE event_type IN ('drift','refused') ORDER BY event_at DESC.

值得了解的界限

文件夹数量或文件数量没有计划限制。与其他连接器一样,这些行也会计入您的数据域。您可以提高或降低连接器的默认设置:

环境默认它的作用
最大深度8扫描每个根目录下的文件夹层级(1-64)。
每次扫描最大文件数100,000一次性处理所有文件。
要哈希的最大文件大小32 MiB只与此有关 哈希文件内容 在。
事件日志保留30天多久 文件事件 保留行。
每个根的扫描并行度2每个根目录一次读取一个文件夹。

内容上限是指文件会被暂存而不是截断:每个文件最多 2,000,000 行或 512 MiB,每次扫描最多 10,000,000 行或 2 GiB。一个文件夹最多可以容纳 25 种不同的布局。 每个布局一张桌子 模式。

人们提出的问题

支持哪些容器日志格式和配置文件?

这 日志类型 容器日志卡片上的列表涵盖了 Docker 容器日志文件。Docker json 文件配置文件提供 应用程序, 溪流, 等级, 日志记录器, 信息, 主持人, 服务 和 数据加上 图像, compose_project, compose_service 和 container_id列表下方写着:“需要列表中未列出的日志类型?请提交支持请求,我们将在几天内添加。”

我可以添加自己的格式吗?

此卡上没有。容器配置文件已锁定。请使用 自定义日志文件夹 改为使用卡片,您可以在其中自行描述格式或点击 让Nova提出一个格式.

这是 Docker 的 MCP 工具包,还是 Docker 日志的替代品?

不,它不会运行、管理或附加到容器。它读取 Docker 已写入的日志文件,并将其作为 SQL 行提供。 Docker 日志 对于实时终端尾部;当您希望将行以表格形式显示时,请使用此选项。

新的日志行多久会显示?

下一次扫描,默认情况下每小时扫描一次。 扫描间隔打开 监视文件夹更改(近乎实时) 在本地磁盘上几秒钟内做出反应。未写完的最后一行代码会等待完成。

Claude 也能查询这些表吗?

是的。同一个连接器通过 MCP 为 Claude 提供只读服务。参见 如何通过 MCP 将 Docker 日志连接到 Claude.

我的文件上传到哪里了吗?

不。代理程序在自己的计算机上读取这些文件,并将读取到的行保存在本地加密缓存中。程序会针对该缓存运行查询,只有查询返回的行才会通过一个出站连接离开计算机。文件不会被修改、移动或转换。

我需要开放端口还是运行 VPN?

不。代理程序会在 443 端口上建立一个出站连接,所有请求和数据行都会通过该连接传输。如果出站 HTTPS 连接正常,那么这种方式也正常。

文件夹可以位于网络共享上,或者位于 OneDrive 或 Dropbox 中吗?

Yes. Type a share as \\服务器\共享\文件夹, because the Agent runs as a service and cannot see drives mapped at your login. On Windows, store a login for the server if the share lets in only named people; without one the Agent reads as its own service account. On Linux or a Mac, mount the share first. A synced OneDrive or Dropbox folder works when its files are stored on the computer: set the folder to 始终将此设备放在身上代理程序不会下载仅存在于云端的文件。

文件夹里有不止一种类型的文件。是一个连接器还是两个?

一个连接器只能读取一种文件类型。包含 CSV 和 Parquet 文件的文件夹,其根目录下会有两个连接器,分别对应两种文件类型。不符合包含模式的文件会被忽略,而不是被单独保留。

是否有重新扫描按钮?

不。代理人扫描了 扫描间隔,对变化做出反应 监视文件夹 已开启,开启后会在回答查询前重新扫描。编辑连接器即可更改这三项设置中的任何一项。

免费套餐真的包含这些吗?

是的。免费版是永久有效的,不是会过期的试用版。文件夹连接器本身没有文件数量限制;行数与其他连接器一样计入您的数据域。请查看各套餐包含的内容。 定价页面.

还是不行? 打开 支持 请在“查询流”中告诉我们您当前处于第几步以及您看到的内容。我们会帮您连接。

每份指南 Container Logs

这不是你想要的配置?

  • 你的应用是否会在 Docker 容器之外写入自己的日志文件?应用日志会读取这些文件 → App Logs
  • 您的日志格式不是预设的日志类型之一?自定义日志文件夹允许您自行描述日志格式 → Custom Logs

Setup trouble?

  • Agent says the file or folder does not exist, or access is denied? Mapped drives, network shares, OneDrive and Linux home folders each need one fix → Where the Agent can read files from
  • Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?
更新 10 月 12, 2026

Powered by BetterDocs