在 Azure 操作員 Nexus Kubernetes 叢集節點上執行記錄收集器腳本

在某些情況下,Microsoft 支援可能需要 Nexus Kubernetes 叢集中更深入的可見度。 為了方便使用,您可以使用記錄收集腳本。 此腳本會擷取所有必要的記錄,讓 Microsoft 支援能夠進一步了解問題並有效地進行疑難解答。

它收集的內容

記錄收集器腳本的設計目的是為了針對疑難解答和分析目的,在系統的各個層面全面收集數據。 以下是其收集的診斷數據類型概觀:

系統和核心診斷

  • 核心資訊:記錄、人類可讀取的訊息、版本和架構,以進行深入的核心診斷。
  • 操作系統記錄:詳細描述系統服務和系統服務容器記錄的基本記錄。

硬體和資源使用量

  • CPU 和 IO 節流處理程式:識別節流問題,提供效能瓶頸的深入解析。
  • 網路介面統計數據:用來診斷錯誤和卸除之網路介面的詳細統計數據。

軟體和服務

  • 已安裝的套件:所有已安裝套件的清單,對於了解系統的軟體環境至關重要。
  • 使用中系統服務:使用中服務、處理快照集,以及詳細的系統和進程統計數據資訊。
  • 容器運行時間和 Kubernetes 元件記錄:Kubernetes 元件的記錄,以及叢集診斷的其他重要服務。

網路和連線能力

  • 網路連線追蹤資訊:Conntrack 統計數據和防火牆診斷的聯機清單。
  • 網路設定和介面詳細數據:介面組態、IP 路由、位址和鄰近資訊。
  • 任何其他介面組態和記錄:與節點內所有介面組態相關的記錄。
  • 網路連線測試:測試外部網路連線能力與 Kubernetes API 伺服器通訊。
  • DNS 解析設定:用於診斷功能變數名稱解析問題的 DNS 解析程式設定。
  • 網路設定和記錄:完整的網路數據,包括連線追蹤和介面組態。
  • 容器網路介面 (CNI) 組態:設定 CNI 以進行容器網路診斷。

安全性與合規性

  • SELinux 狀態:報告 SELinux 模式以了解訪問控制和安全性內容。
  • IPtables 規則:設定 IPtables 規則集,以深入瞭解防火牆設定。

儲存體和文件系統

  • 載入點和磁碟區資訊:裝入點、磁碟區、磁碟使用量和文件系統細節的詳細資訊。

設定和管理

  • 系統組態:Sysctl 參數,可全面檢視核心運行時間組態。
  • Kubernetes 設定和健康情況:Kubernetes 設定詳細數據,包括組態和服務清單。
  • 容器運行時間資訊:設定、版本資訊和執行中容器的詳細數據。
  • 容器運行時間介面 (CRI) 資訊:容器運行時間介面的作業數據,有助於容器協調流程診斷。

必要條件

  • 請確定您具有 Nexus Kubernetes 叢集節點的 SSH 存取權。 如果您有節點的直接IP連線能力,請直接建立SSH連線。 否則,請使用適用於伺服器的 Azure Arc 搭配 命令 az ssh arc。 如需各種連線方法的詳細資訊,請參閱 連線到叢集 一文。

執行

一旦您擁有節點的 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

在上述命令中,將 取代為您叢集節點中建立的記錄檔名稱,並將 <Local machine path> 取代node_name_date_time-UTC.tar.gz為您要儲存盤案的本機計算機上的位置。

下一步

將 tar 檔案下載到本機計算機之後,您可以將它上傳至 Microsoft 支援的支援票證,以檢閱記錄。