ETW 日志驱动程序将容器日志作为 ETW 事件转发。ETW 代表 Windows 中的事件跟踪,是在 Windows 中跟踪应用程序的通用框架。每个 ETW 事件都包含一条消息,其中包含日志及其上下文信息。然后,客户端可以创建一个 ETW 侦听器来侦听这些事件。
此日志记录驱动程序向 Windows 注册的 ETW 提供程序的 GUID 标识符为:{a3693192-9ed6-46d2-a981-f8226c8363bd}。客户端创建一个 ETW 侦听器并注册以侦听来自日志记录驱动程序提供程序的事件。提供者和侦听器的创建顺序无关紧要。在提供程序注册到系统之前,客户端可以创建他们的 ETW 侦听器并开始侦听来自提供程序的事件。
用法
以下是如何使用大多数 Windows 安装中包含的 logman 实用程序来侦听这些事件的示例:
1.logman start -ets DockerContainerLogs -p {a3693192-9ed6-46d2-a981-f8226c8363bd} 0 0 -o trace.etl
2.通过添加–log-driver=etwlogs到 Docker 运行命令,使用 etwlogs 驱动程序运行您的容器 ,并生成日志消息。
3.logman stop -ets DockerContainerLogs
4.这将生成一个包含事件的 etl 文件。这个文件转换为人类可读形式的一种方法是运行:tracerpt -y trace.etl。
每个 ETW 事件都包含以下格式的结构化消息字符串:
container_name: %s, image_name: %s, container_id: %s, image_id: %s, source: [stdout | stderr], log: %s
可以在下面找到消息中每个项目的详细信息:
选项 描述
container_name 启动时的容器名称。
image_name 容器镜像的名称。
container_id 完整的 64 个字符的容器 ID。
image_id 容器镜像的完整 ID。
source stdout或stderr。
log 容器日志消息。
这是一个示例事件消息(输出格式为可读性):
container_name: backstabbing_spence,
image_name: windowsservercore,
container_id: f14bb55aa862d7596b03a33251c1be7dbbec8056bbdead1da8ec5ecebbe29731,
image_id: sha256:2f9e19bd998d3565b4f345ac9aaf6e3fc555406239a4fb1b1ba879673713824b,
source: stdout,
log: Hello world!
客户端可以解析此消息字符串以获取日志消息及其上下文信息。时间戳在 ETW 事件中也可用。
Ubuntu是一个以桌面应用为主的Linux操作系统。它是一个开放源代码的自由软件,提供了一个健壮、功能丰富的计算环境,既适合家庭使用又适用于商业环境。Ubuntu将为全球数百个公司提供商业支持。 ...
查看全文Docker采取了一种保守的方法来清理未使用的对象(通常称为“垃圾收集”),例如图像,容器,卷和网络:除非您明确要求Docker这样做,否则通常不会删除这些对象。这可能会导致Docker使用额外的磁盘空...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,四位知情人士今日透露,亚马逊、微软和谷歌这三大云计算服务提供商,正在竞争波音公司(Boeing)价值10亿美元的云服务合同。 这些...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,多位知情人士今日称,继加州、纽约州和华盛顿州之后,马萨诸塞州和宾夕法尼亚州的总检察长也加入到对亚马逊的反垄断调查中。 如今,越来越...
查看全文
您好!请登录