다음을 통해 공유


Azure Operator Nexus Kubernetes 클러스터 노드에서 로그 수집기 스크립트 실행

Microsoft 지원은 특정 시나리오에서 Nexus Kubernetes 클러스터 내에서 더 심층적인 가시성이 필요할 수 있습니다. 이를 용이하게 하기 위해 로그 수집 스크립트를 사용할 수 있습니다. 이 스크립트는 필요한 모든 로그를 검색하여 Microsoft 지원을 통해 문제를 더 잘 이해하고 효과적으로 해결할 수 있습니다.

수집하는 항목

로그 수집기 스크립트는 문제 해결 및 분석을 위해 시스템의 다양한 측면에서 데이터를 포괄적으로 수집하도록 설계되었습니다. 다음은 수집하는 진단 데이터의 유형에 대한 개요입니다.

시스템 및 커널 진단

  • 커널 정보: 심층 커널 진단을 위한 로그, 사람이 읽을 수 있는 메시지, 버전 및 아키텍처입니다.
  • 운영 체제 로그: 시스템 활동 및 시스템 서비스에 대한 컨테이너 로그를 자세히 설명하는 필수 로그입니다.

하드웨어 및 리소스 사용량

  • CPU 및 IO 제한 프로세스: 제한 문제를 식별하여 성능 병목 상태에 대한 인사이트를 제공합니다.
  • 네트워크 인터페이스 통계: 오류 및 삭제를 진단하는 네트워크 인터페이스에 대한 자세한 통계입니다.

소프트웨어 및 서비스

  • 설치된 패키지: 시스템의 소프트웨어 환경을 이해하는 데 필수적인 설치된 모든 패키지 목록입니다.
  • 활성 시스템 서비스: 활성 서비스, 프로세스 스냅샷, 자세한 시스템 및 프로세스 통계에 대한 정보입니다.
  • 컨테이너 런타임 및 Kubernetes 구성 요소 로그: Kubernetes 구성 요소에 대한 로그 및 클러스터 진단을 위한 기타 중요한 서비스입니다.

네트워킹 및 연결

  • 네트워크 연결 추적 정보: 방화벽 진단을 위한 연결 추적 통계 및 연결 목록입니다.
  • 네트워크 구성 및 인터페이스 세부 정보: 인터페이스 구성, IP 라우팅, 주소 및 인접 정보입니다.
  • 추가 인터페이스 구성 및 로그: 노드 내의 모든 인터페이스 구성과 관련된 로그입니다.
  • 네트워크 연결 테스트: 외부 네트워크 연결 및 Kubernetes API 서버 통신을 테스트합니다.
  • DNS 확인 구성: 도메인 이름 확인 문제를 진단하기 위한 DNS 확인자 구성입니다.
  • 네트워킹 구성 및 로그: 연결 추적 및 인터페이스 구성을 포함한 포괄적인 네트워킹 데이터입니다.
  • CNI(컨테이너 네트워크 인터페이스) 구성: 컨테이너 네트워킹 진단을 위한 CNI 구성입니다.

보안 및 규정 준수

  • SELinux 상태: 액세스 제어 및 보안 컨텍스트를 이해하기 위해 SELinux 모드를 보고합니다.
  • IPtables 규칙: 방화벽 설정에 대한 인사이트를 위한 IPtables 규칙 집합 구성입니다.

스토리지 및 파일 시스템

  • 탑재 지점 및 볼륨 정보: 탑재 지점, 볼륨, 디스크 사용량 및 파일 시스템 관련 세부 정보입니다.

구성 및 관리

  • 시스템 구성: 커널 런타임 구성에 대한 포괄적인 보기를 위한 Sysctl 매개 변수입니다.
  • Kubernetes 구성 및 상태: 구성 및 서비스 목록을 포함한 Kubernetes 설정 세부 정보입니다.
  • 컨테이너 런타임 정보: 구성, 버전 정보 및 실행 중인 컨테이너에 대한 세부 정보입니다.
  • CRI(컨테이너 런타임 인터페이스) 정보: 컨테이너 오케스트레이션 진단에 도움이 되는 컨테이너 런타임 인터페이스에 대한 작업 데이터입니다.

전제 조건

  • Nexus Kubernetes 클러스터 노드에 대한 SSH 액세스 권한이 있는지 확인합니다. 노드에 대한 직접 IP 연결이 가능한 경우 SSH 연결을 직접 설정합니다. 그렇지 않으면 az ssh arc 명령을 통해 서버용 Azure 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를 사용하여 로그 파일을 다운로드할 수 있습니다.

이 명령은 Nexus Kubernetes 클러스터 노드에 SSH하는 데 사용되는 것과 동일한 명령이기 때문에 친숙해 보일 것입니다. 생성된 로그 파일을 노드에서 로컬 컴퓨터로 다운로드하려면 이 명령을 다시 사용하고 끝에 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 지원의 지원 티켓에 업로드하여 로그를 검토할 수 있습니다.