使用容器深入解析收集 Syslog
容器深入解析提供從 Azure Kubernetes Service (AKS) 叢集中的 Linux 節點收集 Syslog 事件的功能。 這包括從控制平面元件 (例如 kubelet) 收集記錄的功能。 客戶也可以使用 Syslog 來監視安全性和健康情況事件,通常是將 syslog 內嵌至 Microsoft Sentinel 等 SIEM 系統中。
必要條件
- 您必須在叢集上啟用受控識別驗證。 若要啟用,請參閱將 AKS 叢集移轉至受控識別驗證。 注意:啟用受控識別將會建立名為
MSCI-<WorkspaceRegion>-<ClusterName>
的新資料收集規則 (DCR) - 主機節點上應提供連接埠 28330。
- Azure 元件的最低版本
- Azure CLI:Azure CLI 所需的最低版本為 2.45.0 (版本資訊連結)。 如需升級指示,請參閱如何更新 Azure CLI。
- Azure CLI AKS-Preview 延伸模組:AKS-Preview Azure CLI 延伸模組所需的最低版本為 0.5.125 (版本資訊連結)。 如需升級指導方針,請參閱如何更新延伸模組。
- Linux 映像版本:AKS 節點 Linux 映像的最低版本為 2022.11.01。 如需升級說明,請參閱升級 Azure Kubernetes Service (AKS) 節點映像。
如何啟用 Syslog
從 Azure 入口網站
瀏覽至您的叢集。 開啟叢集的 [深入解析] 索引標籤。 開啟 [監視器設定] 面板。 按一下 [編輯收集設定],然後核取 [啟用 Syslog 收集] 核取方塊
使用 Azure CLI 命令
建立新的 AKS 叢集時,在 Azure CLI 中使用下列命令啟用 syslog 收集。
az aks create -g syslog-rg -n new-cluster --enable-managed-identity --node-count 1 --enable-addons monitoring --enable-msi-auth-for-monitoring --enable-syslog --generate-ssh-key
在 Azure CLI 中使用下列命令,在現有的 AKS 叢集上啟用 syslog 收集。
az aks enable-addons -a monitoring --enable-msi-auth-for-monitoring --enable-syslog -g syslog-rg -n existing-cluster
使用 ARM 範本
還可以使用 ARM 範本來啟用 syslog 收集
在 GitHub 內容檔案中下載範本,並將其儲存為 existingClusterOnboarding.json。
在 GitHub 內容檔案中下載參數檔案,並將其儲存為 existingClusterParam.json。
編輯參數檔案中的值:
aksResourceId
:針對 AKS 叢集,使用 [AKS Overview] \(AKS 概觀\) 頁面中的值。aksResourceLocation
:針對 AKS 叢集,使用 [AKS Overview] \(AKS 概觀\) 頁面中的值。workspaceResourceId
:使用 Log Analytics 工作區的資源識別碼。resourceTagValues
:比對為叢集與 DCR 名稱其現有 Container insights 延伸模組資料收集規則 (DCR) 所指定的現有標記值。 該名稱將會是 MSCI-<clusterName>-<clusterRegion>,而且此資源會在 AKS 叢集資源群組中建立。 若這是第一次上線,則您可以設定任意標記值。enableSyslog
:設定為 truesyslogLevels
:由要收集的 syslog 層級組成的陣列。 預設收集所有層級。syslogFacilities
:由要收集的 syslog 設施組成的陣列。 預設收集所有設施
注意
Syslog 層級和設施自訂目前只透過 ARM 範本提供。
部署範本
使用任何有效的方法來部署 Resource Manager 範本,以參數檔案部署範本。 如需不同方法的範例,請參閱部署樣本範本。
使用 Azure PowerShell 部署
New-AzResourceGroupDeployment -Name OnboardCluster -ResourceGroupName <ResourceGroupName> -TemplateFile .\existingClusterOnboarding.json -TemplateParameterFile .\existingClusterParam.json
可能需要幾分鐘的時間才能完成設定變更。 完成時,類似下列範例的訊息會包含以下結果:
provisioningState : Succeeded
使用 Azure CLI 進行部署
az login
az account set --subscription "Subscription Name"
az deployment group create --resource-group <ResourceGroupName> --template-file ./existingClusterOnboarding.json --parameters @./existingClusterParam.json
可能需要幾分鐘的時間才能完成設定變更。 完成時,類似下列範例的訊息會包含以下結果:
provisioningState : Succeeded
如何存取 Syslog 資料
使用內建活頁簿進行存取
若要快速取得 syslog 資料的快照集,客戶可以使用內建 Syslog 活頁簿。 可透過兩種方式存取內建活頁簿。
選項 1 - 容器深入解析中的 [報表] 索引標籤。 瀏覽至您的叢集。 開啟叢集的 [深入解析] 索引標籤。 開啟 [報表] 索引標籤,然後尋找 Syslog 活頁簿。
選項 2 - AKS [瀏覽至您的叢集] 中的 [活頁簿] 索引標籤。 開啟叢集的 [活頁簿] 索引標籤,並尋找 Syslog 活頁簿。
使用 Grafana 儀表板進行存取
客戶可以使用適用於 Grafana 的 Syslog 儀表板來取得其 Syslog 資料的概觀。 對於建立新的 Azure 受控 Grafana 執行個體的客戶,預設可使用此儀表板。 具有現有執行個體或執行自己執行個體的客戶可以從 Grafana 市集匯入 Syslog 儀表板。
注意
您需要對包含 Azure 受控 Grafana 執行個體的訂用帳戶具有「監視讀取器」角色,才能從容器深入解析存取 syslog。
使用記錄查詢進行存取
Syslog 資料會儲存在 Log Analytics 工作區上的 Syslog 資料表中。 可以在 Log Analytics 中建立自己的記錄查詢,以分析此資料或使用任何預先建置的查詢。
您可以透過 [監視器] 功能表中的 [記錄] 功能表開啟 Log Analytics,以存取所有叢集的 Syslog 資料,或從 AKS 叢集的功能表存取該叢集的 Syslog 資料。
範例查詢
下表提供擷取 Syslog 記錄的不同記錄查詢範例。
查詢 | 描述 |
---|---|
Syslog |
所有 Syslog |
Syslog | where SeverityLevel == "error" |
所有具有錯誤嚴重性的 Syslog 記錄 |
Syslog | summarize AggregatedValue = count() by Computer |
依電腦分類的 Syslog 記錄數 |
Syslog | summarize AggregatedValue = count() by Facility |
按設施分類的 Syslog 記錄數 |
Syslog | where ProcessName == "kubelet" |
來自 kubelet 流程的所有 Syslog 記錄 |
Syslog | where ProcessName == "kubelet" and SeverityLevel == "error" |
來自 kubelet 流程的 Syslog 記錄及錯誤 |
編輯 Syslog 收集設定
若要修改 Syslog 收集的設定,請修改啟用時建立的資料收集規則 (DCR)。
從 Azure 入口網站的 [監視器] 功能表中,選取 [資料收集規則]。
選取 DCR,然後選擇 [檢視資料來源]。 選取 Linux Syslog 資料來源,以檢視 Syslog 收集詳細資料。
注意
啟用 syslog 時,會自動建立 DCR。 DCR 遵循命名慣例 MSCI-<WorkspaceRegion>-<ClusterName>
。
針對要收集的每個設施,選取最小記錄層級。
下一步
設定之後,客戶可以開始將 Syslog 資料傳送至所選的工具
閱讀更多內容
在此共享這項功能的意見反應:https://forms.office.com/r/BBvCjjDLTS
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應