VMware ESXi는 다른 운영 체제 및 소프트웨어 제품과 유사하게 로그 파일을 작성합니다. 최근 블로그 게시물에서 가장 유용한 VMware 로그를 다루었으며, 이 게시물에서는 구성을 확장합니다. ESXi를 설치한 후 로그 파일은 기본 위치에 저장됩니다. 그러나 필요한 경우 VMware 로그 위치를 변경할 수 있습니다. 이 블로그 게시물에서는 ESXi 로그 위치를 명령 줄 및 그래픽 사용자 인터페이스(GUI)에서 변경하는 방법에 대해 설명합니다.
VMware 로그 위치를 변경해야 하는 이유는 무엇입니까?
VMware ESXi 로그는 기본적으로 ESXi 호스트가 다시 부팅될 때 삭제됩니다. 각 호스트 부팅 후 VMware ESXi 로그가 삭제되지 않도록 하려면 스크래치 파티션의 기본 위치에서 ESXi 호스트의 VMware 로그 위치를 변경할 수 있습니다. 이 예에서는 스토리지의 디렉터리와 같은 영구 스토리지에 VMware ESXi 로그를 저장하도록 변경하는 방법에 대해 설명합니다.
VMware ESXi를 영구 스토리지인 데이터스토어에 로그를 저장하도록 구성하는 첫 번째 접근 방법은 영구 스크래치 공간을 설정하는 것입니다. 기본적으로 ESXi는 스크래치 공간으로 인메모리 파일 시스템(tmpfs)을 사용하므로 부팅시 로그가 손실됩니다. 그러나 영구 스크래치 공간을 사용하면 로그가 부팅 간에 보존되고 지정된 데이터스토어에 저장됩니다.
두 번째 접근 방법은 스크래치 파티션 구성을 그대로 두고 스크래치 파티션에서 로그 파일을 영구적인 데이터스토어로 변경하는 것입니다. 이 접근 방법을 우리의 예에서 사용합니다.
ESXi 시스템 로그의 위치를 ESXi 명령 줄 및 VMware vSphere Client를 사용하여 GUI에서 변경할 수 있습니다.
ESXi 로그 위치를 명령 줄을 사용하여 변경하는 방법
다음 단계를 수행하여 명령 줄에서 ESXi 로그 위치를 변경합니다.
- 먼저, 로그를 저장할 데이터 스토어를 식별합니다. 로그 파일을 수용할 충분한 여유 공간이 있는지 확인하세요.
- SSH를 활성화하고 ESXi 호스트에 연결합니다. SSH 클라이언트(예: PuTTY)를 사용하여 ESXi 호스트의 관리 IP 주소에 연결합니다.
- VMware 로그의 현재 스크래치 구성 및 위치를 확인합니다. VMware 로그 저장을 위한 현재 구성을 확인하기 위해 다음 명령을 실행하세요:
esxcli system syslog config get
스크린샷에 표시된 결과를 보면, /scratch/log가 로컬 로그 출력입니다.
- 현재 스크래치 구성에 대한 정보를 보려면 다음 명령을 사용할 수도 있습니다:
vim-cmd hostsvc/advopt/view ScratchConfig.ConfiguredScratchLocation
- 데이터 저장소에 디렉터리를 만듭니다. 로그를 저장할 데이터 저장소에 디렉터리를 만들려면 다음 명령을 사용하십시오:
mkdir /vmfs/volumes/<datastore_name>/log
<datastore_name>을(를) 데이터 저장소의 이름으로 바꿉니다 (우리 경우에는 datastore10a).
우리 경우에는 다음 명령입니다:
mkdir /vmfs/volumes/datastore10a/log
- VMware 로그를 저장할 새 위치를 설정하세요. 다음과 같은 명령을 사용하여 로컬 또는 원격 ESXi 호스트의 데이터스토어에 있는 디렉토리로 설정할 수 있습니다:
esxcli system syslog config set --logdir=/vmfs/directory/path --loghost='tcp://hostname:514'
다음 명령을 사용하여 최근에 생성된 디렉토리를 로컬 ESXi 호스트의 Datastore10a에 새 위치로 설정했습니다:
esxcli system syslog config set --logdir=/vmfs/volumes/Datastore10a/log
“Logdir must exist and be a directory”와 같은 오류가 발생하는 경우, 필요한 디렉토리가 이미 있는 경우, 인간 친화적인 데이터스토어 이름 대신 데이터스토어(UUID)를 사용해 보십시오. 데이터스토어(UUID)를 확인하는 가장 쉬운 방법은 데이터스토어 디렉토리로 이동하는 것입니다:
cd /vmfs/volumes/Datastore10a/
현재 디렉토리의 경로를 확인하면 데이터스토어(UUID)가 표시됩니다. 저희 경우, datastore10a의 UUID는 609a545a-50d29185-ffbb-000c293004f2입니다.
다음 명령을 사용하여 데이터스토어 이름 대신 데이터스토어(UUID)를 경로에 사용하여 새 로그 위치를 설정하세요:
esxcli system syslog config set --logdir=/vmfs/volumes/609a545a-50d29185-ffbb-000c293004f2/log
명령이 성공적으로 실행되었습니다.
- 새로운 설정을 적용하고 로그를 지속적인 위치인 데이터스토어의 디렉토리에 기록하기 위해 syslog를 다시로드하세요:
esxcli system syslog reload
ESXi가 다시로드 된 후에는 지정된 데이터 저장소의 지정된 디렉터리에 로그를 저장합니다. 이렇게 하면 로그가 재부팅 간에 보존되고 로그 파일에 대한 더 지속적이고 신뢰할 수 있는 저장소 솔루션이 제공됩니다.
VMware vSphere Client를 사용하여 ESXi 로그 위치 변경
다음 단계를 수행하여 VMware vSphere Client를 사용하여 vCenter GUI에서 ESXi 로그 위치를 변경하십시오:
- 호스트 및 클러스터보기를 선택하고 탐색 창(인터페이스의 왼쪽에 위치함)에서 필요한 ESXi 호스트를 선택하십시오.
- 구성 탭을 클릭한 다음 구성 창의 시스템 섹션에서 고급 시스템 설정을 클릭하십시오.
- Syslog.global.logDir 키를 구성하려면 이 키를 찾으십시오. 우리의 경우, 이 키는 페이지 31에 위치합니다.
편집을 클릭하여 Syslog.global.logDir 키의 값을 변경하십시오.
- A new window to edit advanced system settings opens.
기본 /scratch/log 값을 데이터 저장소의 디렉터리로 변경하고 설정을 저장하려면 확인을 클릭하십시오.
VMware 호스트 클라이언트에서 ESXi 로그 위치 변경
vCenter Server가 없거나 독립형 ESXi 호스트를 사용하는 경우 VMware 호스트 클라이언트에서 ESXi 로그 위치를 변경할 수 있습니다:
- ESXi 호스트의 IP 주소를 웹 브라우저에 입력하고 VMware 호스트 클라이언트에 로그인합니다.
- 호스트>관리>시스템>고급 설정으로 이동합니다.
- 옵션 목록에서 Syslog.global.logDir 키를 찾습니다.
- Syslog.global.logDir 키를 선택하고 편집 옵션을 클릭합니다.
- 적절한 필드에 새로운 ESXi 로그 위치 값을 입력하고 저장을 클릭합니다.
PowerCLI에서 ESXi 로그 위치 변경 방법
vSphere PowerCLI를 선호하는 경우(이는 Windows PowerShell 기반의 명령줄 인터페이스입니다), VMware ESXi 호스트 로그 위치를 변경하는 다음 방법을 고려할 수 있습니다. 세 가지 시나리오가 있을 수 있습니다.
독립형 호스트에서 ESXi 로그 위치 변경
- PowerCLI를 열고 관리자 자격 증명으로 ESXi 서버에 로그인합니다:
Connect-VIServer -Server <ESXiHostIPAddress> -User <Username> -Password <Password>
- PowerCLI에서 새 ESXi 로그 위치 설정:
Set-VMHostAdvancedConfiguration -VMHost <HostNameOrIPAddress> -Name "Syslog.global.logDir" -Value "[<DatastoreName>] <Path>"
<DatastoreName>을(를) 로그를 저장할 데이터스토어 이름으로 대체하고 <Path>를 로그의 새 디렉토리 경로로 대체하십시오.
다중 ESXi 호스트의 ESXi 로그 위치 변경 (vCenter 없음)
여러 ESXi 호스트가 있지만 vCenter로 관리되지 않는 경우 다음을 수행하십시오:
- ESXi 호스트 목록을 준비하십시오. 각 호스트의 IP 주소 또는 호스트 이름을 한 줄에 하나씩 나열한 텍스트 파일을 만듭니다(예: hosts.txt).
-
$hosts = Get-Content -Path "C:\path\to\hosts.txt"
foreach ($host in $hosts) {
Connect-VIServer -Server $host -User <사용자> -Password <비밀번호>
Set-VMHostAdvancedConfiguration -VMHost $host -Name "Syslog.global.logDir" -Value "[<데이터스토어명>] <경로>"
Disconnect-VIServer -Server $host -Confirm:$false
}
환경 및 인프라에 따라 필요한 값을 입력하십시오.
여러 호스트의 ESXi 로그 위치 변경하기
ESXi 호스트가 vCenter로 관리되는 경우 PowerShell에서 다음과 같이 ESXi 로그 위치를 변경할 수 있습니다:
- vCenter Server에 PowerCLI로 연결하십시오:
Connect-VIServer -Server <vCenter 호스트 이름 또는 IP 주소> -User <사용자> -Password <비밀번호>
- vCenter에서 관리하는 모든 호스트의 ESXi 로그 위치 설정:
Get-VMHost | ForEach-Object {
Set-VMHostAdvancedConfiguration -VMHost $_ -Name "Syslog.global.logDir" -Value "[<DatastoreName>] <Path>"
}
환경 설정에 필요한 값을 입력하십시오.
결론
ESXi 로그에 지속적인 저장소를 사용하면 ESXi 재부팅 후 이러한 로그를 보존할 수 있습니다. 명령줄 및 그래픽 사용자 인터페이스를 사용하여 ESXi 로그 위치를 변경할 수 있습니다. ESXi 호스트가 vCenter Server에 의해 관리되는 경우 VMware vSphere Client를 사용할 수 있습니다. ESXi 호스트가 vCenter에 의해 관리되지 않는 경우 ESXi 명령줄 또는 VMware Host Client를 사용하십시오. 대규모 가상 환경을 보유한 조직은 여러 호스트의 ESXi 로그를이 서버로 기록하는 공유 데이터 저장소와 함께 로그 서버를 구성할 수 있습니다.
Source:
https://www.nakivo.com/blog/change-vmware-esxi-logs-location/