第四章、Istio可观察性-Envoy 访问日志

摘要

Istio 最简单的日志类型是 Envoy 的访问日志。Envoy 代理打印访问信息到标准输出。Envoy 容器的标准输出能够通过 kubectl logs 命令打印出来。

实现效果

获取数据平面(Data Plane)中代理(Envoy)的日志, Istio 架构中代理负责协调和控制微服务之间的所有网络通信,他们收集和报告所有网格流量的遥测数据,

本示例中以获取productpage 的代理(Envoy)的日志为例,访问 https://istio.bbx.com/productpage ,观察访问日志


Istio 架构图

前置条件

开启Envoy 的访问日志

# mesh-default.yaml

apiVersion: telemetry.istio.io/v1alpha1

kind: Telemetry

metadata:

name: mesh-default

namespace: istio-system

spec:

accessLogging:

- providers:

- name: envoy

kubectl apply -f mesh-default.yaml

kubectl get telemetry -n istio-system

访问服务


获取日志

kubectl logs -f -l app=productpage -c istio-proxy

# -f: 动态查看日志

# -l: 指定查看的label

#如果没有指定 accessLogFormat ,使用的是默认的日志格式

#从productpage 发起访问 /details 的日志 --出方向

[2022-10-18T02:54:38.826Z] "GET /details/0 HTTP/1.1" 200 - via_upstream - "-" 0 178 2 2 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42" "ae498530-0993-9ee7-9dcc-ce300f5fb14a" "details:9080" "10.233.70.92:9080" outbound|9080||details.default.svc.cluster.local 10.233.118.37:49836 11.233.43.194:9080 10.233.118.37:51802 - default

#从productpage 发起访问 /reviews 的日志 --出方向

[2022-10-18T02:54:38.832Z] "GET /reviews/0 HTTP/1.1" 200 - via_upstream - "-" 0 375 17 16 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42" "ae498530-0993-9ee7-9dcc-ce300f5fb14a" "reviews:9080" "10.233.108.99:9080" outbound|9080||reviews.default.svc.cluster.local 10.233.118.37:58706 11.233.6.43:9080 10.233.118.37:56388 - default

#从浏览器访问 productpage 的日志 ---入方向

[2022-10-18T02:54:38.821Z] "GET /productpage HTTP/1.1" 200 - via_upstream - "-" 0 5299 31 30 "11.11.11.11,192.168.0.164" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42" "ae498530-0993-9ee7-9dcc-ce300f5fb14a" "istio.bbx.com" "10.233.118.37:9080" inbound|9080|| 127.0.0.6:42287 10.233.118.37:9080 192.168.0.164:0 outbound_.9080_._.productpage.default.svc.cluster.local default


Log operator

access log in sleep

示例

[%START_TIME%]

开始时间

[2022-10-18T02:54:38.821Z]

"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"

方法路径协议

"GET /productpage HTTP/1.1"

%RESPONSE_CODE%

响应码

200

%RESPONSE_FLAGS%

响应标志

-

%RESPONSE_CODE_DETAILS%


via_upstream

%CONNECTION_TERMINATION_DETAILS%


-

"%UPSTREAM_TRANSPORT_FAILURE_REASON%"


"-"

%BYTES_RECEIVED%

接收字节

0

%BYTES_SENT%

发送字节

5299

%DURATION%


31

%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%


30

"%REQ(X-FORWARDED-FOR)%"


"11.11.11.11,192.168.0.164"

"%REQ(USER-AGENT)%"


"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42"

"%REQ(X-REQUEST-ID)%"

请求ID

"ae498530-0993-9ee7-9dcc-ce300f5fb14a"

"%REQ(:AUTHORITY)%"


"istio.bbx.com"

"%UPSTREAM_HOST%"

上游主机

"10.233.118.37:9080"

%UPSTREAM_CLUSTER%


inbound|9080||

%UPSTREAM_LOCAL_ADDRESS%

上游地址

127.0.0.6:42287

%DOWNSTREAM_LOCAL_ADDRESS%

下游本地地址

10.233.118.37:9080

%DOWNSTREAM_REMOTE_ADDRESS%

下游远端地址

192.168.0.164:0

%REQUESTED_SERVER_NAME%

请求服务名称

outbound_.9080_._.productpage.default.svc.cluster.local

%ROUTE_NAME%


default

展开阅读全文

页面更新:2024-05-21

标签:详细信息   日志   示例   下游   字节   浏览器   正确   方向   地址   格式

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top