在某些情況下,Microsoft 支援可能需要在 Nexus Kubernetes 叢集中獲得更深入的可見性。 為了方便這樣做,您可以使用日誌收集腳本。 此腳本檢索所有必要的日誌,使 Microsoft 支援能夠更好地了解問題並有效地進行故障排除。
它收集的內容
日誌收集器腳本旨在全面收集系統各個方面的數據,以進行故障排除和分析。 以下是它收集的診斷資料類型的概述:
系統和核心診斷
- 核心資訊:日誌、人類可讀訊息、版本和架構,用於深入的核心診斷。
- 作業系統日誌:詳細說明系統服務系統活動和容器日誌的基本日誌。
硬體和資源使用量
- CPU 和 IO 節流進程:識別節流問題,提供效能瓶頸的見解。
- 網路介面統計資料:詳細統計數據,用於診斷錯誤和資料丟失。
軟體和服務
- 已安裝的套件:所有已安裝套件的列表,對於了解系統的軟體環境至關重要。
- 作用中系統服務:作用中服務、進程快照集以及詳細的系統和進程統計資料的相關資訊。
- 容器執行階段和 Kubernetes 元件記錄:Kubernetes 元件和其他叢集診斷重要服務的記錄。
網路和連線能力
- 網路連線追蹤資訊:用於防火牆診斷的 Conntrack 統計資料和連線清單。
- 網路組態和介面詳細資料:介面組態、IP 路由、位址和鄰居資訊。
- 任何其他介面組態和記錄:與節點內所有介面組態相關的記錄。
- 網路連線測試:測試外部網路連線和Kubernetes API伺服器通訊。
- DNS 解析設定:用於診斷網域名稱解析問題的 DNS 解析器設定。
- 網路配置和日誌:全面的網路數據,包括連線追蹤和介面配置。
- 容器網路介面 (CNI) 組態:容器網路診斷的 CNI 組態。
安全性與合規性
- SELinux 狀態:報告 SELinux 模式,以瞭解存取控制和安全內容。
- IPtables 規則:設定 IPtables 規則集,以深入瞭解防火牆設定。
儲存和檔案系統
- 掛載點和磁碟區資訊:有關掛載點、磁碟區、磁碟使用情況和檔案系統詳細資訊的詳細資訊。
Azure Arc azcmagent 記錄
- 將 Azure 連線機器代理程式和延伸模組的記錄檔收集到 ZIP 封存中。
配置和管理
- 系統配置: Sysctl 參數,用於展示核心運行時設定的全貌。
- Kubernetes 設定和健康情況:Kubernetes 設定詳細資料,包括設定和服務清單。
- 容器執行階段資訊:執行中容器的組態、版本資訊和詳細資料。
- 容器執行階段介面 (CRI) 資訊:容器執行階段介面的作業資料,有助於容器協調流程診斷。
先決條件
- 請確定您具有 Nexus Kubernetes 叢集節點的 SSH 存取權。 如果您可直接 IP 連線到節點,請直接建立 SSH 連線。 否則,請針對伺服器使用 Azure Arc 搭配命令
az ssh arc。 如需各種連線方法的詳細資訊,請參閱連線 至叢集 一文。
Execution
一旦您擁有節點的 SSH 存取權,請執行命令 sudo /opt/log-collector/collect.sh來執行日誌收集器指令碼。
執行時,您會觀察到類似以下內容的輸出:
Trying to check for root...
Trying to check for required utilities...
Trying to create required directories...
Trying to check for disk space...
Trying to start collecting logs... Trying to collect common operating system logs...
Trying to collect mount points and volume information...
Trying to collect SELinux status...
.
.
Trying to archive gathered information...
Finishing up...
Done... your bundled logs are located in /var/log/<node_name_date_time-UTC>.tar.gz
如何下載日誌檔
產生記錄檔之後,您可以使用各種方法,包括 SCP、SFTP 或 Azure CLI,將產生的記錄檔從叢集節點下載至本機電腦。 不過,請務必注意,只有在叢集節點具有直接 IP 連線能力時,才可使用 SCP 或 SFTP。 如果您沒有直接 IP 連線能力,您可以使用 Azure CLI 來下載記錄檔。
此命令對您來說應該很熟悉,因為它與用 SSH 連線到 Nexus Kubernetes 叢集節點的命令相同。 若要將產生的日誌檔從節點下載到本機電腦,請再次使用此命令,並在結尾新增 cat 命令以複製檔案。
RESOURCE_GROUP="myResourceGroup"
CLUSTER_NAME="myNexusK8sCluster"
SUBSCRIPTION_ID="<Subscription ID>"
USER_NAME="azureuser"
SSH_PRIVATE_KEY_FILE="<vm_ssh_id_rsa>"
MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --output tsv --query managedResourceGroupConfiguration.name)
備註
將預留位置變數取代為與您的 Azure 環境和 Nexus Kubernetes 叢集相關的實際值。
az ssh arc --subscription $SUBSCRIPTION_ID \
--resource-group $MANAGED_RESOURCE_GROUP \
--name <VM Name> \
--local-user $USER_NAME \
--private-key-file $SSH_PRIVATE_KEY_FILE
'sudo cat /var/log/node_name_date_time-UTC.tar.gz' > <Local machine path>/node_name_date_time-UTC.tar.gz
在上述命令中,替換 node_name_date_time-UTC.tar.gz 為在叢集節點中建立的記錄檔的名稱,並將 <Local machine path> 替換為您要在本機電腦上儲存該檔案的位置。
後續步驟
將 tar 檔案下載至本機電腦之後,您可以將它上傳至支援票證,讓 Microsoft 支援人員檢閱記錄。