NEWS
ESXi Host in ioBroker überwachen.
-
@Kuddel
Hab den Pfad soweit angelegt und das Powershell-Script soweit angepasst.
Das Script gibt mir keinen Fehler mehr an. Ich denke der Adapter muss noch wissen wie er das verarbeiten soll.
Hast du noch einen Hinweis für mich? -
@Bastoly das Skript übergibt irgendwie den Befehl an sich und nicht den Wert.
nimm mal Ende das | Out-Null weg.
Dann bekommt man eine Anzeige
-
@Kuddel ohne | Out-Null sehe ich mehr
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/out-null?view=powershell-7
morgen weiter.
Danke dir. -
@Kuddel jetzt läuft das ganze.
Super cool, ich danke für die Hilfe. -
@Bastoly
-
@MartinG an welcher Stelle bekommst du die Fehlermeldung?
-
@Kuddel bei deinem Script ist mir aufgefallen, dass bei der Dauerschleife eine sehr hohe CPU Last entsteht.
#Dieses Skript übergibt Informationen vom ESX-NUC an den ioBroker #Das Skript läuft im Hintergrund und wird bei der Anmeldung gestartet #sleep 30 #Import der PowerCLI Befehle Import-Module VMware.PowerCLI #Verbindung zum ESX-Host aufbauem Connect-VIServer 10.9.77.5 -user administrator@vsphere.local -Password ! #Dauerschleife while ($env:COMPUTERNAME -eq "mgmt") { #ESXi Infos Abfragen $esxi_infos = get-vmhost #Freier RAM ESXi $esxi_ram = $esxi_infos.MemoryUsageGB Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_mem_usage?value=$esxi_ram | Out-Null $esxi_ram_usage_percent = $esxi_infos.MemoryUsageGB / $esxi_infos.MemoryTotalGB $esxi_ram_usage_percent = $esxi_ram_usage_percent * 100 $esxi_ram_usage_percent = [math]::Round($esxi_ram_usage_percent,0) Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_mem_usage_percent?value=$esxi_ram_usage_percent | Out-Null #CPU Auslastung $esxi_cpu_usage = [INT]$esxi_infos.CpuUsageMhz Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_cpu_usage?value=$esxi_cpu_usage | Out-Null $esxi_cpu_usage_percent = $esxi_infos.CpuUsageMhz / $esxi_infos.CpuTotalMhz $esxi_cpu_usage_percent = $esxi_cpu_usage_percent * 100 $esxi_cpu_usage_percent = [math]::Round($esxi_cpu_usage_percent,0) Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_cpu_usage_percent?value=$esxi_cpu_usage_percent | Out-Null #Speicherauslastung SSD $DataSSD480GB = Get-Datastore DataSSD480GB $DataSSD480GB_usage_percent = $DataSSD480GB.CapacityGB - $DataSSD480GB.FreeSpaceGB $DataSSD480GB_usage_percent = $DataSSD480GB_usage_percent / $DataSSD480GB.CapacityGB $DataSSD480GB_usage_percent = $DataSSD480GB_usage_percent * 100 $DataSSD480GB_usage_percent = [math]::Round($DataSSD480GB_usage_percent,2) Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_DataSSD480GB_usage_percent?value=$DataSSD480GB_usage_percent | Out-Null #Freier Speicher in GB Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_DataSSD480GB_freespace?value=$($DataSSD480GB.FreeSpaceGB) | Out-Null }
Wenn du unter der Schleife noch ein "sleep 1" machst reduziert sich das ganze extrem.
#sleep 30 #Import der PowerCLI Befehle Import-Module VMware.PowerCLI #Verbindung zum ESX-Host aufbauem Connect-VIServer 10.9.77.5 -user administrator@vsphere.local -Password ! #Dauerschleife while ($env:COMPUTERNAME -eq "mgmt") { #ESXi Infos Abfragen $esxi_infos = get-vmhost #Freier RAM ESXi $esxi_ram = $esxi_infos.MemoryUsageGB Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_mem_usage?value=$esxi_ram | Out-Null $esxi_ram_usage_percent = $esxi_infos.MemoryUsageGB / $esxi_infos.MemoryTotalGB $esxi_ram_usage_percent = $esxi_ram_usage_percent * 100 $esxi_ram_usage_percent = [math]::Round($esxi_ram_usage_percent,0) Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_mem_usage_percent?value=$esxi_ram_usage_percent | Out-Null #CPU Auslastung $esxi_cpu_usage = [INT]$esxi_infos.CpuUsageMhz Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_cpu_usage?value=$esxi_cpu_usage | Out-Null $esxi_cpu_usage_percent = $esxi_infos.CpuUsageMhz / $esxi_infos.CpuTotalMhz $esxi_cpu_usage_percent = $esxi_cpu_usage_percent * 100 $esxi_cpu_usage_percent = [math]::Round($esxi_cpu_usage_percent,0) Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_cpu_usage_percent?value=$esxi_cpu_usage_percent | Out-Null #Speicherauslastung SSD $DataSSD480GB = Get-Datastore DataSSD480GB $DataSSD480GB_usage_percent = $DataSSD480GB.CapacityGB - $DataSSD480GB.FreeSpaceGB $DataSSD480GB_usage_percent = $DataSSD480GB_usage_percent / $DataSSD480GB.CapacityGB $DataSSD480GB_usage_percent = $DataSSD480GB_usage_percent * 100 $DataSSD480GB_usage_percent = [math]::Round($DataSSD480GB_usage_percent,2) Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_DataSSD480GB_usage_percent?value=$DataSSD480GB_usage_percent | Out-Null #Freier Speicher in GB Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_DataSSD480GB_freespace?value=$($DataSSD480GB.FreeSpaceGB) | Out-Null sleep 1 }
Du hast nicht zufällig noch ein Script für die VMs selbst?
-
@Bastoly aktuell habe ich auf Grund der CPU Last die Schleife deaktiviert und führe es alle 60 Sekunden aus.
Für die VMs habe ich kein PS Sktipt, da sich der iobroker die Infos direkt per SSH holt
-
@Kuddel said in ESXi Host in ioBroker überwachen.:
Für die VMs habe ich kein PS Sktipt, da sich der iobroker die Infos direkt per SSH holt
Und das machst du wie?
Eventuell hast du das bereits schon beschrieben. Ein Link würde mir schon reichen.
-