Kubernetes資料面監控基於Log Service與龍蜥社區合作共建的無侵入監控能力,您可以直觀地分析整個Kubernetes的資料流向與瓶頸問題,輕鬆應對複雜的雲原生環境。
前提條件
使用限制
Kubernetes資料面監控要求主機為x86_64 Linux核心版本為4.19及以上版本或3.1.0版本(僅限centos7.6~7.9作業系統)。您可以通過uname -r
命令查看核心資訊。
控制台方式接入
在日誌應用地區的智能營運頁簽下,單擊全棧可觀測。
在SLS全棧可觀測頁面,單擊目標執行個體。
在左側導覽列中,單擊全棧監控。
首次在該執行個體中使用全棧監控時,還需單擊立即開啟。
在左側導覽列中,單擊資料接入,然後在資料接入配置頁面,找到Kubernetes監控地區的無侵入服務觀測。
首次建立目標監控項的接入配置時,開啟建立開關,可進入配置頁面。如果您已建立過接入配置,則單擊表徵圖,可進入配置頁面。
建立機器組:
如已經安裝,請跳過此步驟。
阿里雲ack叢集建立機器組,請參見建立IP地址機器組。
自建K8s叢集建立機器組,請參見建立使用者自訂標識機器組。
命令列方式接入
下載Logtail CRD 採集配置產生工具:
操作方式
描述
叢集外安裝
叢集外部安裝要求登入賬戶存在
~/.kube/config
設定檔(可以使用kubectl命令),且設定檔具有目的地組群操作許可權。叢集內安裝
容器內安裝基於已安裝組件
alibaba-log-controller
許可權操作CRD 建立,適用於無~/.kube/config
設定檔或網路問題無法串連時進行操作。叢集外安裝
登入叢集,下載模板工具。
中國地區
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
安裝模板工具,安裝成功後會在當前檔案夾產生
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
執行
./sls-crd-tool list
命令驗證工具是否安裝成功,當存在傳回值時,說明工具安裝成功。
容器內安裝
登入叢集,進入
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 ~
下載模板工具。
如叢集內可以下載公網資源,操作方法如下:
中國地區
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上傳等功能將模板工具傳輸至上述容器。
安裝模板工具,安裝成功後會在當前檔案夾產生
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
執行
./sls-crd-tool list
命令驗證工具是否安裝成功,當存在傳回值時,說明工具安裝成功。
使用Logtail CRD採集配置產生工具產生採集配置
查看模板定義:
./sls-crd-tool get ebpfK8sPlugin
將當前執行個體ID替換REQUIRED參數,使用以下命令預覽參數:
./sls-crd-tool apply -f template-ebpfK8sPlugin.yaml --create=false
確認project參數是否為當前執行個體所綁定的project,如正確,請使用以下命令部署模板採集檔案:
./sls-crd-tool apply -f template-ebpfK8sPlugin.yaml
返回資料接入配置介面,如下圖,安裝成功,資源監控中的配置數加一,安裝失敗則不加一。
控制台方式接入
單擊使用現有機器組。
安裝監控組件後,Log Service自動建立名為
k8s-group-${your_k8s_cluster_id}
的機器組,您可以直接使用該機器組。選中目標機器組(
k8s-group-${your_k8s_cluster_id}
),將該機器組從源機器組移動到應用機器組,單擊下一步。重要如果機器組心跳為FAIL,您可單擊自動重試。如果還未解決,請參見Logtail機器組無心跳進行排查。
在資料來源設定中,配置如下參數,然後單擊完成。
參數名稱
說明
一般配置
配置名稱
自訂設定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。例如設定LabelKey為io.kubernetes.container.name,設定LabelValue為^(nginx|cube)$,表示匹配名為nginx、cube的容器。
多個白名單之間為或關係,即只要容器Label滿足任一白名單即可被匹配。
Label黑名單
用於排除不需要採集的容器。
設定LabelKey為具體名稱,LabelValue為Regex。例如設定LabelKey為io.kubernetes.container.name,設定LabelValue為^(nginx|cube)$,表示排除名為nginx、cube的容器。
多個黑名單之間為或關係,即只要容器Label滿足任一黑名單即可被排除。
環境變數白名單
用於指定待採集的容器。
設定EnvKey為具體名稱,EnvValue為Regex。例如設定EnvKey為NGINX_SERVICE_PORT,設定EnvValue為^(80|6379)$,表示匹配服務連接埠為80、6379的容器。
多個白名單之間為或關係,即只要容器的環境變數滿足任一索引值對即可被匹配。
環境變數黑名單
用於排除不需要採集的容器。
設定EnvKey為具體名稱,EnvValue為Regex。例如設定EnvKey為NGINX_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叢集建立機器組,請參見建立使用者自訂標識機器組。