获取 Envoy 访问日志
Istio 最简单的日志类型是 Envoy 的访问日志1。Envoy 代理打印访问信息到标准输出。Envoy 容器的标准输出能够通过 kubectl logs
命令打印出来。
开始之前
按照安装指南2中的说明安装 Istio。
启动 sleep3 示例,以获取发送请求的测试源。 如果您启用了自动 sidecar 注入,运行以下命令部署示例应用程序:
否则,在使用以下命令部署
sleep
应用程序之前,手动注入 sidecar:为了发送请求,您需要创建
SOURCE_POD
环境变量来存储源 pod 的名称:
启动 httpbin5 样例程序。
如果您启用了 sidecar 自动注入,通过以下命令部署
httpbin
服务:否则,您必须在部署
httpbin
应用程序前进行手动注入,部署命令如下:
开启 Envoy 访问日志
修改 istio
配置文件:
您也可以通过设置 accessLogEncoding
为 JSON
或 TEXT
来在两种格式之间切换。
您也许希望通过设置 accessLogFormat
来自定义访问日志的格式7。
global.proxy.accessLogFile
global.proxy.accessLogEncoding
global.proxy.accessLogFormat
测试访问日志
从
sleep
向httpbin
发送一个请求:检查
sleep
的日志:检查
httpbin
的日志:
请注意,与请求相对应的信息分别出现在源(sleep
)和目标(httpbin
)的 Istio 代理日志中。您可以在日志中看到 HTTP 动词(GET
)、HTTP 路径(/status/418
)、响应码(418
) 和其他请求相关信息7。
清除
关闭 Envoy 的访问日志
编辑 istio
配置文件然后设置 accessLogFile
为 ""
。