다양한 서비스에서 자동으로 로그를 생성합니다. vRealize Automation에서 로그 번들을 생성할 수 있습니다. 로그를 vRealize Log Insight로 전송하도록 환경을 구성할 수도 있습니다.

vracli 명령줄 유틸리티에 대한 정보를 보려면 vracli 명령줄에서 --help 인수를 사용합니다(예: vracli log-bundle --help).

vRealize Log Insight 사용에 대한 관련 정보는 vRealize Automation에서 vRealize Log Insight로 로그 전달을 구성하는 방법의 내용을 참조하십시오.

로그 번들 명령

실행하는 서비스에서 생성된 모든 로그를 포함하는 로그 번들을 생성할 수 있습니다. 로그 번들에는 모든 서비스 로그가 포함됩니다. 로그 번들은 문제 해결에 사용할 수 있습니다.

클러스터링된 환경(고가용성 모드)에서는 하나의 노드에서만 vracli log-bundle 명령을 실행합니다. 그러면 환경의 모든 노드에서 로그를 가져옵니다. 하지만 네트워킹 또는 다른 클러스터 문제가 발생하는 경우에는 연결할 수 있는 노드에서 로그를 가져옵니다. 예를 들어 노드가 3개인 클러스터에서 한 노드의 연결이 끊어지면 두 개의 정상 노드에서만 로그가 수집됩니다. vracli log-bundle 명령의 출력에는 발견된 문제와 해결 단계에 대한 정보가 포함됩니다.

  • 로그 번들을 생성하려면 노드에 SSH를 실행하고 다음 vracli 명령을 실행합니다.

    vracli log-bundle

  • 각 노드에서 로그 수집에 대한 시간 초과 값을 변경하려면 다음 vracli 명령을 실행합니다.

    vracli log-bundle --collector-timeout $CUSTOM_TIMEOUT_IN_SECONDS

    예를 들어 환경에 큰 로그 파일, 느린 네트워킹 또는 높은 CPU 사용량이 포함된 경우에는 시간 초과를 기본값인 1000초보다 크게 설정할 수 있습니다.

  • ebs 또는 vro와 같은 특정 서비스 로그에 사용되는 디스크 공간을 확인하려면 다음 vracli 명령을 실행하고 명령 출력을 검토합니다.

    vracli disk-mgr

  • 어셈블리 시간 초과 및 버퍼 위치와 같은 기타 옵션을 구성하려면 다음 vracli 도움말 명령을 사용합니다.

    vracli log-bundle --help

로그 번들 구조

로그 번들은 타임 스탬프가 있는 tar 파일입니다. 번들의 이름은 패턴 log-bundle-<date>T<time>.tar 파일과 일치합니다(예: log-bundle-20200629T131312.tar). 일반적으로 로그 번들에는 환경에 있는 모든 노드의 로그가 포함됩니다. 오류가 발생하는 경우, 가능한 한 많은 로그가 포함됩니다. 최소한 로컬 노드의 로그가 포함됩니다.

로그 번들은 다음과 같은 내용으로 구성됩니다.
  • 환경 파일

    환경 파일에는 다양한 Kubernetes 유지 관리 명령의 출력이 포함됩니다. 노드 및 포드당 현재 리소스 사용량에 대한 정보를 제공합니다. 사용 가능한 모든 Kubernetes 엔티티에 대한 클러스터 정보와 설명도 포함됩니다.

  • 호스트 로그 및 구성

    각 호스트의 구성(예: /etc 디렉토리) 및 호스트 관련 로그(예: journald)는 각 클러스터 노드 또는 호스트에 대해 하나의 디렉토리에 수집됩니다. 디렉토리 이름은 노드의 호스트 이름과 일치합니다. 디렉토리의 내부 컨텐츠는 호스트의 파일 시스템과 일치합니다. 디렉토리 수는 클러스터 노드 수와 일치합니다.

  • 서비스 로그
    Kubernetes 서비스에 대한 로그는 다음 폴더 구조에 있습니다.
    • <hostname>/services-logs/<namespace>/<app-name>/file-logs/<container-name>.log
    • <hostname>/services-logs/<namespace>/<app-name>/console-logs/<container-name>.log

    예제 파일 이름은 my-host-01/services-logs/prelude/vco-app/file-logs/vco-server-app.log입니다.

    • hostname은 애플리케이션 컨테이너가 실행 중이거나 실행되었던 노드의 호스트 이름입니다. 일반적으로 각 서비스의 각 노드마다 인스턴스가 하나씩 있습니다. 예를 들어 노드 3개 = 인스턴스 3개입니다.
    • namespace는 애플리케이션이 배포되는 Kubernetes 네임스페이스입니다. 사용자에게 표시되는 서비스의 경우 이 값은 prelude입니다.
    • app-name은 로그를 생성한 Kubernetes 애플리케이션의 이름입니다(예: provisioning-service-app).
    • container-name은 로그를 생성한 컨테이너의 이름입니다. 일부 앱은 여러 컨테이너로 구성됩니다. 예를 들어 vco-app 컨테이너에는 vco-server-appvco-controlcenter-app 컨테이너가 포함됩니다.
  • (레거시) 포드 로그

    vRealize Automation 8.2에서 로깅 아키텍처가 변경되기 전에는, 서비스 로그가 로그 번들의 각 포드 디렉토리에 있었습니다. vracli log-bundle --include-legacy-pod-logs 명령을 사용하여 포드 로그를 번들에 계속 생성할 수는 있지만, 모든 로그 정보가 각 서비스의 로그에 이미 있기 때문에 그렇게 하지 않는 것이 좋습니다. 포드 로그를 포함하면 로그 번들을 생성하는 데 필요한 시간과 공간이 불필요하게 늘어날 수 있습니다.

로그 번들 크기 줄이기

더 작은 로그 번들을 생성하려면 다음 vracli log-bundle 명령 중 하나를 사용합니다.

  • vracli log-bundle --since-days n

    지난 특정 일수 동안 생성된 로그 파일만 수집하려면 이 명령을 사용합니다. 그러지 않으면 지난 2일 동안의 로그가 보존되고 수집됩니다. 예를 들면 다음과 같습니다.

    vracli log-bundle --since-days 1

  • vracli log-bundle --services service_A,service_B,service_C

    명명된 제공된 서비스에 대한 로그만 수집하려면 이 명령을 사용합니다. 예를 들면 다음과 같습니다.

    vracli log-bundle --services ebs-app,vco-app

  • vracli log-bundle --skip-heap-dumps

    생성된 로그 번들에서 모든 힙 덤프를 제외하려면 이 명령을 사용합니다.

로그 표시

vracli logs <pod_name> 명령을 사용하여 서비스 포드 또는 애플리케이션의 로그를 출력할 수 있습니다.

다음 명령 옵션을 사용할 수 있습니다.
  • --service

    단일 포드 대신 애플리케이션의 모든 노드에 대해 병합된 로그를 표시합니다.

    예: vracli logs --service abx-service-app

  • --tail n

    로그의 마지막 n 줄을 표시합니다. 기본 n 값은 10입니다.

    예: vracli logs --tail 20 abx-service-app-8598fcd4b4-tjwhk

  • --file

    지정한 파일만 표시합니다. 파일 이름을 제공하지 않으면 모든 파일이 표시됩니다.

    예: vracli logs --file abx-service-app.log abx-service-app-8598fcd4b4-tjwhk

로그 순환 이해

로그 순환과 관련하여 다음과 같은 서비스 로그 고려 사항을 인식하는 것이 좋습니다.
  • 모든 서비스는 로그를 생성합니다. 서비스 로그는 전용 /var/log/services-logs 디스크에 저장됩니다.
  • 모든 로그는 정기적으로 순환됩니다. 순환은 매시간 또는 특정 크기 제한에 도달할 때 발생합니다.
  • 모든 이전 로그 순환은 결국 압축됩니다.
  • 로그 순환에 대한 서비스별 할당량이 없습니다.
  • 시스템은 가능한 한 많은 로그를 유지합니다. 자동화는 로그에 대해 사용된 디스크 공간을 정기적으로 확인합니다. 공간의 70%가 차면 로그용 디스크 공간이 60%에 도달할 때까지 이전 로그가 제거됩니다.
  • 더 많은 공간이 필요한 경우 로그 디스크의 크기를 조정할 수 있습니다. vRealize Automation 장치 디스크 공간 늘리기의 내용을 참조하십시오.

로그 디스크 공간을 확인하려면 다음 vracli 명령을 실행합니다. /dev/sdc(/var/log)의 사용 가능한 공간은 각 노드에 대해 거의 30% 또는 그 이상이어야 합니다.

# vracli cluster exec -- bash -c 'current_node; vracli disk-mgr; exit 0'
sc1-10-182-1-103.eng.vmware.com
/dev/sda4(/):
	Total size: 47.80GiB
	Free: 34.46GiB(72.1%)
	Available(for non-superusers): 32.00GiB(66.9%)
	SCSI ID: (0:0)
/dev/sdb(/data):
	Total size: 140.68GiB
	Free: 116.68GiB(82.9%)
	Available(for non-superusers): 109.47GiB(77.8%)
	SCSI ID: (0:1)
/dev/sdc(/var/log):
	Total size: 21.48GiB
	Free: 20.76GiB(96.6%)
	Available(for non-superusers): 19.64GiB(91.4%)
	SCSI ID: (0:2)
/dev/sdd(/home):
	Total size: 29.36GiB
	Free: 29.01GiB(98.8%)
	Available(for non-superusers): 27.49GiB(93.7%)
	SCSI ID: (0:3)