將IBM Cloud Kubernetes Service日誌資料傳送到IBM Cloud Logs
在本教學中,您設定IBM Cloud® Kubernetes Service將日誌直接傳送到IBM Cloud Logs。 這些日誌可協助您解決問題並改善Kubernetes叢集和應用程式的運作狀況和效能。
目標
在本教程中,您將
-
在現有的IBM Cloud Kubernetes Service叢集中部署 記載代理程式。
-
驗證日誌資料是否流向您的 IBM Cloud Logs 實例。
開始之前
在開始之前,請確保您具備先決條件。
-
建立一個 IBM Cloud® Kubernetes Service,並設定一個 IBM Cloud Logs 實例。
-
安裝Kubernetes命令列工具 kubectl。
-
安裝 JSON CLI 處理器 (
jq)。 -
安裝 YAML CLI 處理器 (
yq)。
安裝IBM Cloud CLI、kubectl、jq 和 yq 的替代方法是使用 IBM Cloud Shell
連接到您的集群
連接至您的 IBM Cloud Kubernetes Service 集群。 連接到叢集可以讓 kubectl 命令在叢集上運行。
-
登入您的 IBM Cloud 帳戶。 如果您使用聯合 ID,請包含
--sso選項。ibmcloud login -
安裝 IBM Cloud Kubernetes Service CLI 插件
ibmcloud plugin install ks -
列出可用的集群並記下要連接的集群。
ibmcloud ks clusters -
連接到您的集群。 將
<cluster_name>改為群集的名稱。ibmcloud ks cluster config --cluster <cluster_name> -
透過列出所有命名空間中執行的所有 pod,驗證您是否已連接到叢集並可以執行
kubectl命令。kubectl get pods --all-namespaces
建立您的 API 金鑰
在將記載代理程式配置為守護程式集之前,您需要一個 IAM API 金鑰和一個日誌記錄攝取終端節點。 IBM Cloud CLI 用於取得此資訊。
首先,建立服務ID並取得API金鑰。
-
透過執行以下命令建立 服務 ID。
ibmcloud iam service-id-create kubernetes-logs-agent --description "Service ID for sending logs from IKS" -
透過執行下列指令將IBM Cloud Logs的
Sender角色授予已建立的服務 ID。ibmcloud iam service-policy-create kubernetes-logs-agent --service-name logs --roles Sender -
透過執行以下命令建立 IAM API 金鑰。 如果需要,您可以自訂鍵名稱 (
kubernetes-logs-agent-apikey) 和描述 (--d)。ibmcloud iam service-api-key-create kubernetes-logs-agent-apikey kubernetes-logs-agent --description "API key for sending logs to the IBM Cloud Logs service"API 金鑰在
API Key後面的輸出中傳回:ID ApiKey-xxxxxxxx-b815-46c7-bc9f-516115bc31c6 Name kubernetes-logs-agent-apikey Description API key for sending logs to the IBM Cloud Logs service Created At 2024-09-18T17:17+0000 API Key <apikey is displayed here> Locked false
附註:
-
每次建立 API 金鑰時,都會產生一個新的 IAM 金鑰。
-
請確保安全地儲存 API 金鑰,因為它包含敏感資訊。
確定您的日誌記錄端點
所需的第二個資訊是您的IBM Cloud Logs實例的攝取端點。 使用此指令擷取 URL:
ibmcloud resource service-instances --service-name logs --long --output JSON | jq '[.[] | {name: .name, id: .id, region: .region_id, ingestion_endpoint: .extensions.external_ingress}]'
端點類似:
ingestion_endpoint: 3a622101-7521-4002-bf91-8c26e17eedcf.ingress.eu-de.logs.cloud.ibm.com
建立代理 YAML 文件
在此步驟中,建立用於設定代理守護程序集的 YAML 檔案。
-
建立一個名為
logs-values.yaml的檔案,內容如下:此文件包含特定於您的部署的配置。
metadata: name: "logs-agent" image: version: "1.4.0" # required clusterName: "" # Enter the name of your cluster. This information is used to improve the metadata and help with your filtering. env: # ingestionHost is a required field. For example: # ingestionHost: "<logs instance>.ingress.us-east.logs.cloud.ibm.com" ingestionHost: "" # required # If you are using private CSE proxy, then use port number "3443" # If you are using private VPE Gateway, then use port number "443" # If you are using the public endpoint, then use port number "443" ingestionPort: "" # required iamMode: "TrustedProfile" # trustedProfileID - trusted profile id - required for iam trusted profile mode trustedProfileID: "Profile-yyyyyyyy-xxxx-xxxx-yyyy-zzzzzzzzzzzz" # required if iamMode is set to TrustedProfile -
使用特定於您的環境的值更新 yaml 檔案中的欄位。
部署守護程式集
使用 API 金鑰、端點 URL 和 YAML 檔案,將代理部署到群集。
-
執行
helm registry login指令,登入 Helm 註冊表:helm registry login -u iambearer -p $(ibmcloud iam oauth-tokens --output json | jq -r .iam_token | cut -d " " -f2) icr.ioWindows Windows PowerShell 使用者應改用此指令:
helm registry login -u iambearer -p ((ibmcloud iam oauth-tokens --output json | ConvertFrom-Json).iam_token -replace 'Bearer ', '') icr.io有關更多信息,請參閱 在Container Registry中使用Helm圖表:從另一個註冊表或Helm存儲庫中提取圖表。
-
部署代理程式。
如果您使用服務 ID API 金鑰 (
iamMode=IAMAPIKey),請執行下列命令:helm install <install-name> oci://icr.io/ibm/observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value>其中:
<install-name>是 安裝的名稱 ( ) Helmlogs-agent<chart-version>是 Helm Chart 的版本。 Helm圖表版本應與代理映像版本相符。 有關更多信息,請參閱 Helm圖表版本。<PATH>是logs-values.yaml檔案所在的目錄路徑。<APIKey-value>是 與步驟 1 中設定的ServiceID關聯的 IAM apikey
您也可以使用受信任的設定檔部署代理程式。 有關更多信息,請參閱 使用Helm圖表為Kubernetes叢集部署日誌記錄代理程式。
驗證日誌是否正在傳送
為了協助確保您的IBM Cloud® Kubernetes Service日誌成功流向IBM Cloud Logs,請執行下列步驟:
-
造訪 IBM Cloud Logs UI 並點選
Livetail。
-
按一下
Start可即時查看日誌。
應該可以看到來自 kube-system 程式的連續日誌資料流。 這些日誌來自您的叢集。