全部產品
Search
文件中心

Simple Log Service:內建CRD模板工具

更新時間:Jul 08, 2024

內建CRD(custom resource definition)模板工具內建了一系列採集能力,通過此工具,可以快速整合標準化採集能力並通過CRD管理採集配置的生命週期,避免控制台配置繁瑣步驟。

前提條件

採集Kubernetes叢集內Logs、Metrics、Trace資料,需要先安裝Logtail組件。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命令驗證工具是否安裝成功,當存在傳回值時,說明工具安裝成功。

使用模板工具建立採集配置

指令構成

./sls-crd-tool <全域參數> <操作指令> <指令參數>

全域參數

參數

功能

--version或-v

查看工具版本。

--help或-h

查看工具協助文檔。

--kubepath path或-k path

指定kube config地址,僅叢集外操作生效,預設參數為 ~/.kube/config

--inner或-i

叢集內操作為在組件alibaba-log-controlle的容器內操作(此容器具有操作aliyunlogconfigs CRD的許可權)。如果無機器存在kube config操作許可權,推薦容器內安裝並操作。預設參數為false。

--language language或-l language

支援zh(中文) 或en(英文) 參數,預設參數為zh。

操作指令

  • list

    • 功能:查看內建模板列表

    • 指令:

      ./sls-crd-tool list
    • 範例:

      ./sls-crd-tool -l en list

      image.png

  • get

    • 功能:下載模板配置, 模板設定檔將儲存為template-<NAME.yaml>檔案。

    • 指令:

      ./sls-crd-tool get

    • 指令參數:

      • --help或-h:查看當前指令文檔。

      • --gen或-g:產生模板檔案,預設參數為true。

      • --output value或-o value輸出檔案格式,支援JSON和yaml,預設參數為yaml。

    • 範例:

      • 下載模板設定檔

        ./sls-crd-tool -l en get autometrics

        image.png

      • 查看模板設定檔

        cat template-autometrics.yaml

        image.png

      • 修改模板設定檔,請參考下表:

        可修改的模板參數分為2種,如下所述,REQUIRED欄位為必要欄位,auto欄位可以按實際需求修改。

        參數類型

        說明

        auto

        支援自動填滿,具體填充參數為安裝指令時設定,目前支援自動填滿的值:ClusterID、MachineGroup、NameSpace、Project。

        重要

        MachineGroup請保持auto 參數,模板會自動根據工作模型自動選擇正確機器組,避免因錯誤機器組導致的採集重複等問題。

        REQUIRED

        REQUIRED 參數為當前CRD 模板必須填寫的參數,請配置為使用情境參數值。

  • apply

    • 功能: 應用模板配置,建立真實aliyunlogconfigs CRD 資源。

    • 指令:

      ./sls-crd-tool apply -f <FILE>
    • 指令參數:

      • --file value或-f value : get指令產生的模板檔案路徑。

      • --create或-c :建立真實aliyunlogconfigs CRD資源,預設參數為true。

      • --namespace value或-n value:選擇組件空間,當叢集安裝多個Logtail組件時生效,預設參數為空白。

      • --help或-h : 查看當前指令文檔。

    • 範例:

      • 驗證參數合法性

        說明

        當前模板設定檔中含有REQUIRED參數未填充。

        ./sls-crd-tool apply -f template-autometrics.yaml --caeate=false -n alibabacloud-sls-new

        image.png

      • 建立真實aliyunlogconfigsCRD資源

        ./sls-crd-tool apply -f template-autometrics.yaml -n alibabacloud-sls-new

        image.png

        kubectl get aliyunlogconfigs.log.alibabacloud.com -n alibabacloud-sls-new

        image.png