全部產品
Search
文件中心

Simple Log Service:接入無侵入服務觀測

更新時間:Jun 30, 2024

Kubernetes資料面監控基於Log Service與龍蜥社區合作共建的無侵入監控能力,您可以直觀地分析整個Kubernetes的資料流向與瓶頸問題,輕鬆應對複雜的雲原生環境。

前提條件

  • 已建立全棧可觀測執行個體。具體操作,請參見建立執行個體

  • 如果是控制台方式接入,需先安裝監控組件。具體操作,請參見安裝監控組件

使用限制

Kubernetes資料面監控要求主機為x86_64 Linux核心版本為4.19及以上版本或3.1.0版本(僅限centos7.6~7.9作業系統)。您可以通過uname -r命令查看核心資訊。

控制台方式接入

  1. 登入Log Service控制台

  2. 日誌應用地區的智能營運頁簽下,單擊全棧可觀測

  3. SLS全棧可觀測頁面,單擊目標執行個體。

  4. 在左側導覽列中,單擊全棧監控

    首次在該執行個體中使用全棧監控時,還需單擊立即開啟

  5. 在左側導覽列中,單擊資料接入,然後在資料接入配置頁面,找到Kubernetes監控地區的無侵入服務觀測

    首次建立目標監控項的接入配置時,開啟建立開關,可進入配置頁面。如果您已建立過接入配置,則單擊建立表徵圖,可進入配置頁面。

  6. 建立機器組:

    如已經安裝,請跳過此步驟。

命令列方式接入

  1. 下載Logtail CRD 採集配置產生工具:

    操作方式

    描述

    叢集外安裝

    叢集外部安裝要求登入賬戶存在~/.kube/config設定檔(可以使用kubectl命令),且設定檔具有目的地組群操作許可權。

    叢集內安裝

    容器內安裝基於已安裝組件alibaba-log-controller許可權操作CRD 建立,適用於無~/.kube/config設定檔或網路問題無法串連時進行操作

    叢集外安裝

    1. 登入叢集,下載模板工具。

      • 中國地區

        curl https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
      • 海外地區

        curl https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
    2. 安裝模板工具,安裝成功後會在當前檔案夾產生sls-crd-tool工具。

      tar -xvf /tmp/crd-tool.tar.gz -C /tmp &&chmod 755 /tmp/crd-tool/install.sh  && sh -x  /tmp/crd-tool/install.sh
    3. 執行./sls-crd-tool list命令驗證工具是否安裝成功,當存在傳回值時,說明工具安裝成功。

    容器內安裝

    1. 登入叢集,進入alibaba-log-controller容器。

      kubectl get pods -n kube-system -o wide |grep alibaba-log-controller | awk -F ' ' '{print $1}'
      kubectl exec -it {pod} -n kube-system bash
      cd ~
    2. 下載模板工具。

      • 如叢集內可以下載公網資源,操作方法如下:

        • 中國地區

          curl https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
        • 海外地區

          curl https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
      • 如叢集內無法下載公網資源,可以叢集外下載,使用kubectl cp <source> <destination>或者ACK上傳等功能將模板工具傳輸至上述容器。

    3. 安裝模板工具,安裝成功後會在當前檔案夾產生sls-crd-tool工具。

      tar -xvf /tmp/crd-tool.tar.gz -C /tmp &&chmod 755 /tmp/crd-tool/install.sh  && sh -x  /tmp/crd-tool/install.sh
    4. 執行./sls-crd-tool list命令驗證工具是否安裝成功,當存在傳回值時,說明工具安裝成功。

  2. 使用Logtail CRD採集配置產生工具產生採集配置

    1. 查看模板定義:

      ./sls-crd-tool  get ebpfK8sPlugin
    2. 將當前執行個體ID替換REQUIRED參數,使用以下命令預覽參數:

      ./sls-crd-tool  apply -f template-ebpfK8sPlugin.yaml --create=false
    3. 確認project參數是否為當前執行個體所綁定的project,如正確,請使用以下命令部署模板採集檔案:

      ./sls-crd-tool  apply -f template-ebpfK8sPlugin.yaml
    4. 返回資料接入配置介面,如下圖,安裝成功,資源監控中的配置數加一,安裝失敗則不加一。

      image.png

控制台方式接入

  1. 單擊使用現有機器組

    安裝監控組件後,Log Service自動建立名為k8s-group-${your_k8s_cluster_id}的機器組,您可以直接使用該機器組。

  2. 選中目標機器組(k8s-group-${your_k8s_cluster_id}),將該機器組從源機器組移動到應用機器組,單擊下一步

    重要

    如果機器組心跳為FAIL,您可單擊自動重試。如果還未解決,請參見Logtail機器組無心跳進行排查。

  3. 資料來源設定中,配置如下參數,然後單擊完成

    參數名稱

    說明

    一般配置

    配置名稱

    自訂設定Logtail採集配置的名稱。

    叢集

    自訂設定叢集的名稱。

    設定該參數後,Log Service會為通過該Logtail採集配置採集到的監控資料添加cluster=叢集名稱的標籤。

    重要

    請確保該叢集名稱唯一,否則可能出現資料衝突。

    協議處理

    開啟協議處理開關後,Logtail將解析應用程式層的網路通訊協定資料,例如HTTP、MySQL、Redis等。

    網路指標統計間隔

    統計L4網路資料的間隔,此間隔內的資料會被彙總輸出,單位:秒。建議不超過600秒。

    協議指標統計間隔

    統計L7協議網路資料的間隔,此間隔內的資料會被彙總輸出,單位:秒。建議不超過60秒。

    協議採樣率

    設定網路資料的採樣率,僅針對七層網路資料過濾,不影響網路統計值。

    協議白名單

    選擇需要解析的應用程式層協議。

    K8s選取器

    Namespace白名單

    輸入匹配Namespace名稱的Regex,用於指定待採集的命名空間。

    Namespace黑名單

    輸入匹配Namespace名稱的Regex,用於排除不需要採集的命名空間。

    Pod白名單

    輸入匹配Pod名稱的Regex,用於指定待採集的Pod。

    Pod黑名單

    輸入匹配Pod名稱的Regex,用於排除不需要採集的Pod。

    容器白名單

    輸入匹配容器名稱的Regex,用於指定待採集的容器名稱。

    容器黑名單

    輸入匹配容器名稱的Regex,用於排除不需要採集的容器名稱。

    Label白名單

    用於指定待採集的容器。

    設定LabelKey為具體名稱,LabelValue為Regex。例如設定LabelKeyio.kubernetes.container.name,設定LabelValue^(nginx|cube)$,表示匹配名為nginx、cube的容器。

    多個白名單之間為或關係,即只要容器Label滿足任一白名單即可被匹配。

    Label黑名單

    用於排除不需要採集的容器。

    設定LabelKey為具體名稱,LabelValue為Regex。例如設定LabelKeyio.kubernetes.container.name,設定LabelValue^(nginx|cube)$,表示排除名為nginx、cube的容器。

    多個黑名單之間為或關係,即只要容器Label滿足任一黑名單即可被排除。

    環境變數白名單

    用於指定待採集的容器。

    設定EnvKey為具體名稱,EnvValue為Regex。例如設定EnvKeyNGINX_SERVICE_PORT,設定EnvValue^(80|6379)$,表示匹配服務連接埠為80、6379的容器。

    多個白名單之間為或關係,即只要容器的環境變數滿足任一索引值對即可被匹配。

    環境變數黑名單

    用於排除不需要採集的容器。

    設定EnvKey為具體名稱,EnvValue為Regex。例如設定EnvKeyNGINX_SERVICE_PORT,設定EnvValue^(80|6379)$,表示排除服務連接埠為80、6379的容器。

    多個黑名單之間為或關係,即只要容器的環境變數滿足任一索引值對即可被排除。

    進階配置

    丟棄本網資料包

    開啟丟棄本網資料包丟棄本網資料包開關後,Logtail將丟棄對端地址為本地的INET網域網路請求。

    丟棄Unix 網路資料包

    開啟丟棄Unix網路資料包丟棄Unix網路資料包開關後,Logtail將丟棄Unix網域網路請求。

    Unix域常用於本網互動。

    丟棄未知資料包

    開啟丟棄未知資料包開關後,Logtail將丟棄非INET域或Unix域的網路請求。

    容器資訊讀取間隔

    設定全量讀取容器元資訊的時間間隔,單位:秒。建議不超過60秒。

    Socket 資訊讀取間隔

    設定讀取Socket元資訊的時間間隔,單位:秒。建議不超過30秒。

    協議彙總視窗

    設定協議指標統計間隔內進程層級資料彙總視窗大小,用於控制資源消耗,避免大量的不同調用導致Logtail記憶體上升。預設用戶端為500,服務端為5000。

    設定完成後,Log Service將自動產生Metricstore等資產。更多資訊,請參見資產說明

後續步驟

接入Kubernetes資料面監控資料後,全棧可觀測應用會自動產生專屬儀錶盤。您可以通過儀錶盤分析監控資料。更多資訊,請參見查看儀錶盤

建立機器組:如已經安裝,請跳過此步驟。阿里雲ack叢集建立機器組,請參見建立IP地址機器組。自建K8s叢集建立機器組,請參見建立使用者自訂標識機器組。