摘要 Istio最简单的日志类型是Envoy的访问日志。Envoy代理打印访问信息到标准输出。Envoy容器的标准输出能够通过kubectllogs命令打印出来。实现效果 获取数据平面(DataPlane)中代理(Envoy)的日志,Istio架构中代理负责协调和控制微服务之间的所有网络通信,他们收集和报告所有网格流量的遥测数据, 本示例中以获取productpage的代理(Envoy)的日志为例,访问https:istio。bbx。comproductpage,观察访问日志。 Istio架构图前置条件Kubernetes集群正确部署bookinfo示例,本示例中配置通过域名访问正确安装istio,可以注入sidecar开启Envoy的访问日志Istio提供了多种方式,推荐使用遥测API进行使用遥测API开启访问日志关于Telemetry的详细信息请访问Istio官网:https:istio。iolatestdocsreferenceconfigtelemetrymeshdefault。yaml apiVersion:telemetry。istio。iov1alpha1 kind:Telemetry metadata: name:meshdefault namespace:istiosystem spec: accessLogging: providers: name:envoy kubectlapplyfmeshdefault。yaml kubectlgettelemetrynistiosystem访问服务从浏览器请求https:istio。bbx。comproductpage 获取日志获取productpage代理的日志kubectllogsflappproductpagecistioproxy f:动态查看日志 l:指定查看的label如果没有指定accessLogFormat,使用的是默认的日志格式 从productpage发起访问details的日志出方向 〔20221018T02:54:38。826Z〕GETdetails0HTTP1。1200viaupstream017822Mozilla5。0(WindowsNT10。0;Win64;x64)AppleWebKit537。36(KHTML,likeGecko)Chrome106。0。0。0Safari537。36Edg106。0。1370。42ae49853009939ee79dccce300f5fb14adetails:908010。233。70。92:9080outbound9080details。default。svc。cluster。local10。233。118。37:4983611。233。43。194:908010。233。118。37:51802default 从productpage发起访问reviews的日志出方向 〔20221018T02:54:38。832Z〕GETreviews0HTTP1。1200viaupstream03751716Mozilla5。0(WindowsNT10。0;Win64;x64)AppleWebKit537。36(KHTML,likeGecko)Chrome106。0。0。0Safari537。36Edg106。0。1370。42ae49853009939ee79dccce300f5fb14areviews:908010。233。108。99:9080outbound9080reviews。default。svc。cluster。local10。233。118。37:5870611。233。6。43:908010。233。118。37:56388default 从浏览器访问productpage的日志入方向 〔20221018T02:54:38。821Z〕GETproductpageHTTP1。1200viaupstream05299313011。11。11。11,192。168。0。164Mozilla5。0(WindowsNT10。0;Win64;x64)AppleWebKit537。36(KHTML,likeGecko)Chrome106。0。0。0Safari537。36Edg106。0。1370。42ae49853009939ee79dccce300f5fb14aistio。bbx。com10。233。118。37:9080inbound9080127。0。0。6:4228710。233。118。37:9080192。168。0。164:0outbound。9080。。productpage。default。svc。cluster。localdefault 日志格式,详细信息请参考官方文档:https:www。envoyproxy。iodocsenvoylatestconfigurationobservabilityaccesslogusageformatrules Logoperator accessloginsleep 示例 〔STARTTIME〕 开始时间 〔20221018T02:54:38。821Z〕 REQ(:METHOD)REQ(XENVOYORIGINALPATH?:PATH)PROTOCOL 方法路径协议 GETproductpageHTTP1。1 RESPONSECODE 响应码 200hrRESPONSEFLAGS 响应标志 RESPONSECODEDETAILS viaupstream CONNECTIONTERMINATIONDETAILS UPSTREAMTRANSPORTFAILUREREASON BYTESRECEIVED 接收字节 0hrBYTESSENT 发送字节 5299hrDURATION 31hrRESP(XENVOYUPSTREAMSERVICETIME) 30hrREQ(XFORWARDEDFOR) 11。11。11。11,192。168。0。164 REQ(USERAGENT) Mozilla5。0(WindowsNT10。0;Win64;x64)AppleWebKit537。36(KHTML,likeGecko)Chrome106。0。0。0Safari537。36Edg106。0。1370。42 REQ(XREQUESTID) 请求ID ae49853009939ee79dccce300f5fb14a REQ(:AUTHORITY) istio。bbx。com UPSTREAMHOST 上游主机 10。233。118。37:9080 UPSTREAMCLUSTER inbound9080 UPSTREAMLOCALADDRESS 上游地址 127。0。0。6:42287 DOWNSTREAMLOCALADDRESS 下游本地地址 10。233。118。37:9080 DOWNSTREAMREMOTEADDRESS 下游远端地址 192。168。0。164:0 REQUESTEDSERVERNAME 请求服务名称 outbound。9080。。productpage。default。svc。cluster。local ROUTENAME default