跳到主要内容

日志说明

查看日志可以使用下面命令:

kubectl logs -n higress-system -l app=higress-gateway  --since=5m

Higress 默认使用的日志格式为 JSON 格式,如下所示:

{
"authority": "%REQ(:AUTHORITY)%",
"bytes_received": "%BYTES_RECEIVED%",
"bytes_sent": "%BYTES_SENT%",
"downstream_local_address": "%DOWNSTREAM_LOCAL_ADDRESS%",
"downstream_remote_address": "%DOWNSTREAM_REMOTE_ADDRESS%",
"duration": "%DURATION%",
"method": "%REQ(:METHOD)%",
"path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
"protocol": "%PROTOCOL%",
"request_id": "%REQ(X-REQUEST-ID)%",
"requested_server_name": "%REQUESTED_SERVER_NAME%",
"response_code": "%RESPONSE_CODE%",
"response_flags": "%RESPONSE_FLAGS%",
"route_name": "%ROUTE_NAME%",
"start_time": "%START_TIME%",
"trace_id": "%REQ(X-B3-TRACEID)%",
"upstream_cluster": "%UPSTREAM_CLUSTER%",
"upstream_host": "%UPSTREAM_HOST%",
"upstream_local_address": "%UPSTREAM_LOCAL_ADDRESS%",
"upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
"upstream_transport_failure_reason": "%UPSTREAM_TRANSPORT_FAILURE_REASON%",
"user_agent": "%REQ(USER-AGENT)%",
"x_forwarded_for": "%REQ(X-FORWARDED-FOR)%"
}

Value 的配置含义可以参考 envoy 日志说明

字段名类型含义
authoritystring请求报文中的Host Header。
bytes_receivedlong请求的Body大小(不包含Header)。
bytes_sentlong响应的Body大小(不包含Header)。
downstream_local_addressstring网关Pod地址。
downstream_remote_addressstring连接到网关的Client端地址。
durationlong请求整体耗时。
methodstringHTTP方法。
pathstringHTTP请求中的Path。
protocolstringHTTP的协议版本。
request_idstring网关会为每次请求产生一个ID,并放在Header的x-request-id中,后端可以根据这个字段记录并进行排查。
requested_server_namestringSSL连接时使用的Server Name。
response_codelongHTTP响应的状态码。
response_flagsstring响应失败的原因。
route_namestring路由名。
start_timestring请求开始时间。
trace_idstringTrace ID。
upstream_clusterstring上游集群。
upstream_hoststring上游IP。
upstream_local_addressstring本地连接上游的地址。
upstream_service_timelong最后一次调用上游服务的时间。
upstream_transport_failure_reasonstring上游链接失败的原因。
user_agentstringHTTP Header中的UserAgent。
x_forwarded_forstringHTTP Header中的x-forwarded-for,通常用来表示HTTP请求端真实IP。