ASM支援採集控制平面日誌和日誌警示,例如採集ASM控制平面向資料平面Sidecar推送配置的相關日誌。本文介紹如何啟用控制平面日誌採集和日誌警示。
背景資訊
ASM控制面組件的主要功能之一是推送網格的規則配置到資料面的Sidecar代理或者網關中。如果使用者配置的網格規則內容存在一些衝突導致推送失敗,代理或者網關就接收不到最新的配置內容。雖然代理或網關在不重啟的情況下,可以使用已經接收到的配置繼續運行,但是一旦這些Pod重啟,很有可能導致Sidecar代理或網關啟動失敗。在很多實際情境中,經常出現使用者誤配置引發的網關或代理停用問題,因此啟用控制面的日誌警示,及時發現並解決問題十分必要。
前提條件
已建立ASM執行個體,且版本為1.17.2.35以下。具體操作,請參見建立ASM執行個體。
說明若您的執行個體為1.17.2.35及以上,請參見啟用控制平面日誌採集和日誌警示(新版)。
阿里雲帳號已開通阿里雲Log ServiceSLS。具體操作,請參見開通Log Service。
重要將日誌採集到ASM的Log Service不額外收取任何費用,但Log ServiceSLS會按照寫入資料量計費或按使用功能計費。關於SLS計費的詳細說明,請參見計費概述。
啟用控制平面日誌採集
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在基本資料頁面的配置資訊地區,單擊控制面日誌採集右側的啟用。
重要控制平面日誌庫會儲存最近30天的日誌資料,超出30天的日誌將會被丟棄。
如果您是第一次開啟控制面日誌採集,頁面會彈出啟用控制面日誌對話方塊,您可以選擇建立Project或者使用已有Project,然後單擊確認。
當您選擇建立Project時,可以使用預設Project名稱或者自訂Project名稱。
如果您之前已開啟並禁用過控制面日誌採集,當再次開啟時,會彈出重要提示對話方塊,單擊確定,會自動選擇上次已經指定的Project。
開啟控制面日誌採集後,在基本資料頁面單擊控制面日誌採集右側的查看日誌,即可在Project頁面查看詳細的控制平面日誌。
啟用控制平面日誌警示
啟用控制平面日誌警示之前必須先啟用控制平面日誌採集,否則將無法使用該功能。
當控制平面發往資料平面的xDS請求被資料平面拒絕時,資料平面同步失敗警示將被觸發。此時您的資料平面的Sidecar代理或ASM網關將無法得到最新的配置資訊,存在以下兩種情況:
如果資料平面Sidecar在此之前收到過成功的配置推送,則該Sidecar將保持最後一次收到的成功推送的配置。
如果資料平面Sidecar在此之前尚未收到過成功的配置推送,則該Sidecar將沒有任何配置資訊,這意味著該節點可能沒有任何監聽,也無法處理任何請求和路由規則。
配置警示通知人
您可以配置SLS服務網關內建行動策略,設定警示通知接收人,通知模板等。
在Project列表地區,單擊目標Project名稱,然後在左側導覽列,單擊警示。
在警示中心頁面,單擊
。在使用者組管理頁簽,單擊SLS 服務網格內建使用者組右側操作列下的修改。
在修改使用者組對話方塊,在待新增成員地區選中目標成員,單擊表徵圖,將目標成員添加到已新增成員地區,然後單擊確認。
觸發警示通知樣本
本文限於篇幅無法覆蓋每一個警示項,以下例子將通過錯誤的配置觸發從網格控制面推送配置失敗。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 ,然後單擊使用YAML建立。
在建立頁面,選中目標命名空間和任意情境模板,配置YAML。
本文以default命名空間為例,佈建服務網關,YAML樣本如下:
apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: gateway-test namespace: default spec: selector: istio: ingressgateway servers: - hosts: - '*console.aliyun.com' port: name: https number: 443 protocol: HTTPS tls: credentialName: not-existing-credential mode: SIMPLE
查看警示通知。
在網格詳情頁面左側導覽列,選擇 。
在基本資料頁面的配置資訊地區,單擊控制面日誌採集右側的查看日誌。
在Log Service控制台,搜尋'ACK ERROR',查看警示資訊。
如果您配置了警示通知人的郵箱地址,可以在郵箱中查看警示通知。
警示處理的參考方案
診斷出警告的網格配置
ASM網格診斷在您的叢集中發現了潛在有風險的網格配置,這些配置可能會導致ASM的執行結果不符合預期。您可以通過網格診斷頁面查看警示內容,並遵照網格診斷頁面給出的提示修正錯誤的配置。
診斷出錯誤的網格配置
ASM網格診斷在您的叢集中發現了錯誤的網格配置,這些配置有較高的風險引起不符合預期的行為。您應當儘快在網格診斷頁面查看警示內容,並遵照網格診斷頁面給出的提示修正錯誤的配置。
網格規則配置不符合規範要求導致從網格控制面推送配置失敗
以下表格列出了常見的資料面同步失敗錯誤資訊和處理建議,如果您沒有找到對應的錯誤資訊,請提交工單。
錯誤資訊 | 處理建議 |
Internal:Error adding/updating listener(s) 0.0.0.0_443: Failed to load certificate chain from <inline>, only P-256 ECDSA certificates are supported | 該警示資訊表示資料面叢集不支援您為資料面配置的認證,當前僅支援P-256 ECDSA認證。您需要重新設定認證,具體操作,請參見通過ASM網關啟用HTTPS安全服務。 |
Internal:Error adding/updating listener(s) 0.0.0.0_443: Invalid path: **** | 該警示資訊表示您為資料面配置的憑證路徑有誤或認證不存在,您需要檢查認證掛載路徑是否與Gateway中配置的路徑相符。具體操作,請參見通過ASM網關啟用HTTPS安全服務。 |
Internal:Error adding/updating listener(s) 0.0.0.0_xx: duplicate listener 0.0.0.0_xx found | 該警示資訊表示您為網關配置的監聽連接埠重複,請檢查您的Gateway,重複資料刪除的連接埠。 |
Internal:Error adding/updating listener(s) 192.168.33.189_15021: Didn't find a registered implementation for name: '***' | 該警示資訊表示在Sidecar和Ingressgateway中無法找到您通過EnvoyFilter針對15021這個Listener patch的配置中引用的***,您需要刪除該引用。 |
Internal:Error adding/updating listener(s) 0.0.0.0_80: V2 (and AUTO) xDS transport protocol versions are deprecated in grpc_service *** | 該警示資訊表示即將棄用您資料面的XDS V2協議,這通常是因為您的資料面Sidecar的版本與控制平面不符。升級資料平面的Sidecar可以解決該問題,您需要刪除Pod,該Pod自動重新建立後會自動注入最新版本的Sidecar。 |
相關操作
修改控制平面日誌Project
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在基本資料頁面的配置資訊地區,單擊控制面日誌採集右側的變更記錄檔Project,在變更記錄檔Project對話方塊,按需進行修改,然後單擊確認。