보통 Aria Operations 에서 NSX-T 를 연동하면 아래와 같은 경고를 나와서 예전에는 정책으로 알람이 발생하지 않게하고, 최근에는 해당 서비스를 수집하지 않게 설정하게 업데이트가 되었는데요. NSX-T 의 로그를 liagent 로 수집할 일이 있어 확인을 해봤습니다.

Aria Operations Alert

 

다음 링크에서 설명을 하고 있는것 처럼 4개의 서비스는 자동으로 시작되지 않습니다.

https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.2/installation/GUID-FA0ABBBD-34D8-4DA9-882D-085E7E0D269E.html

The following services are not required by default and do not start automatically.
- liagent
- migration-coordinator: This service is used only when running migration coordinator. See the NSX-T Data Center Migration Guide before starting this service.
- snmp: For information on starting SNMP see Simple Network Management Protocol in the NSX-T Data Center Administration Guide.
- nsx-message-bus: This service is not used in NSX-T Data Center 3.0.

물론 사용하지 않는 서비스는 수집을 하지 않을 수 있습니다. 위 4개중 사용하지 않는다면 설정을 하는게 불필요한 경고 발생에 도움을 줄 수 있습니다.

\

 

NSX-T Manager 의 로그를 syslog 방식이 아니라 liagent 를 이용해서 수집해보겠습니다. 수동으로도 가능하지만, liagent 를 통해 로깅 설정을 하면 자동으로 실행이 됩니다.

nsxmgr01> get service liagent
Wed Aug 30 2023 KST 20:13:51.045
Service name:      liagent
Service state:     stopped

nsxmgr01> get logging-servers 
Wed Aug 30 2023 KST 20:14:25.119
vrli01.psolab.local:514 proto tcp level info exporter_name fca1f426-e4cd-4ed6-a941-17ad4cbf67a5

nsxmgr01> set logging-server 172.20.10.70 proto li level info
            WARNING - You are configuring li-based log forwarding. This will send sensitive information unencrypted over the network. The Splunk App for NSX-T only accepts TLS connections.

nsxmgr01> get logging-servers 
Wed Aug 30 2023 KST 20:16:47.898
vrli01.psolab.local:514 proto tcp level info exporter_name fca1f426-e4cd-4ed6-a941-17ad4cbf67a5
172.20.10.70:9000 proto li level info exporter_name 58ed1bac-0440-4111-a3d6-b106167ea793

nsxmgr01> get service liagent
Wed Aug 30 2023 KST 20:17:02.317
Service name:      liagent
Service state:     running

아래와 같이 Aria Operations for Logs 의 Agent 탭에서 nsxmgr01 이 Agent 를 통해 수집되는 것을 확인 할 수 있습니다.

Agent 수집 상태

Aria Operations 에서 liagent 의 상태를 보면 STOPPED 에서 RUNNING 으로 변경된 것을 확인 할 수 있습니다.

 

참고로 liagent 의 구성정보 파일은 아래 경로에서 확인 가능하며, liagent-effective.ini 파일은 직접적인 수정은 금지하고 있습니다.

'VMware > Aria' 카테고리의 다른 글

How many days a VM is Powered Off  (0) 2020.12.28
vRops Port Check  (0) 2020.11.27
vRealize Operations Rest API Guide  (0) 2018.05.18
Posted by hdywis
,

얼마전 모 커뮤니티 그룹에서 제목과 같은 질문을 받았습니다.

vRops Main 에서 다음과 나오긴 하는데, CSV 로 뽑을순 있지만, Report 형태로 정기적으로 받고 싶어 했습니다.

기본적으로 위 대시보드에서는 Reclam 기간에 따라서 필터링 해서 보여주는데, 이를 수정해서 보여줄 수 있습니다. 그러면 해당 조건에 맞아야 Reclam 으로 분류된다고 보시면 됩니다.

 

기본 Report 에서는 VM 목록은 나오지만 몇일동안 전원이 꺼져있었는지는 나오지 않습니다.

다음과 같이 작성을 해서 가이드를 했는데요. 현재 전원 상태와 함께 프로비저닝 용량, 실제 사용 용량, 전원꺼진 날짜, 마지막으로 전원 꺼진 후 경과 날짜를 확인할 수 있습니다. (정확하게는 Power State 가 변경된 날짜이기 때문에 반드시 Powered Off 된 VM으로 필터를 해야합니다.)

Views 를 통해서 Report 를 추출할 수 있습니다.
Reclamable Powered Off 는 계산 주기 때문에 2개의 필터를 사용 했습니다.
Dec 4 에 Powered Off 가 된것을 확인할 수 있습니다.

표현해주는 방법은 간단합니다. 아래와 같이 Transformation 을 Timestamp 로 바꿔주고, Absolute Timestmp 로 하면 절대 날짜를, Relative Timestamp 로 하면 상대 날짜를 보여줍니다.

여기서 중요한 부분은 위 날짜는 Time Settings 보다 이전 시간은 포함되지 않습니다. 만약에 기본 설정인 7 Days 로 한다면 대부분 날짜가 7일전으로 확인이 됩니다. 즉, 30일 이상 Powered Off VMs 를 확인하려면 최소한 30일 이상으로 기간을 설정해야 합니다.

'VMware > Aria' 카테고리의 다른 글

NSX-T Manager liagent Enable  (0) 2023.08.30
vRops Port Check  (0) 2020.11.27
vRealize Operations Rest API Guide  (0) 2018.05.18
Posted by hdywis
,

요즘은 vMotion 을 vMotion TCP/IP Stack 에 위치해서 많이 사용하시는 것으로 보입니다만 이전에 설치했던 시스템을 보면 Defualt TCP/IP Stack 에 되어 있는것을 볼 수 있습니다.

특히 다른 대역의 데이터센터와 vMotion 을 하기위해서는 routing 이 되어야 하는데 이전에는 static routing 으로 설정해서 사용했었지만, vMotion TCP/IP Stack 이 생긴 이후로는 routing 이 필요한 경우에는 vMotion TCP/IP Stack 을 사용하라고 가이드되어 있습니다.

 

 

https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-3B41119A-1276-404B-8BFB-A32409052449.html

다만 이미 vMotion vmkenel 이 생성이 되었다면 TCP/IP Stack 을 변경할 수 없고, 기존 vmk 를 삭제 후 다시 만들때 vMotion TCP/IP Stack 을 선택해서 생성을 해야합니다.

기존에 vSwitch0 에 구성이 되어있었고, 일부는 vMotion NetStack 을 사용하고 있는 환경에서 작성된 스크립트입니다. 그대로 사용하기보다는 각자의 환경에 맞춰서 수정해서 사용하시는것을 권장드립니다.


 

$alltasks = @()

$vMotionMTU = '9000'
$taskhosts = Get-Cluster | Get-VMHost | Sort-Object Parent.Name, Name

$Startdates = Get-Date

foreach ($taskhost in $taskhosts) {
    
    Write-Host "##########################################################################################" -ForegroundColor Cyan
    Write-Host "############" $taskhost.Name" 의 작업을 시작합니다. #####################" -ForegroundColor Cyan
    Write-Host "##########################################################################################" -ForegroundColor Cyan

    $task = @()
    $vMotionvmk = @()
    $vMotionPG = @()
    $vMotionstack = @()

    $task = "" | Select ClusterName, HostName, ASIS_vMotionvmk, ASIS_vMotionNetStack, ASIS_vMotionNetStackGW, ASIS_vMotionIP, ASIS_vMotionSubnet, ASIS_vMotionMTU, ASIS_vSwitch, ASIS_vSwitchMTU, ASIS_PortGroup, ASIS_PortGroupVLAN, TOBE_vMotionvmk, TOBE_vMotionNetStack, TOBE_vMotionNetStackGW, TOBE_vMotionIP, TOBE_vMotionSubnet, TOBE_vMotionMTU, TOBE_vSwitch, TOBE_vSwitchMTU, TOBE_PortGroup, TOBE_PortGroupVLAN

    $vMotionvmk = $taskhost | Get-VMHostNetworkAdapter | ?{$_.VMotionEnabled -eq "True"}    
    $vMotionPG = $taskhost | Get-VirtualPortGroup -Name $vMotionvmk.PortGroupName #vMotion 설정된 vmk 가 없을 경우 에러발생함
    $vMotionstack = Get-VMHostNetworkStack -VMHost $taskhost | ?{$_.id -eq "vmotion"}
    $vMotionIPSplit = $vMotionvmk.IP.Split('.')
    $vMotionGW = $vMotionIPSplit[0]+"."+$vMotionIPSplit[1]+"."+$vMotionIPSplit[2]+".1"
    
    $task.ClusterName = $taskhost.Parent.Name
    $task.HostName = $taskhost.Name
    $task.ASIS_vMotionvmk = $vMotionvmk.Name
    $task.ASIS_vMotionNetStack = $vMotionvmk.ExtensionData.Spec.NetStackInstanceKey #vMotion 이 Enabled 되어 있는 NetSatck
    $task.ASIS_vMotionNetStackGW = $vMotionstack.Gateway #vMotion TCP/IP NetStack 의 Gateway
    $task.ASIS_vMotionIP = $vMotionvmk.IP
    $task.ASIS_vMotionSubnet = $vMotionvmk.SubnetMask
    $task.ASIS_vMotionMTU = $vMotionvmk.Mtu
    $task.ASIS_vSwitch = $vMotionPG.VirtualSwitch.Name
    $task.ASIS_vSwitchMTU = $vMotionPG.VirtualSwitch.Mtu
    $task.ASIS_PortGroup = $vMotionPG.Name
    $task.ASIS_PortGroupVLAN = $vMotionPG.VLanId

    if ($vMotionvmk -eq $null) {
    Write-Host "vMotion 이 설정된 vmkernel이 존재하지 않습니다."$taskhost.Name"호스트는 SKIP 됩니다." -ForegroundColor Red
    $task.ASIS_vMotionvmk = 'Null, Need to Check'

    } else {
    
    ## vSwitch0 가 MTU 9000 이 아닌 경우 변경 ##
    if ($vMotionPG.VirtualSwitch.Mtu -ne $vMotionMTU) {
    Write-Host $taskhost.Name"의 vMotion 을 사용하는"$vMotionPG.VirtualSwitch.Name"의 MTU가"$vMotionPG.VirtualSwitch.Mtu"이기 때문에" $vMotionMTU"로 변경합니다." -ForegroundColor Green
    $vMotionPG.VirtualSwitch | Set-VirtualSwitch -Mtu $vMotionMTU -Confirm:$false | Out-Null
    } else {}

    ## vMotion NetStack 작업##
    if ($vMotionvmk.ExtensionData.Spec.NetStackInstanceKey -eq 'vmotion') {
        ## vMotion NetStack이 vMotion 이고, MTU 가 9000이 아니면 9000으로 변경##
        if ($vMotionvmk.Mtu -ne $vMotionMTU) {
        Write-Host $taskhost.Name"의 vMotion 의"$vMotionvmk.Name"의 MTU가"$vMotionvmk.Mtu"이기 때문에" $vMotionMTU"로 변경합니다." -ForegroundColor Green
        $vMotionvmk | Set-VMHostNetworkAdapter -Mtu $vMotionMTU -Confirm:$false | Out-Null
        } else {}
    ## vMotion NetSatck이 vMotion 이 아니면, 지우고, MTU 9000 으로 생성 및 VLAN 설정 ##
    } else {
    Write-Host "vMotion이"$vMotionvmk.ExtensionData.Spec.NetStackInstanceKey"입니다."$taskhost.Name"호스트의"$vMotionvmk.Name"을 삭제후 재생성합니다." -ForegroundColor Green
    $vMotionvmk | Remove-VMHostNetworkAdapter -Confirm:$false | Out-Null
    $vMotionPG | Remove-VirtualPortGroup -Confirm:$false | Out-Null       
    New-VMHostNetworkAdapter -VMHost $taskhost -VirtualSwitch $vMotionPG.VirtualSwitch  -NetworkStack $vMotionstack -PortGroup $vMotionvmk.PortGroupName -IP $vMotionvmk.IP -SubnetMask $vMotionvmk.SubnetMask -Mtu $vMotionMTU | Out-Null
    $taskhost | Get-VirtualPortGroup -Name vMotion | Set-VirtualPortGroup -VLanId $vMotionPG.VLanId | Out-Null
    } 

    ## vMotion NetSatck GW 작업 ##
    if ($vMotionstack.Gateway -ne $vMotionGW) {
    Write-Host $taskhost.Name"의"$vMotionstack.Name"의 Gateway가"$vMotionstack.Gateway"이기 때문에"$vMotionGW "로 변경합니다." -ForegroundColor Green
    $vMotionstack | Set-VMHostNetworkStack -VMKernelGateway $vMotionGW | Out-Null
    } else {}
    
    } # Line45

    $vMotionvmk = @()
    $vMotionPG = @()
    $vMotionstack = @()

    $vMotionvmk = $taskhost | Get-VMHostNetworkAdapter | ?{$_.VMotionEnabled -eq "True"}    
    $vMotionPG = $taskhost | Get-VirtualPortGroup -Name $vMotionvmk.PortGroupName
    $vMotionstack = Get-VMHostNetworkStack -VMHost $taskhost | ?{$_.id -eq "vmotion"}

    $task.TOBE_vMotionvmk = $vMotionvmk.Name
    $task.TOBE_vMotionNetStack = $vMotionvmk.ExtensionData.Spec.NetStackInstanceKey
    $task.TOBE_vMotionNetStackGW = $vMotionstack.Gateway
    $task.TOBE_vMotionIP = $vMotionvmk.IP
    $task.TOBE_vMotionSubnet = $vMotionvmk.SubnetMask
    $task.TOBE_vMotionMTU = $vMotionvmk.Mtu
    $task.TOBE_vSwitch = $vMotionPG.VirtualSwitch.Name
    $task.TOBE_vSwitchMTU = $vMotionPG.VirtualSwitch.Mtu
    $task.TOBE_PortGroup = $vMotionPG.Name
    $task.TOBE_PortGroupVLAN = $vMotionPG.VLanId

    $task
    $alltasks += $task
    
}

$enddates = get-date -Format yyyyMMdd
$TaskTime = $enddates-$Startdates
$TaskNum = $enddates+"_"+$TaskTime.Minutes+"Min"

$alltasks | Export-Csv "C:\Users\administrator\Documents\vMotion_$TaskNum.csv" -NoTypeInformation

 

'VMware > PowerCLI' 카테고리의 다른 글

VMware PowerCLI 10.1.0 설치  (0) 2018.04.29
호스트 성능 정보 추출  (0) 2016.03.07
VMware PowerCLI 시작  (0) 2016.02.11
Posted by hdywis
,