다양한 서비스에서 자동으로 로그를 생성합니다. 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-app및vco-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 1vracli log-bundle --services service_A,service_B,service_C명명된 제공된 서비스에 대한 로그만 수집하려면 이 명령을 사용합니다. 예를 들면 다음과 같습니다.
vracli log-bundle --services ebs-app,vco-appvracli 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)