日志
获取envoy的访问日志
最简单的Istio日志记录是 Envoy的访问日志记录。envoy代理将访问信息打印到其标准输出中。然后可以通过kubectl logs命令打印Envoy容器的标准输出。
先决条件
按照安装指南中的说明安装Istio 。
如果安装demo 配置概要文件,则将启用出口网关和访问日志记录。
部署sleep示例应用程序以用作发送请求的测试源。如果 启用了自动边车注入功能,请运行以下命令来部署示例应用程序:
$ kubectl apply -f samples/sleep/sleep.yaml否则,请在sleep使用以下命令部署应用程序之前手动注入sidecar :
$ kubectl apply -f <(istioctl kube-inject -f samples/sleep/sleep.yaml)您可以将curl已安装的任何Pod用作测试源。
将SOURCE_POD环境变量设置为源容器的名称:
$ export SOURCE_POD=$(kubectl get pod -l app=sleep -o jsonpath={.items..metadata.name})启动httpbin示例。
如果启用了自动边车注入,请部署httpbin服务:
$ kubectl apply -f samples/httpbin/httpbin.yaml否则,您必须在部署httpbin应用程序之前手动注入sidecar :
启用Envoy的访问日志
如果使用IstioOperatorCR安装Istio,请在配置中添加以下字段:
否则,将等效设置添加到原始istioctl install命令中,例如:
您还可以通过设置accessLogEncoding为JSON或在JSON和文本之间进行选择TEXT。
您可能还想通过编辑自定义访问日志的 格式。accessLogFormat
有关这三个设置的更多信息,请参考全局网格选项:
meshConfig.accessLogFile meshConfig.accessLogEncoding meshConfig.accessLogFormat
测试访问日志
发送请求sleep至httpbin:
检查sleep的日志:
检查httpbin的日志:
注意,对应于该请求的消息出现在源和目的地两者的Istio代理日志,sleep和httpbin分别。您可以在日志中看到HTTP动词(GET),HTTP路径(/status/418),响应代码(418)和其他与请求相关的信息。
清理
关闭sleep和httpbin服务:
禁用Envoy的访问日志
删除或设置为Istio安装配置中""的meshConfig.accessLogFile设置。
在下面的示例中,替换default为安装Istio时使用的配置文件的名称。
Last updated
Was this helpful?