Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. ESXi Host in ioBroker überwachen.

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    ESXi Host in ioBroker überwachen.

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Datainspektor last edited by

      Hallo,

      wie kann ich im ioBroker den Status des ESX Servers bzw. der anderen WMs auslesen.
      Welche Möglichkeiten gibt es?

      Viele Grüße Sebastian

      K 1 Reply Last reply Reply Quote 1
      • K
        Kuddel @Datainspektor last edited by

        @Bastoly da es leider keinen ESXi Adapter gibt, wie z.B. für Proxmox habe ich es per Power-CLI gelöst.

        Auf meinem Host läuft eine Windows10 VM, auf der eine Powershell-Skript läuft, welches den ESXi auswertet und die Infos per Simple-API an den ioBroker übergibt.

        Die Werte sehen so aus:
        d7e95cfe-ed1e-4865-8462-e6acc9bc11af-grafik.png

        D 1 Reply Last reply Reply Quote 0
        • D
          Datainspektor last edited by

          @Kuddel said in ESXi Host in ioBroker überwachen.:

          Power-CLI

          Das hört sich nach einer sehr guten Lösung an.
          Vielen Dank.

          1 Reply Last reply Reply Quote 0
          • D
            Datainspektor @Kuddel last edited by

            @Kuddel Hab auch dein Powershell-Skript im Forum gefunden.
            Bekomme aber bei der Übergabe an ioBroker noch eine Fehlermeldung.
            Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.ressourcen.esx.esxi_mem_usage?value=$esxi_ram | Out-Null
            Invoke-WebRequest : "error: datapoint "javascript.0.ressourcen.esx.esxi_mem_usage" not found"
            In Zeile:1 Zeichen:1

            • Invoke-WebRequest -Uri http://10.9.77.172:8087/set/javascript.0.resso ...
            •   + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
                + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
              

            Was muss ich im ioBroker noch vorbereiten? So wie es aussieht findet mein Windows Host den Pfad zum ioBroker nicht.
            Muss ich im ioBroker diesen Pfad anlegen? Der simple.API Adapter hat kein Objekt angelegt.

            K 1 Reply Last reply Reply Quote 0
            • K
              Kuddel @Datainspektor last edited by

              @Bastoly du musst die Datenobjekte, in die per API die Werte geschrieben werden, vorher noch anlegen

              D 1 Reply Last reply Reply Quote 0
              • MartinG
                MartinG last edited by

                Hallo Zusammen,

                ich versuche gerade genau das selbe. Allerdings bekomme ich beim Übergeben der Werte über API den Fehler "not implemented".
                Könnt ihr mir vielleicht einen Tipp geben?

                Vielen Dank im Voraus

                lg

                Martin

                D 1 Reply Last reply Reply Quote 0
                • D
                  Datainspektor last edited by

                  Hallo Martin,

                  ja da sind wir schon zu zweit 🙂
                  Bekomme jetzt keine Fehlermeldung von dem Powershell-Skript selbst. Jedoch kommen keine Daten an.

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    Datainspektor @Kuddel last edited by

                    @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.
                    093c878d-e3f0-4735-8ebc-0115b09a0ed1-image.png
                    Hast du noch einen Hinweis für mich?

                    K 1 Reply Last reply Reply Quote 0
                    • K
                      Kuddel @Datainspektor last edited by

                      @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

                      D 3 Replies Last reply Reply Quote 0
                      • D
                        Datainspektor @Kuddel last edited by

                        @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.

                        1 Reply Last reply Reply Quote 0
                        • D
                          Datainspektor @Kuddel last edited by

                          @Kuddel jetzt läuft das ganze.
                          158889d2-c2de-4bfd-b013-b8b24616c3db-image.png
                          Super cool, ich danke für die Hilfe. 👍

                          1 Reply Last reply Reply Quote 0
                          • D
                            Datainspektor @Datainspektor last edited by Datainspektor

                            @Bastoly

                            1 Reply Last reply Reply Quote 0
                            • D
                              Datainspektor @MartinG last edited by

                              @MartinG an welcher Stelle bekommst du die Fehlermeldung?

                              1 Reply Last reply Reply Quote 0
                              • D
                                Datainspektor @Kuddel last edited by Datainspektor

                                @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
                                         
                                }
                                

                                ceb1cfab-e812-41f8-8d30-4a552c44bc2c-image.png

                                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  
                                }
                                

                                80431769-f862-451a-8095-84abcfe6f431-image.png

                                Du hast nicht zufällig noch ein Script für die VMs selbst?

                                K 1 Reply Last reply Reply Quote 0
                                • K
                                  Kuddel @Datainspektor last edited by

                                  @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

                                  D 1 Reply Last reply Reply Quote 0
                                  • D
                                    Datainspektor @Kuddel last edited by

                                    @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.

                                    K 1 Reply Last reply Reply Quote 0
                                    • K
                                      Kuddel @Datainspektor last edited by

                                      @Bastoly so frage ich z.bb CPU- und RAM-Auslastung von meinem NUT Server ab:

                                      fe7a7dd3-3a39-4aa3-8c5a-3bae211b6497-grafik.png

                                      <block xmlns="http://www.w3.org/1999/xhtml" type="controls_if" id="tov9jp:RQMdo**hTX95S" x="-516" y="-82">
                                       <value name="IF0">
                                         <block type="logic_compare" id="2MJ3Gm(fj;]V(bDu41=B">
                                           <field name="OP">EQ</field>
                                           <value name="A">
                                             <block type="get_value" id="_[L,V9us)Mh+Qzds#z{w">
                                               <field name="ATTR">val</field>
                                               <field name="OID">ping.0.ioBroker-MASTER.192_168_4_39</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <block type="logic_boolean" id="mE#K9Aq-Ex%Q:Tc(/RL9">
                                               <field name="BOOL">TRUE</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <statement name="DO0">
                                         <block type="comment" id="Fn,8JC-`_`XWf6hF3QI)">
                                           <field name="COMMENT">CPU Usage</field>
                                           <next>
                                             <block type="exec" id="PaQ!X,{VT%d=!J4$BWzW">
                                               <mutation with_statement="true"></mutation>
                                               <field name="WITH_STATEMENT">TRUE</field>
                                               <field name="LOG"></field>
                                               <value name="COMMAND">
                                                 <shadow type="text" id="$llIGY+6;kbM*k,g}f#n">
                                                   <field name="TEXT">ssh root@192.168.4.39 grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'</field>
                                                 </shadow>
                                               </value>
                                               <statement name="STATEMENT">
                                                 <block type="control" id="VL#,RMUbmX$t`^-RvHLB">
                                                   <mutation delay_input="false"></mutation>
                                                   <field name="OID">javascript.0.ressourcen.nut.nut_cpu_usage</field>
                                                   <field name="WITH_DELAY">FALSE</field>
                                                   <value name="VALUE">
                                                     <block type="convert_tonumber" id="^`59WIewntRKmfKXwIi1">
                                                       <value name="VALUE">
                                                         <block type="variables_get" id="iN^HL+3vh1lu@yLNmNUy">
                                                           <field name="VAR" id="7(zFM`@Yx-M/c5uU@N^j" variabletype="">result</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </statement>
                                               <next>
                                                 <block type="comment" id="G0qRSBomqs*knxOWcDD*">
                                                   <field name="COMMENT">RAM Usage</field>
                                                   <next>
                                                     <block type="exec" id="L*0rzYurtC|MZyDhbfyH">
                                                       <mutation with_statement="true"></mutation>
                                                       <field name="WITH_STATEMENT">TRUE</field>
                                                       <field name="LOG"></field>
                                                       <value name="COMMAND">
                                                         <shadow type="text" id="aE]Myk~d-#y$3AS$aY|w">
                                                           <field name="TEXT">ssh root@192.168.4.39 free | grep Mem | awk '{print $3}'</field>
                                                         </shadow>
                                                       </value>
                                                       <statement name="STATEMENT">
                                                         <block type="variables_set" id="_+OlR09?QWcHAajW%Vz(">
                                                           <field name="VAR" id="7(zFM`@Yx-M/c5uU@N^j" variabletype="">result</field>
                                                           <value name="VALUE">
                                                             <block type="math_arithmetic" id="qKv{u?k1n#b3Fm%Ze0!_" inline="false">
                                                               <field name="OP">MULTIPLY</field>
                                                               <value name="A">
                                                                 <shadow type="math_number" id="|$gF@aegqyNxeI!|91WM">
                                                                   <field name="NUM">1</field>
                                                                 </shadow>
                                                                 <block type="variables_get" id="^%nat{V%)W,93?25;fhC">
                                                                   <field name="VAR" id="7(zFM`@Yx-M/c5uU@N^j" variabletype="">result</field>
                                                                 </block>
                                                               </value>
                                                               <value name="B">
                                                                 <shadow type="math_number" id="zv-2nQ?FQHq^yFx7^}6O">
                                                                   <field name="NUM">100</field>
                                                                 </shadow>
                                                               </value>
                                                             </block>
                                                           </value>
                                                           <next>
                                                             <block type="variables_set" id="$R/c2E/HC/Mp8Sa5yytd">
                                                               <field name="VAR" id="7(zFM`@Yx-M/c5uU@N^j" variabletype="">result</field>
                                                               <value name="VALUE">
                                                                 <block type="math_arithmetic" id=")Gb|FAlR`BVy)V.$BhPH" inline="false">
                                                                   <field name="OP">DIVIDE</field>
                                                                   <value name="A">
                                                                     <shadow type="math_number" id="|$gF@aegqyNxeI!|91WM">
                                                                       <field name="NUM">1</field>
                                                                     </shadow>
                                                                     <block type="variables_get" id="A9jZqfUYDu@q8nB@o*i$">
                                                                       <field name="VAR" id="7(zFM`@Yx-M/c5uU@N^j" variabletype="">result</field>
                                                                     </block>
                                                                   </value>
                                                                   <value name="B">
                                                                     <shadow type="math_number" id="2ME$04b^ODM4.QY!:cf0">
                                                                       <field name="NUM">493448</field>
                                                                     </shadow>
                                                                   </value>
                                                                 </block>
                                                               </value>
                                                               <next>
                                                                 <block type="control" id="kD@TfBqFi|u/[6#U@HTV">
                                                                   <mutation delay_input="false"></mutation>
                                                                   <field name="OID">javascript.0.ressourcen.nut.nut_ram_usage</field>
                                                                   <field name="WITH_DELAY">FALSE</field>
                                                                   <value name="VALUE">
                                                                     <block type="variables_get" id="qK-rsA._OvqkXQ71c+JT">
                                                                       <field name="VAR" id="7(zFM`@Yx-M/c5uU@N^j" variabletype="">result</field>
                                                                     </block>
                                                                   </value>
                                                                 </block>
                                                               </next>
                                                             </block>
                                                           </next>
                                                         </block>
                                                       </statement>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </statement>
                                      </block>
                                      

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      646
                                      Online

                                      31.7k
                                      Users

                                      79.9k
                                      Topics

                                      1.3m
                                      Posts

                                      esxi
                                      3
                                      17
                                      1073
                                      Loading More Posts
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                      The ioBroker Community 2014-2023
                                      logo