Vmware 事件日期超过30天的断电虚拟机列表

Vmware 事件日期超过30天的断电虚拟机列表,vmware,vsphere,powercli,Vmware,Vsphere,Powercli,我正试图编写一个脚本,使虚拟机关机日期和时间超过30天(自Vsphere安装以来一直如此),我知道只有解析关机虚拟机的最新vmware.log并检查其中的最后一个字符串日期,这些脚本才可用 我有一个脚本,我已经包括在下面这个脚本只给我过去30天的输出 ``` $VMs = get-vm | Where powerstate -eq "poweredoff" Get-VIEvent -Entity $VMs -MaxSamples ([int]::MaxValue) | where {$_

我正试图编写一个脚本,使虚拟机关机日期和时间超过30天(自Vsphere安装以来一直如此),我知道只有解析关机虚拟机的最新vmware.log并检查其中的最后一个字符串日期,这些脚本才可用

我有一个脚本,我已经包括在下面这个脚本只给我过去30天的输出

```
$VMs = get-vm | Where powerstate -eq "poweredoff"


Get-VIEvent -Entity $VMs -MaxSamples ([int]::MaxValue) |

where {$_ -is [VMware.Vim.VmPoweredOffEvent]} |

Group-Object -Property {$_.Vm.Name} | %{

  $lastPO = $_.Group | Sort-Object -Property CreatedTime -Descending | Select -First 1

  $vm = Get-VIObjectByVIView -MORef $_.Group[0].VM.VM

  $cloumn = '' | select VMName,Powerstate,PowerOFF

```

在vmware日志文件的帮助下,我预计30天以后会有结果,目前我得到30天的结果

有几个潜在原因。首先,你似乎没有把时间限制在30天或更久。你把所有的事件作为一个整体来抓。第二,vCenter日志以一定的间隔滚动,这会将它们转换为zip文件,
Get-VIEvent
cmdlet将无法再读取这些文件。这就是日志解析器发挥作用的地方,类似于log Insight或Splunk/SolarWinds/Nagios。

我不得不做类似的事情,我们遇到了VMWare日志记录在大型环境中使vcenter崩溃的问题,因此我们的历史记录在某些环境中关闭或设置为7天。为了解决这个问题,我将每个事件都放入influxDB(每小时批处理),然后在6个月后将influxDB设置为自动清除数据。然后我就可以实现上述目标。