全部產品
Search
文件中心

Application Real-Time Monitoring Service:手動接入應用至應用監控 eBPF 版

更新時間:Jul 06, 2024

阿里雲應用監控 eBPF 版是一套針對Kubernetes叢集開發的一站式可觀測性產品,為Kubernetes叢集手動安裝應用監控 eBPF 版組件後,即可查看基於Kubernetes叢集下的指標、應用鏈路、日誌和事件。

前提條件

說明

應用監控 eBPF 版目前正在公測中,公測期間您可以免費使用阿里雲應用監控 eBPF 版,如果您在使用中有任何問題,請聯絡應用監控 eBPF 版答疑DingTalk群(群號:35568145)擷取協助。

接入說明

為Kubernetes叢集安裝應用監控 eBPF 版組件即可將叢集接入應用監控 eBPF 版

安裝前,需先檢查目的地組群是否存在ARMS Addon Token,否則會出現許可權不足的報錯。若存在ARMS Addon Token,ARMS會進行免密授權,組件安裝完成後,即可使用應用監控 eBPF 版;若不存在ARMS Addon Token,則需要手動添加ARMS和鏈路追蹤權限原則。查看ARMS Addon Token和手動添加權限原則方法如下:

查看叢集是否存在ARMS Addon Token。

  1. 登入Container Service管理主控台,在叢集列表頁面,單擊目的地組群名稱進入叢集詳情頁。

  2. 在左側導覽列選擇組態管理 > 保密字典,然後在頂部選擇命名空間kube-system,查看addon.arms.token是否存在。

手動添加權限原則。

  1. 登入Container Service管理主控台

  2. 在左側導覽列選擇叢集,然後單擊目的地組群名稱。

  3. 在目的地組群的叢集資訊頁面上單擊叢集資源頁簽,然後單擊Worker RAM角色右側的連結。

  4. 在角色頁面的許可權管理頁簽上,單擊新增授權

  5. 選擇AliyunARMSFullAccessAliyunTracingAnalysisFullAccess系統許可權,然後單擊確定

說明
  • Kubernetes託管版叢集:對於部分Kubernetes託管版叢集,可能存在沒有ARMS Addon Token的情況,因此,對於Kubernetes託管版叢集,建議首先檢查ARMS Addon Token是否存在。若不存在,仍需進行手動授權。

  • Kubernetes專有版叢集:預設不支援ARMS Addon Token,需進行手動授權。

安裝應用監控 eBPF 版組件

為已有應用安裝組件

如果您的應用已安裝過應用監控 eBPF 版組件,請在Container Service管理主控台目的地組群下的營運管理 > 組件管理頁面確認ack-arms-cmonitor組件版本是否為4.0.0或以上,如果不是,請單擊升級將組件升級至最新版本。

  1. 登入Container Service管理主控台,在叢集列表頁面單擊目的地組群名稱。

  2. 在左側導覽列,選擇營運管理 > 叢集拓撲

  3. 在叢集拓撲頁面,單擊開始安裝。ACK控制台將會為您自動安裝應用監控 eBPF 版組件。

    說明

    命名空間預設為arms-prom

  4. 如果是專有版叢集,請更新AK/SK配置。

    1. 在左側導覽列,選擇應用 > Helm

    2. 在arms-cmonitor右側單擊更新,修改accessKeyaccessKeySecret為阿里雲帳號的AccessKey ID和AccessKey Secret。擷取方法,請參見擷取AccessKey

      重要

      請確認對應的阿里雲帳號已包含AliyunARMSFullAccessAliyunSTSAssumeRoleAccess許可權。

    3. 單擊確定

建立應用時安裝組件

  1. 登入Container Service管理主控台,在叢集列表頁面上的目的地組群右側操作列單擊應用管理

  2. 無狀態頁面右上方單擊使用YAML建立資源

  3. 選擇樣本模板,並在模板(YAML格式)中將以下labels添加到spec.template.metadata層級下。

    labels:
      armseBPFAutoEnable: "on"
      armseBPFCreateAppName: "<your-deployment-name>"    //請將<your-deployment-name>替換為您的應用程式名稱。

    建立一個無狀態(Deployment)應用並開啟ARMS應用監控 eBPF 版的完整YAML樣本模板如下:

    展開查看完整樣本YAML檔案。

    apiVersion: 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
            armseBPFAutoEnable: "on"
            armseBPFCreateAppName: "arms-k8s-demo"
        spec:
          containers:
            - resources:
                limits:
                  cpu: 0.5
              image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
              imagePullPolicy: Always
              name: arms-springboot-demo
              env:
                - name: SELF_INVOKE_SWITCH
                  value: "true"
                - name: COMPONENT_HOST
                  value: "arms-demo-component"
                - name: COMPONENT_PORT
                  value: "6666"
                - name: MYSQL_SERVICE_HOST
                  value: "arms-demo-mysql"
                - name: MYSQL_SERVICE_PORT
                  value: "3306"
    ---
    apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
    kind: Deployment
    metadata:
      name: arms-springboot-demo-subcomponent
      namespace: arms-demo
      labels:
        app: arms-springboot-demo-subcomponent
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: arms-springboot-demo-subcomponent
      template:
        metadata:
          labels:
            app: arms-springboot-demo-subcomponent
            armseBPFAutoEnable: "on"
            armseBPFCreateAppName: "arms-k8s-demo-subcomponent"
        spec:
          containers:
            - resources:
                limits:
                  cpu: 0.5
              image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
              imagePullPolicy: Always
              name: arms-springboot-demo-subcomponent
              env:
                - name: SELF_INVOKE_SWITCH
                  value: "false"
                - name: MYSQL_SERVICE_HOST
                  value: "arms-demo-mysql"
                - name: MYSQL_SERVICE_PORT
                  value: "3306"
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        name: arms-demo-component
      name: arms-demo-component
      namespace: arms-demo
    spec:
      ports:
        # the port that this service should serve on
        - name: arms-demo-component-svc
          port: 6666
          targetPort: 8888
      # label keys and values that must match in order to receive traffic for this service
      selector:
        app: arms-springboot-demo-subcomponent
    ---
    apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
    kind: Deployment
    metadata:
      name: arms-demo-mysql
      namespace: arms-demo
      labels:
        app: mysql
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: mysql
      template:
        metadata:
          labels:
            app: mysql
        spec:
          containers:
            - resources:
                limits:
                  cpu: 0.5
              image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1
              name: mysql
              ports:
                - containerPort: 3306
                  name: mysql
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        name: mysql
      name: arms-demo-mysql
      namespace: arms-demo
    spec:
      ports:
        # the port that this service should serve on
        - name: arms-mysql-svc
          port: 3306
          targetPort: 3306
      # label keys and values that must match in order to receive traffic for this service
      selector:
        app: mysql
    --

相關文檔

接入應用監控 eBPF 版後,即可查看ACK叢集應用的關鍵計量、上下遊相依元件、拓撲圖等,更多資訊,請參見應用詳情