應用服務網格
更新時間 2025-07-07 18:24:40
最近更新時間: 2025-07-07 18:24:40
分享文章
本文主要介紹應用服務網格日志采集。
應用服務網格支持采集控制面(control plane)、數據面(sidecar)日志以及應用服務網格網關日志,您可以在控制臺日志中心查看日志。
前提條件
天翼云賬號已經開通了云日志服務,如果沒有開通可以通過服務網格控制臺->網格實例->自定義配置->創建云日志服務。
網格控制面和數據面集群已經安裝了日志采集插件log-operator。可以通過ccse控制臺->插件->插件市場安裝。
啟用服務網格日志采集
登錄服務網格控制臺,在左側的導航欄中選擇網格實例->自定義配置。
選擇啟用日志服務,可以選擇已有的日志項目或者新建日志項目,支持為數據面、控制面和網關分別創建日志單元,您可以參考云日志服務-管理日志項目查看已有的項目。如果需要新建項目,應用服務網格控制臺會自動為您創建對應名稱的項目。
日志中心日志查詢
您可以在日志服務控制臺查詢服務網格控制面和數據面的日志,更多詳情可參考云日志服務-日志查詢。
數據面日志輸出格式
目前服務網格的數據面日志訪問格式采用Envoy默認格式:
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %RESPONSE_FLAGS% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%"\n
以下是一個日志格式的例子:
[2016-04-15T20:17:00.310Z] "POST /api/v1/locations HTTP/2" 204 - 154 0 226 100 "10.0.35.28"
"nsq2http" "cc21d9b0-cf5c-432b-8c7e-98aeb7988cd2" "locations" "tcp://10.0.2.1:80"
以下是日志樣式字段的說明:
| 參數 | 描述 |
|---|---|
| START_TIME | 請求開始時間。 |
| REQ(:METHOD) | 請求方法。 |
| REQ(X-ENVOY-ORIGINAL-PATH?:PATH) | 請求的原始路徑,若無則使用標準路徑。 |
| PROTOCOL | 請求所使用的協議。 |
| RESPONSE_CODE | 服務器對請求的響應狀態碼。 |
| RESPONSE_FLAGS | 響應的標志,提供關于響應的特性信息。 |
| BYTES_RECEIVED | 接收到的字節數,指示請求消息的大小。 |
| BYTES_SENT | 發送出去的字節數,指示響應消息的大小。 |
| DURATION | 請求處理的持續時間,包括接收到請求到發送響應的時間。 |
| RESP(X-ENVOY-UPSTREAM-SERVICE-TIME) | 上游服務的響應時間,表示上游服務處理請求所花費的時間。 |
| REQ(X-FORWARDED-FOR) | 請求的xff頭部。 |
| REQ(USER-AGENT) | 請求的用戶代理,標識發起請求的軟件。 |
| REQ(X-REQUEST-ID) | 請求的唯一標識符,用于跟蹤請求的生命周期。 |
| REQ(:AUTHORITY) | 請求的主機名,在HTTP/2中對應請求的authority字段。 |
RESPONSE_FLAGS說明:
| 完整名稱 | 短名 | 說明 |
|---|---|---|
| NoHealthyUpstream | UH | 沒有健康的上游服務,返回503狀態碼。 |
| UpstreamConnectionFailure | UF | 連接上游失敗,返回503狀態碼。 |
| UpstreamOverflow | UO | 上游服務被熔斷,返回503狀態碼。 |
| NoRouteFound | NR | 找不到路由或者找不到過濾器鏈,返回404狀態碼。 |
| UpstreamRetryLimitExceeded | URX | 超過上游重試次數。 |
| NoClusterFound | NC | 找不到上游集群。 |
| DurationTimeout | DT | 請求超時。 |
| DownstreamConnectionTermination | DC | 下游連接中斷。 |
| FailedLocalHealthCheck | LH | 集群健康檢查失敗,返回503狀態碼。 |
| UpstreamRequestTimeout | UT | 上游服務超時,返回504狀態碼。 |
| LocalReset | LS | 連接被本地重置,返回503狀態碼。 |
| UpstreamRemoteReset | UR | 連接被上游重置,返回503狀態碼。 |
| UpstreamConnectionTermination | UC | 上游連接中斷,返回503狀態碼。 |
| DelayInjected | DI | 請求被注入了延遲。 |
| FaultInjected | FI | 請求被注入了錯誤。 |
| RateLimited | RL | 請求被限流,返回429錯誤碼。 |
| UnauthorizedExternalService | UAEX | 請求被外部授權服務拒絕。 |
| RateLimitServiceError | RLSE | 由于限流服務報錯導致請求被拒絕。 |
| InvalidEnvoyRequestHeaders | IH | 請求頭部異常,返回400錯誤碼。 |
| StreamIdleTimeout | SI | 請求空閑超時,返回408或者504錯誤。 |
| DownstreamProtocolError | DPE | 下游請求HTTP協議錯誤。 |
| UpstreamProtocolError | UPE | 上游返回的HTTP協議錯誤。 |
| UpstreamMaxStreamDurationReached | UMSDR | 請求上游超時。 |
| ResponseFromCacheFilter | RFCF | 請求通過envoy緩存插件支撐。 |
| NoFilterConfigFound | NFCF | 由于沒有在時間期限內收到filter配置導致請求被中斷。 |
| OverloadManagerTerminated | OM | 請求被過載管理器中斷。 |
| DnsResolutionFailed | DF | DNS解析失敗。 |
| DropOverload | DO | 請求被上游過載保護機制中斷,返回503狀態碼。 |