在 Istio 中,到底怎么获取 Envoy 访问日志?
Envoy 访问日志记录了通过 Envoy 进行请求 / 响应交互的相关记录,可以方便地了解具体通信过程和调试定位问题。
环境准备
部署 httpbin
服务:
复制代码
部署 sleep
服务:
复制代码
httpbin
服务作为接收请求的服务端, sleep
服务作为发送请求的客户端。
还需要开启 Envoy 访问日志,执行以下命令修改 istio 配置:
复制代码
编辑 yaml 文件的对应配置:
复制代码
其中,accessLogEncoding
表示 accesslog 输出格式,Istio 预定义了 TEXT
和 JSON
两种日志输出格式。默认使用 TEXT
,通常改成 JSON
以提升可读性;accessLogFile
:表示 accesslog 输出位置,通常指定到 /dev/stdout (标准输出),以便使用 kubectl logs 来查看日志。
保证 yaml 文件后,配置随即生效。
测试访问日志
在 sleep
服务中向 httpbin
服务发出请求:
复制代码
返回结果如下:
复制代码
执行以下命令,查看sleep
服务的 Envoy 日志:
复制代码
可以看到sleep
服务对httpbin
服务的调用的日志:
复制代码
执行以下命令,查看httpbin
服务的 Envoy 日志:
复制代码
可以看到httpbin
服务被sleep
服务调用的 Envoy 日志:
复制代码
看到这么多参数,是不是有点懵逼?没关系接下来,我们详细看看!
刨析 Envoy 日志
清理
删除 httpbin
和 sleep
服务:
复制代码
版权声明: 本文为 InfoQ 作者【万猫学社】的原创文章。
原文链接:【http://xie.infoq.cn/article/9fd56ee9a0a8f177394d9b9d9】。文章转载请联系作者。
评论