外部直通式網路負載平衡器記錄和監控

本文說明如何為外部直通網路負載平衡器設定及使用 Cloud LoggingCloud Monitoring

後端服務型外部直通式網路負載平衡器支援記錄和監控功能。不過,以目標集區為基礎的外部直通式網路負載平衡器僅支援監控功能。

記錄

記錄提供實用資訊,可協助您排解問題,以及監控後端服務型外部直通式網路負載平衡器。系統會依連線匯總記錄,並以近乎即時的方式匯出。系統會針對每個負載平衡執行個體的 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量產生記錄,包括輸入和輸出流量。如要進一步瞭解記錄項目中提供的欄位,請參閱「記錄欄位」。

使用記錄不會產生額外費用。視記錄匯入方式而定,系統會依 Cloud Logging、BigQuery 或 Pub/Sub 的標準價格計費。啟用記錄不會影響負載平衡器的效能。

記錄有下列好處:

  • 外部直通式網路負載平衡器流量監控。透過連線記錄,您可以瞭解每個連線如何路由至服務後端。

  • 排解網路問題。您可以利用外部直通式網路負載平衡器記錄進行疑難排解。詳情請參閱「排解外部直通網路負載平衡器的相關問題」。

外部用戶端至 VM 流程的記錄格式範例

下圖顯示外部用戶端 (203.0.113.7)、外部直通式網路負載平衡器 (198.51.100.99) 和後端執行個體 (10.240.0.2) 的輸入和輸出流量。

外部用戶端到後端 VM 服務的流程。
外部用戶端與 VM 的輸入和輸出流程。

從用戶端到後端執行個體的連線,其外部直通式網路負載平衡器記錄檔格式如下:

  • connection.clientIp:203.0.113.7
  • connection.serverIp:198.51.100.99
  • bytesSent:1256
  • bytesReceived: 4521

記錄取樣和收集

Google Cloud 會對進出負載平衡器後端 VM 的封包進行取樣。取樣的封包經過處理後,就會產生記錄。

並非每個封包都會取樣。 Google Cloud 會根據實體主機上的流量,對可變動的封包子集進行取樣。最低取樣率為每 1,024 個封包取樣一次。取樣率是由 Google Cloud動態控制。取樣率無法調整。

封包取樣會透過下列方式與防火牆規則互動:

  • 系統會在套用輸出防火牆規則「之前」對封包進行取樣。
  • 系統會在套用輸入防火牆規則「後」取樣封包。

封包取樣後, Google Cloud 會按照下列程序處理取樣封包:

  1. 匯總:系統會匯總每五秒間隔的取樣封包,產生單一流程項目。

  2. 可設定的 (次要) 記錄檔取樣:這是第二個取樣程序,用於取樣流量。您可以根據 logConfig.sampleRate 參數,控制以記錄項目形式發出的流程項目比例。如果 logConfig.sampleRate1.0 (100%),表示系統會處理「所有取樣封包」

  3. 寫入記錄:記錄項目會寫入 Cloud Logging。

選填欄位

記錄包含必填欄位和選填欄位。如需必填和選填欄位的清單,請參閱「記錄欄位」一節。所有必填欄位一律會包含,選填欄位則可自訂是否要保留。

  • 如果選取「include all optional」(包含所有選填欄位),流程記錄會包含記錄格式中的所有選填欄位。記錄格式新增選填欄位時,流程記錄會自動納入這些新欄位。

  • 如果選取「exclude all optional」(排除所有選填欄位),所有選填欄位皆會省略。

  • 如果選取「custom」(自訂),可以依父項欄位 (例如 serverInstance) 或完整名稱 (例如 serverInstance.vm) 指定要納入的選填欄位。

記錄格式新增選填欄位時,記錄不會納入這些欄位,除非這些欄位是您指定要納入的父項欄位中的新欄位。

如果您使用父項欄位指定自訂選填欄位,當記錄格式在該父項欄位中新增選填欄位時,記錄會自動納入這些新欄位。舉例來說,如果您選擇加入 optionalFieldA,系統就會自動加入記錄中名為 optionalFieldA.subField1 的新欄位。

如需自訂選填欄位的操作說明,請參閱「啟用新後端服務的記錄功能」。

回應封包來源 IP 位址規定

只有在封包的來源 IP 位址與負載平衡器的轉送規則 IP 位址相符時,記錄檔才會對後端 VM 的回應封包進行取樣。如果是 TCP 連線,回應封包的來源必須一律與要求封包的目的地相符;但如果是其他通訊協定,回應封包可能會使用不同的來源 IP 位址。詳情請參閱「要求和回傳封包的 IP 位址」。

外部直通式網路負載平衡器記錄功能使用的封包取樣程序,會略過後端 VM 的任何回應封包,前提是這些回應封包的來源與外部直通式網路負載平衡器的轉送規則 IP 位址不符。

啟用新後端服務的記錄功能

控制台

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。

    前往「Load balancing」(負載平衡) 頁面

  2. 點選負載平衡器的名稱。
  3. 按一下「編輯」,然後點選「後端設定」
  4. 選取「建立後端服務」,然後填寫後端服務的必填欄位。
  5. 在「Logging」(記錄) 部分,勾選「Enable logging」(啟用記錄功能) 核取方塊。
  6. 設定「Sample rate」(取樣率) 分數。您可以將速率設為 0.01.0 (預設值)。
  7. 選用:如要在記錄中納入所有選填欄位,請在「Optional fields」(選填欄位) 部分,按一下「Include all optional fields」(包含所有選填欄位)
  8. 點選「更新」,完成編輯後端服務。
  9. 點選「Update」(更新),完成編輯負載平衡器。

gcloud

使用 gcloud compute backend-services create 指令建立後端服務,並啟用記錄功能。

    gcloud compute backend-services create BACKEND_SERVICE \
      --region=REGION \
      --enable-logging \
      --logging-sample-rate=SAMPLE_RATE \
      --logging-optional=LOGGING_OPTIONAL \
      --logging-optional-fields=OPTIONAL_FIELDS
    

更改下列內容:

  • BACKEND_SERVICE:後端服務的名稱。
  • REGION:要建立的後端服務區域。
  • SAMPLE_RATE:只有在為這個後端服務啟用記錄功能時,才能指定這個欄位。

    這個欄位的值必須介於 0.0 to 1.0,其中 0.0 表示不會產生任何記錄,1.0 則表示會為所有取樣封包產生記錄。啟用記錄功能但將取樣率設為 0.0,等同於停用記錄功能。預設值為 1.0

  • LOGGING_OPTIONAL:要納入記錄的選填欄位:
    • INCLUDE_ALL_OPTIONAL 會包含所有選填欄位。
    • EXCLUDE_ALL_OPTIONAL (預設) 會排除所有選填欄位。
    • CUSTOM 可納入您在 OPTIONAL_FIELDS 中指定的選填欄位自訂清單。
  • OPTIONAL_FIELDS:以半形逗號分隔的選填欄位清單,這些欄位會納入記錄。

    例如 serverInstance.vm,serverGkeDetails。只有在 LOGGING_OPTIONAL 設為 CUSTOM 時,才能設定這個值。

API

regionBackendServices.insert 方法發出 POST 要求。

    POST https://compute.googleapis.com/compute/v1/projects/`PROJECT_ID`/regions/`REGION`/backendServices
    

排除所有選填欄位

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

包含所有選填欄位

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

納入選填欄位的自訂清單

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

啟用現有後端服務的記錄功能

控制台

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。

    前往「Load balancing」(負載平衡) 頁面

  2. 點選負載平衡器的名稱。
  3. 按一下「編輯」,然後點選「後端設定」
  4. 按一下後端服務旁的「編輯」
  5. 在「Logging」(記錄) 部分,勾選「Enable logging」(啟用記錄功能) 核取方塊。
  6. 設定「Sample rate」(取樣率) 分數。您可以將速率設為 0.01.0 (預設值)。
  7. 選用:如要在記錄中納入所有選填欄位,請在「Optional fields」(選填欄位) 部分,按一下「Include all optional fields」(包含所有選填欄位)
  8. 點選「更新」,完成編輯後端服務。
  9. 點選「Update」(更新),完成編輯負載平衡器。

gcloud

使用 gcloud compute backend-services update 指令,啟用現有後端服務的記錄功能。

    gcloud compute backend-services update BACKEND_SERVICE \
      --region=REGION \
      --enable-logging \
      --logging-sample-rate=SAMPLE_RATE \
      --logging-optional=LOGGING_OPTIONAL \
      --logging-optional-fields=OPTIONAL_FIELDS
    

更改下列內容:

  • BACKEND_SERVICE:後端服務的名稱。
  • REGION:要建立的後端服務區域。
  • SAMPLE_RATE:只有在為這個後端服務啟用記錄功能時,才能指定這個欄位。

    此欄位的值必須介於 0.0 to 1.0 之間,其中 0.0 表示不會回報任何記錄,1.0 則表示會為所有取樣封包產生記錄。啟用記錄功能但將取樣率設為 0.0,等同於停用記錄功能。預設值為 1.0

  • LOGGING_OPTIONAL:要納入記錄的選填欄位:
    • INCLUDE_ALL_OPTIONAL 會包含所有選填欄位。
    • EXCLUDE_ALL_OPTIONAL (預設) 會排除所有選填欄位。
    • CUSTOM 可納入您在 OPTIONAL_FIELDS 中指定的選填欄位自訂清單。
  • OPTIONAL_FIELDS:以半形逗號分隔的選填欄位清單,這些欄位會納入記錄。

    例如 serverInstance.vm,serverGkeDetails。只有在 LOGGING_OPTIONAL 設為 CUSTOM 時,才能設定這個值。

API

regionBackendServices/patch 方法發出 PATCH 要求。

      PATCH https://compute.googleapis.com/compute/v1/projects/`PROJECT_ID`/regions/`REGION`/backendServices/`BACKEND_SERVICE`
     

排除所有選填欄位

     "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "EXCLUDE_ALL_OPTIONAL"
      }
     

包含所有選填欄位

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

納入選填欄位的自訂清單

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

停用現有後端服務的記錄功能

控制台

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡) 頁面。

    前往「Load balancing」(負載平衡)

  2. 點選負載平衡器的名稱。

  3. 按一下「編輯」,然後按一下「後端設定」

  4. 如要完全停用記錄功能,請在「Logging」(記錄) 部分,取消勾選「Enable logging」(啟用記錄功能) 核取方塊。

  5. 如果保持啟用記錄功能,即可設定不同的「Sample rate」(取樣率) 分數。您可以將速率設為 0.01.0 (預設值)。如要只為 20% 的取樣封包產生記錄,請將值設為 0.2

  6. 點選「更新」,完成編輯後端服務。

  7. 點選「Update」(更新),完成編輯負載平衡器。

gcloud

使用 gcloud compute backend-services update 指令,停用後端服務的記錄功能。

gcloud compute backend-services update BACKEND_SERVICE \
  --region=REGION \
  --no-enable-logging

更改下列內容:

  • BACKEND_SERVICE:後端服務的名稱。
  • REGION:後端服務的區域。

API

regionBackendServices/patch 方法發出 PATCH 要求。

 PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE

 {
 "logConfig": {
   "enable": false
  }
 }
 

查看記錄

記錄檔擷取至 Cloud Logging 後,如果沒有透過記錄檔路由器接收器排除,您可以使用 Cloud Logging APIGoogle Cloud CLI 讀取記錄檔。

如要查看所有外部直通式網路負載平衡器記錄,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

    前往 Logs Explorer

  2. 選取「External Passthrough Network Load Balancer Rule」(外部直通式網路負載平衡器規則) 資源類型。

  3. 選取「loadbalancing.googleapis.com/flows」記錄名稱。

控制台查詢

  1. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

    前往「Logs Explorer」

  2. 點選「Show query」(顯示查詢) 切換鈕。

  3. 將下列內容貼入查詢欄位。並將 PROJECT_ID 改成專案 ID。

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    
  4. 點選「執行查詢」

查看特定後端服務的記錄

如要查看特定後端服務的外部直通式網路負載平衡器記錄,請按照下列步驟操作:

控制台查詢

  1. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

    前往「Logs Explorer」

  2. 點選「Show query」(顯示查詢) 切換鈕。

  3. 將下列內容貼入查詢欄位。將 PROJECT_ID 替換為專案 ID,並將 BACKEND_SERVICE_NAME 替換為後端服務名稱。

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. 點選「執行查詢」

查看後端執行個體群組的記錄

如要查看特定後端執行個體群組的外部直通式網路負載平衡器記錄,請按照下列步驟操作:

控制台查詢

  1. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

    前往「Logs Explorer」

  2. 點選「Show query」(顯示查詢) 切換鈕。

  3. 將下列內容貼入查詢欄位。將 PROJECT_ID 替換為專案 ID,並將 BACKEND_GROUP_NAME 替換為執行個體群組的名稱。

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_group_name="BACKEND_GROUP_NAME"
    
  4. 點選「執行查詢」

記錄檔欄位

記錄包含必填欄位 (也就是每個記錄的預設欄位),以及用來新增其他資訊的選填欄位。如不需要,可以略過選填欄位,節省儲存空間費用。

某些記錄欄位採用多欄位格式,也就是指定欄位會包含多項資料。舉例來說,connection 欄位採用的格式是 IpConnection,也就是一個欄位同時包含來源和目的地 IP 位址及通訊埠,外加通訊協定等資料。以下記錄格式表說明這些多欄位格式的欄位。

受監控的資源是 loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

欄位 欄位格式 欄位類型:必填或選填 說明
連結 IpConnection 必填 描述這個連線的 5 元組。
startTime 字串 必填 採用 RFC 3339 日期字串格式的時間戳記,標記了在匯總時間間隔內發現第一個封包的時間點。
endTime 字串 必填 採用 RFC 3339 日期字串格式的時間戳記,標記了在匯總時間間隔內發現最後一個封包的時間點。
bytesSent int64 必填 從伺服器傳送至用戶端的位元組數。
bytesReceived int64 必填 伺服器從用戶端收到的位元組數。
packetsSent int64 必填 從伺服器傳送至用戶端的封包數。
packetsReceived int64 必填 伺服器從用戶端接收的封包數。
rtt 字串 必填

延遲時間僅適用於 TCP 連線。延遲時間是預估網路往返時間 (RTT) 的總和,加上在用戶端作業系統中處理封包所耗費的時間。

如果是取樣封包,系統會從負載平衡後端的角度計算 RTT,方法是測量後端傳送 TCP 區段與後端接收所傳區段序號的 TCP 應答之間的時差。

延遲時間的格式為字串,開頭為秒數,結尾為「s」,表示秒數。奈秒會以秒的小數表示,例如 250 毫秒的延遲時間會格式化為「0.250000000s」。

serverInstance InstanceDetails 選用 後端 VM 執行個體詳細資料。
clientLocation GeographicDetails 選用 用戶端可用的位置中繼資料。
serverGkeDetails GkeDetails 選用 伺服器後端的 GKE 中繼資料。僅在後端是 GKE 端點時適用。
networkTier NetworkTierDetails 選用 外部連線的網路層級,只有在用戶端不在Google Cloud時才會填入。

IpConnection 欄位格式

欄位 類型 說明
clientIp 字串 用戶端 IP 位址
clientPort int32 用戶端通訊埠。僅適用於 TCP 和 UDP 連線。
serverIp 字串 伺服器 IP 位址 (轉送規則 IP)
serverPort int32 伺服器通訊埠。僅適用於 TCP 和 UDP 連線。
protocol int32 IANA 通訊協定號碼

InstanceDetails 欄位格式

欄位 類型 說明
projectId 字串 針對 VM 所在的專案列出 ID
vm 字串 VM 的執行個體名稱
region 字串 VM 地區
區域 字串 VM 區域
vmIp 字串 提供連線服務的網路介面主要內部 IPv4 位址

GeographicDetails 欄位格式

欄位 類型 說明
continent 字串 洲別名稱
regionCode 字串 Unicode CLDR 地區代碼,例如 USFR。大部分國家的代碼都可以與 ISO-3166-2 代碼直接對應。
subRegion 字串 Unicode CLDR 分區 ID,例如國家/地區的省或州,如 USCACAON。這些 Unicode 代碼是從 ISO-3166-2 標準所定義的分區衍生出來的。
city 字串 城市名稱,例如加州山景城的 Mountain View。這個變數沒有有效值的標準清單。城市名稱可包含 US-ASCII 字母、數字、空格及下列字元:!#$%&'*+-.^_`|~
asn int32 這個端點所屬外部網路的自治系統編號 (ASN)。

GkeDetails 欄位格式

欄位 類型 說明
叢集 ClusterDetails GKE 叢集中繼資料
pod PodDetails GKE Pod 中繼資料,會在流量來源或目的地為 Pod 時填入
service ServiceDetails GKE 服務中繼資料,僅在服務端點中填入。 記錄最多可包含兩項服務。如果相關服務超過兩項,這個欄位會包含單一服務,並附上特殊的 MANY_SERVICES 標記。

ClusterDetails 欄位格式

欄位 類型 說明
叢集 字串 GKE 叢集名稱
clusterLocation 字串 叢集位置。叢集位置可以是可用區或區域。

PodDetails 欄位格式

欄位 類型 說明
pod 字串 Pod 名稱
podNamespace 字串 Pod 的命名空間

ServiceDetails 欄位格式

欄位 類型 說明
service 字串 服務名稱。如果相關服務超過兩項,該欄位會設為特殊的 MANY_SERVICES 標記。
serviceNamespace 字串 服務的命名空間

NetworkTierDetails 欄位格式

欄位 類型 說明
networkTier 字串 連線中使用的 NetworkTier,可以是 [PREMIUM、STANDARD、FIXED_STANDARD、UNKNOWN]。

監控

外部直通式網路負載平衡器會將重要指標匯出至 Cloud Monitoring

監控指標可用於以下目的:

  • 評估負載平衡器的設定、用量和效能
  • 排解問題
  • 提升資源利用率和使用者體驗

除了 Monitoring 預先定義的資訊主頁,您可透過 Monitoring API 建立自訂資訊主頁、設定警告及查詢指標。

查看 Monitoring 資訊主頁

控制台

  1. 前往 Google Cloud 控制台的「Monitoring」頁面。

    前往「Monitoring」

  2. 在導覽窗格中,選取「Dashboards」(資訊主頁)

  3. 選取「Google Cloud Load Balancers」資訊主頁。系統會顯示所有負載平衡器。

  4. 從負載平衡器清單中選取負載平衡器名稱。

在「外部直通式網路負載平衡器詳細資料」窗格中,您可以查看所選負載平衡器的各種詳細資料。這個窗格會顯示目前的設定。

在「主要指標」窗格中,您可以查看各項主要指標的圖表。如要查看特定細目,請按一下「細目」。這個窗格會顯示歷史記錄設定提供的資料,而「外部直通式網路負載平衡器詳細資料」窗格只會顯示目前的設定。詳情請參閱「資訊主頁和圖表」。

定義 Monitoring 自訂資訊主頁

您可以針對外部直通式網路負載平衡器指標建立自訂 Monitoring 資訊主頁。

如需收集的指標清單,請參閱「指標和資源類型」。如要查看可用於篩選結果的屬性清單,請參閱「篩選器」。

控制台

  1. 前往 Google Cloud 控制台的「Monitoring」頁面。

    前往「Monitoring」

  2. 依序選取「Dashboards」(資訊主頁) >「Create Dashboard」(建立資訊主頁)

  3. 按一下 [Add chart] (新增圖表)

  4. 為圖表命名。

  5. 選取指標和篩選器。

    如要尋找外部直通式網路負載平衡器指標,請搜尋 loadbalancing.googleapis.com/l3/external 前置字串。

  6. 按一下 [儲存]

定義 Monitoring 快訊

您可以透過各種外部直通式網路負載平衡器指標定義 Monitoring 快訊

控制台

  1. 前往 Google Cloud 控制台的「Monitoring」頁面。

    前往「Monitoring」

  2. 依序選取「Alerting」(快訊)>「Create a Policy」(建立政策)

  3. 選取資源類型和指標。

    如要尋找外部直通網路負載平衡器資源類型和指標,請在「Find resource type and metric」(尋找資源類型和指標) 欄位中搜尋 loadbalancing.googleapis.com/l3/external

  4. 指定「設定」,設定快訊觸發時機。

  5. 視需要新增「篩選器」

  6. 按一下 [儲存]

指標回報頻率與保留期

外部直通式網路負載平衡器的指標會以 1 分鐘的精細程度,批次匯出至 Monitoring,監控資料會保留六週。 指標是根據取樣流量計算 (取樣率是動態的,無法調整)。資訊主頁會以一小時 (1H)、六小時 (6H)、一天 (1D)、一週 (1W) 和六週 (6W) 的預設間隔提供資料分析。您可以手動索取從六週到六十秒之間任何間隔時間的資料分析。

指標與資源類型

本節說明外部直通式網路負載平衡器的指標和資源類型。

指標

下列外部直通式網路負載平衡器指標會回報給 Monitoring。提出 API 要求時,可以使用這些指標名稱。

metric_name 類型 說明
loadbalancing.googleapis.com/l3/external/ingress_bytes_count 計數器 從用戶端傳送至外部直通式網路負載平衡器後端的位元組數。如果是 TCP 流量,系統只會計算應用程式串流中的位元組。
loadbalancing.googleapis.com/l3/external/ingress_packets_count 計數器 從用戶端傳送至外部直通式網路負載平衡器後端的封包數。
loadbalancing.googleapis.com/l3/external/egress_bytes_count 計數器 從外部直通式網路負載平衡器後端傳送至用戶端的位元組數。 如果是 TCP 流量,系統只會計算應用程式串流中的位元組。
loadbalancing.googleapis.com/l3/external/egress_packets_count 計數器 從外部直通式網路負載平衡器後端傳送至用戶端的封包數。
loadbalancing.googleapis.com/l3/external/rtt_latencies 發行

針對外部直通式網路負載平衡器流程,透過 TCP 連線測得的 RTT 分佈情形。

僅適用於 TCP 流量。

資源類型

外部直通式網路負載平衡器使用下列資源類型:

  • tcp_lb_rule
  • udp_lb_rule
  • loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

外部直通式網路負載平衡器可支援 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 流量。

您可以將資源類型指定為 tcp_lb_ruleudp_lb_rule,將監控資料限制為 TCP 或 UDP 通訊協定。您可以將資源類型指定為 loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule,監控所有支援的通訊協定,包括 TCP、UDP、ESP、GRE、ICMP 和 ICMPv6 通訊協定。

篩選器

系統會針對每個外部直通式網路負載平衡器匯總指標。您可以依據下列維度篩選匯總的指標。

tcp_lb_ruleudp_lb_rule 的資源標籤

您可以依資源限制查詢。您也可以依這些值將結果分組。

resource.label.<var>LABEL_KEY</var>:
label_key 類型 說明
project 字串 與這個資源相關聯的 Google Cloud 專案 ID。
load_balancer_name 字串 負載平衡器的名稱。
region 字串 負載平衡器後端所在的區域,例如 us-central1europe-west1asia-east1
network_name 字串 負載平衡器後端所在的虛擬私有雲網路。
backend_target_type 字串 指出外部直通式網路負載平衡器是以目標集區為基礎,還是以後端服務為基礎。有效值為 BACKEND_SERVICETARGET_POOL
backend_target_name 字串 如果是以目標集區為基礎的外部直通式網路負載平衡器,請輸入目標集區的名稱。 如果是後端服務型外部直通式網路負載平衡器,則為後端服務的名稱。
forwarding_rule_name 字串 轉送規則名稱。
forwarding_rule_network_tier 字串 轉送規則的網路層級
backend_name 字串

處理連線的後端名稱。

如果是以後端服務為基礎的外部直通式網路負載平衡器,這個值就是處理連線的後端執行個體群組或網路端點群組 (NEG) 名稱。

如果是以目標集區為基礎的外部直通式網路負載平衡器,這個值就是目標集區的名稱。

backend_type 字串

處理連線的後端類型。

如果是後端服務型外部直通式網路負載平衡器,值可以是 INSTANCE_GROUPNETWORK_ENDPOINT_GROUP

如果是以目標集區為基礎的外部直通式網路負載平衡器,值為 TARGET_POOL

backend_scope 字串

如果是以後端服務為基礎的外部直通式網路負載平衡器,則為後端執行個體群組或 NEG 的區域或地區。

如果是以目標集區為基礎的網路負載平衡器,值為 UNSUPPORTED_FOR_TARGET_POOL

backend_scope_type 字串

處理連線的後端群組範圍類型。有效值為 ZONEREGION

如果是以目標集區為基礎的網路負載平衡器,值為 UNSUPPORTED_FOR_TARGET_POOL

backend_failover_configuration 字串 處理連線的後端群組容錯移轉設定。有效值為 PRIMARYBACKUPUNKNOWN
backend_subnetwork_name 字串 接收連線的後端子網路名稱。
endpoint_zone 字串 處理連線的後端 VM 所在可用區。

loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule」的資源標籤

您可以依資源限制查詢。您也可以依這些值將結果分組。

resource.label.<var>LABEL_KEY</var>:
label_key 類型 說明
project 字串 與這個資源相關聯的 Google Cloud 專案 ID。
region 字串 負載平衡器後端所在的區域,例如 us-central1europe-west1asia-east1
backend_network_name 字串 負載平衡器後端所在的虛擬私有雲網路。
backend_target_type 字串 處理連線的後端目標類型。有效值為 BACKEND_SERVICETARGET_POOL
backend_service_name 字串 處理連線的後端服務名稱。如果 backend_target_typeTARGET_POOL,則值為 UNSUPPORTED_FOR_TARGET_POOL
primary_target_pool 字串 主要目標集區的名稱。如果 backend_target_typeBACKEND_SERVICE,則值為 UNSUPPORTED_FOR_BACKEND_SERVICE
target_pool 字串 目標集區的名稱。如果 backend_target_typeBACKEND_SERVICE,則值為 UNSUPPORTED_FOR_BACKEND_SERVICE
forwarding_rule_name 字串 外部直通式網路負載平衡器轉送規則的名稱。
backend_group_name 字串 處理連線的後端群組名稱。 如果 backend_target_typeTARGET_POOL,則值為 UNSUPPORTED_FOR_TARGET_POOL
backend_group_type 字串

處理連線的後端群組類型。

如果 backend_target_typeBACKEND_SERVICE,則值為 INSTANCE_GROUPNETWORK_ENDPOINT_GROUP

如果 backend_target_typeTARGET_POOL,則值為 UNSUPPORTED_FOR_TARGET_POOL

backend_group_scope 字串 處理連線的後端群組範圍 (區域或地區名稱)。如果 backend_target_typeTARGET_POOL,則值為 UNSUPPORTED_FOR_TARGET_POOL
backend_subnetwork_name 字串 接收連線的後端子網路名稱。
backend_zone 字串 處理連線的後端 VM 所在可用區。

指標標籤

您可以依指標標籤限制查詢。您也可以依這些值將結果分組。

metric.label.<var>LABEL_KEY</var>:
label_key 類型 說明
client_country 字串 發起連線至外部直通式網路負載平衡器的用戶端所在國家/地區。
client_continent 字串 啟動與外部直通式網路負載平衡器連線的用戶端所在的大陸。
protocol 字串

loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule 資源連線中的通訊協定。

tcp_lb_ruleudp_lb_rule 資源的這項欄位會留空。

監控 API 要求

您可以使用 Monitoring API 的 v3 projects.timeSeries.list 要求,針對外部直通式網路負載平衡器指標建構任意查詢。各種定義的確切結構遵循一般監控篩選器語意。

API 要求範例

  • 在 2019 年 7 月 1 日世界標準時間下午 12:00 至 12:02 期間,取得專案中所有外部直通網路負載平衡器傳送的所有位元組,並以 1 分鐘為間隔匯總。

    timeSeries.list 參數:

    • name:projects/PROJECT_ID
    • 篩選條件: resource.type = "tcp_lb_rule" AND metric.name="loadbalancing.googleapis.com/l3/external/egress_bytes_count"
    • interval.start_time: 2019-07-01T12:00:00Z
    • interval.end_time: 2019-07-01T12:02:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.perSeriesAligner: ALIGN_SUM
  • 在 2019 年 7 月 1 日世界標準時間下午 12:19 至 12:20,取得專案中所有外部直通式網路負載平衡器的 RTT 中位數,並依用戶端國家/地區細分。

    timeSeries.list 參數:

    • name:projects/PROJECT_ID
    • 篩選條件: resource.type = "tcp_lb_rule" AND metric.name="loadbalancing.googleapis.com/l3/external/rtt_latencies"
    • interval.start_time: 2019-07-01T12:19:00Z
    • interval.end_time: 2019-07-01T12:20:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.groupByFields: metric.label.client_country
    • aggregation.perSeriesAligner: ALIGN_PERCENTILE_50
  • 在 2019 年 7 月 1 日世界標準時間下午 12:19 至 12:20 期間,取得特定外部直通式網路負載平衡器的位元組總數,並依端點區域和用戶端所在的大陸細分。

    timeSeries.list 參數:

    • name:projects/PROJECT_ID
    • 篩選條件: resource.type = "tcp_lb_rule" AND resource.label.load_balancer_name = "netlb-bs-1" AND metric.name="loadbalancing.googleapis.com/l3/external/ingress_bytes_count"
    • interval.start_time: 2019-07-01T12:19:00Z
    • interval.end_time: 2017-07-01T12:20:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.groupByFields: metric.label.client_continent
    • aggregation.groupByFields: resource.label.endpoint_zone
    • aggregation.perSeriesAligner: ALIGN_SUM

後續步驟