您只需安裝ack-onepilot組件,即可監控部署在Container Service Kubernetes 版ACK或Container Compute ServiceACS中的Java應用,並查看應用拓撲、介面調用、異常事務和慢事務等相關監控資料。本文介紹如何為Container Service Kubernetes 版ACK和Container Compute ServiceACS中的Java應用安裝探針。
Container Service Kubernetes 版ACK和Container Compute ServiceACS安裝探針的操作相同,本文以Container Service Kubernetes 版ACK為例示範安裝探針的操作。
ack-onepilot組件說明
應用監控探針接入助手(ack-onepilot)是用於接入各語言探針的重要組件,可以協助使用者在容器環境中自動準備好應用監控探針包並構建好探針的上報環境。應用監控探針接入助手(ack-onepilot)的基本原理請參見ack-onepilot組件基本原理說明。
探針接入後,為了確保您的使用體驗,在新版本探針發布後,當應用重啟時,ack-onepilot將會自動將探針升級到最新版本,如果您不需要跟隨應用監控探針的版本發布自動更新掛載的探針,可以自主控制探針版本。具體操作,請參見自主控制探針版本。
步驟一:安裝探針接入助手(ack-onepilot)
登入Container Service管理主控台,在叢集列表頁面單擊目的地組群名稱。
-
在左側導覽列單擊組件管理,搜尋並定位ack-onepilot。
重要ack-onepilot版本需在5.1.0或以上。
在ack-onepilot卡片上單擊安裝。
說明ack-onepilot組件預設支援1000個pod規模,叢集pod每超過1000個,ack-onepilot資源對應的CPU請增加0.5核、記憶體請增加512 MB。
如果在ACS叢集中安裝ack-onepilot,請在安裝卡片的最下方配置accessKey與accessKeySecret,阿里雲帳號的AccessKey ID和AccessKey Secret。擷取方法,請參見建立AccessKey。請確認對應的阿里雲帳號已包含AliyunARMSFullAccess和AliyunSTSAssumeRoleAccess許可權。
在彈出的頁面中可以配置相關的參數,建議使用預設值,單擊確認。
說明安裝完成後,您可以在組件管理頁面升級、配置或卸載ack-onepilot組件。
步驟二:授予ARMS資源的存取權限
ACK託管叢集
如果ACK託管叢集中不存在ARMS Addon Token,請執行以下操作手動為叢集授予ARMS資源的存取權限。如果已經存在ARMS Addon Token,請跳轉至步驟三。
叢集存在ARMS Addon Token時,ARMS會進行免密授權。Kubernetes託管版叢集預設存在ARMS Addon Token,但對於部分早期建立的Kubernetes託管版叢集,可能會存在沒有ARMS Addon Token的情況,因此,對於Kubernetes託管版叢集,建議首先檢查ARMS Addon Token是否存在。若不存在,需進行手動授權。
專有版叢集/註冊叢集
如果需要監控ACK專有版叢集和ACK One註冊叢集應用,請確認對應的阿里雲帳號已包含AliyunARMSFullAccess和AliyunSTSAssumeRoleAccess許可權。添加許可權的操作,請參見管理RAM使用者的許可權。
安裝ack-onepilot組件後,還需要在ack-onepilot中填寫有ARMS許可權的阿里雲帳號AK/SK。
方式一:Helm中直接填寫AK/SK
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
-
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列選擇頁面,單擊ack-onepilot組件右側的更新。
-
將
accessKey和accessKeySecret替換為當前帳號的AccessKey,然後單擊確定。說明擷取AccessKey的操作,請參見建立AccessKey。
在YAML配置編輯器的
controller配置段中,找到accessKey: __ACCESSKEY__和accessKeySecret: __ACCESSKEY_SECRET__,將佔位符替換為實際的AccessKey資訊。 -
重啟應用Deployment。
方式二:通過K8s Secret引入AK/SK
-
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
-
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列選擇。
-
選擇ack-onepilot命名空間,然後建立Secret,添加AK/SK資訊。
說明擷取AccessKey的操作,請參見建立AccessKey。
Secret 名稱設定為
ack-onepilot-aksk,類型選擇 Opaque,在資料區域添加兩行:名稱分別為ak和sk,值分別填入對應的 AccessKey ID 和 AccessKey Secret,然後單擊確定。 -
在左側導覽列選擇,單擊ack-onepilot組件(一般在ack-onepilot命名空間下,名稱為ack-onepilot-ack-onepilot)。
-
在ack-onepilot-ack-onepilot頁面右上方單擊編輯,然後在環境變數地區添加
ONE_PILOT_ACCESSKEY和ONE_PILOT_ACCESSKEY_SECRET,通過保密字典引用的方式替換為Secret中儲存的值,單擊確定。保密字典選擇 ack-onepilot-aksk,ONE_PILOT_ACCESSKEY 的鍵名選擇 ak,ONE_PILOT_ACCESSKEY_SECRET 的鍵名選擇 sk。
ASK/ECI叢集
如果需監控ACK Serverless叢集或對接了ECI的叢集應用,請在雲資源訪問授權頁面完成授權,然後重啟ack-onepilot組件下的所有Pod。
步驟三:為Java應用開啟應用監控
建立一個無狀態(Deployment)應用並開啟應用監控的完整YAML樣本模板如下:
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
-
在无状态頁面的目標應用右側選擇。
如需建立一個新應用,單擊使用YAML建立資源。
-
在YAML檔案中將以下
labels添加到spec.template.metadata層級下。labels: armsPilotAutoEnable: "on" armsPilotCreateAppName: "deployment-name" # 請將deployment-name替換為您的應用程式名稱。 armsPilotAppWorkspace: "workspace" # 替換為當前Workspace名稱。 aliyun.com/app-language: javaapiVersion: v1 kind: Namespace metadata: name: arms-demo --- apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: arms-springboot-demo namespace: arms-demo labels: app: arms-springboot-demo spec: replicas: 2 selector: matchLabels: app: arms-springboot-demo template: metadata: labels: app: arms-springboot-demo armsPilotAutoEnable: "on" armsPilotCreateAppName: "arms-k8s-demo" armsPilotAppWorkspace: "workspace" spec: containers: - resources: limits: cpu: 0.5 image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1 -
單擊更新。
查看監控詳情
登入CloudMonitor2.0控制台,選擇目標工作空間,在左側導覽列選擇。
-
在應用列表頁面可以看到已接入的應用,單擊應用程式名稱可以查看詳細的應用監控資料。
> YAML 編輯