隧道日志记录了 cloudflared 实例与 Cloudflare 全球网络之间的所有活动,以及 cloudflared 与您的源服务器之间的所有活动。这些日志使您能够调查 Cloudflare Tunnel 的连接或性能问题。您可以配置服务器以存储持久日志,也可以从任何客户端机器流式传输实时日志。
如果您可以访问源服务器,则可以使用 --loglevel 标志在启动 Tunnel 时启用日志记录。默认情况下,cloudflared 将日志打印到 stdout,并且不会在服务器上存储日志。您可以选择使用 --logfile 标志将日志写入文件。
要启用日志,请使用 --loglevel info 和 --logfile <PATH> 标志运行 Tunnel。例如,
cloudflared tunnel --loglevel info --logfile cloudflared.log run <UUID>您可以通过仪表板或从安装了 cloudflared 的任何机器查看 Cloudflare Tunnel 的实时日志。使用远程日志流,您无需 SSH 登录到运行隧道的服务器。要获取远程日志,隧道必须处于活动状态且能够接收请求。
要从仪表板流式传输 Tunnel 日志:
- 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Networks(网络) > Connectors(连接器) > Cloudflare Tunnels(Cloudflare 隧道)。
- 选择您要监控的 Tunnel 旁的 View logs。
- 选择 Begin log stream(开始日志流)。
如果您针对同一个 Tunnel 运行多个 cloudflared 实例(也称为副本),您可以流式传输特定副本的日志:
- 在 Cloudflare 仪表板 ↗中,转到 Zero Trust > Networks(网络) > Connectors(连接器) > Cloudflare Tunnels(Cloudflare 隧道) 并选择您的 Tunnel。
- 在 Connectors(连接器) 列表中,选择您要查看的副本的 Connector ID(连接器 ID)。
- 选择 Begin log stream(开始日志流)。
cloudflared 守护程序可以将您账户中任何隧道的日志流式传输到本地命令行。cloudflared 必须同时安装在本地机器和源服务器上。
cloudflared 守护进程可以将您账户中任何 Tunnel 的日志流式传输到本地命令行。您的本地机器和源服务器上都必须安装 cloudflared。
-
在本地机器上,向您的 Cloudflare 账户身份验证
cloudflared:cloudflared tunnel login -
针对特定的 Tunnel 运行
cloudflared tail:cloudflared tail <UUID>为了更结构化地查看 JSON 消息,您可以将输出管道传输到类似 jq ↗ 的工具:
cloudflared tail --output=json <UUID> | jq .
您可以按事件类型 (--event)、事件级别 (--level) 或采样率 (-sampling) 过滤日志,以减少从源站流式传输的日志量。这有助于减轻对源站的性能影响,尤其是在源站通常处于高负载的情况下。例如:
cloudflared tail --level debug <UUID>| 标志 | 描述 | 允许的值 | 默认值 |
|---|---|---|---|
--event |
按事件/请求的类型进行过滤。 | cloudflared, http, tcp, udp |
所有事件 |
--level |
返回此级别及以上的日志。独立于服务器上的 --loglevel 设置运行。 |
debug, info, warn, error, fatal |
debug |
--sampling |
对总日志的一部分进行采样。 | 0.0 到 1.0 之间的数字 |
1.0 |
如果您在同一个隧道运行了多个 cloudflared 实例(也称为副本),您必须指定一个单独的实例来流式传输日志:
-
在 Cloudflare 仪表板中,转到 Networking(网络) > **Tunnels(隧道)**并选择您的隧道。
Go to Tunnels ↗ -
找到您要查看的
cloudflared实例的 Connector ID(连接器 ID)。 -
在
cloudflared tail中指定 Connector ID:cloudflared tail --connector-id <CONNECTOR ID> <UUID>