Cacti – Windows7 – remote Host – Total Memory Free Memory Total Swap Free Swap

Im Rahmen meiner Tests mit Cacti und dem Auslesen von Performance Daten von Windows7 Clients, habe ich dieses Powershell Script zur remote Abfragen des Zustandes des Arbeitsspeichers und der Auslagerungsdatei / SWAP erstellt. Es fragt die gesamte Größe des RAM und SWAP sowie der noch freie Teil ab und zeigt es in Cacti grafisch dar.

#Version 1.0 vom 20.03.2015 by Taste-Of-IT.de
#get Total Memory, Free Memory, Total Swap, Free Swap from Remotehost return Value in Kilobyte
#call script-name.ps1 <hostname>

Try{
        $hostname = $args[0]
        Get-WmiObject win32_OperatingSystem -Computername $hostname | %{"TotalMemorySize:{0} FreeMemorySize:{1} TotalVirtualMemory:{2} FreeVirtualMemory:{3}" -f $_.totalvisiblememorysize, $_.freephysicalmemory, $_.totalvirtualmemorysize, $_.freevirtualmemory}
    }
Catch{
        "TotalMemorySize:0 FreeMemorySize:0 TotalVirtualMemory:0 FreeVirtualMemory:0"
    }

Das Powershell Script versucht die Daten zum Total und Free des Arbeitsspeichers und die Auslagerungsdatei mittels WMI-Objekt abzufragen. Gelingt dies nicht wird statt eines Fehlers, der dann in Cacti (Logs) aufschlagen würde, jeweils der Wert 0 zurückgegeben (Try / Catch).

Kurzanleitung für den Graphen zur Anzeigen des freien Speicherplatzes in Cacti

  • Login -> console
  • Data Input Methods -> Add ->
    • Name = Win – PS RAM SWAP Status
    • Input Type = Script/Command
    • Input String = powershell c:\ps-scripte\ps-remote-ram-swap-total-free.ps1 <hostname>
    • Create
    • Input Fields -> Add
      • Field[Input] = hostname
      • Friendly Name = Hostname
      • Special Type Code = hostname
    • Output Fields -> Add
      • Field = TotalMemory
      • Friendly Name = TotalMemory
      • Create
    • Output Fields -> Add
      • Field = FreeMemory
      • Friendly Name = FreeMemory
      • Create
    • Output Fields -> Add
      • Field = TotalVirtualMemory
      • Friendly Name = TotalVirtualMemory
      • Create
    • Output Fields -> Add
      • Field = FreeVirtualMemory
      • Friendly Name =FreeVirtualMemory
      • Create
    • Save
  • Data Templates -> Add
    • Data Templates
      • Name = Win – PS RAM SWAP Status
    • Data Source
      • Name = |host_description| Win – PS RAM SWAP Status
      • Data Input Method = Win – PS RAM SWAP Status
      • Step = 60
    • Data Source Item
      • Internal Data Source Name = TotalMemory
      • Minimum Value = 0
      • Maximum Value = U
      • Heartbeat = 120
      • Create
      • Output Field = TotalMemory – TotalMemory
      • Save
    • Data Source Item -> New
      • Internal Data Source Name = FreeMemory
      • Minimum Value = 0
      • Maximum Value = U
      • Heartbeat = 120
      • Output Field = FreeMemory – FreeMemory
      • Save
    • Data Source Item -> New
      • Internal Data Source Name = TotalVirtualMemory
      • Minimum Value = 0
      • Maximum Value = U
      • Heartbeat = 120
      • Output Field = TotalVirtualMemory – TotalVirtualMemory
      • Save
    • Data Source Item -> New
      • Internal Data Source Name = FreeVirtualMemory
      • Minimum Value = 0
      • Maximum Value = U
      • Heartbeat = 120
      • Output Field = FreeVirtualMemory – FreeVirtualMemory
      • Save
    • Custom Data
      • Hostname = frei lassen
  • Save
  • Graph Templates -> Add
    • Name = Win – PS RAM SWAP Status
    • Title = |host_description| – PS RAM SWAP Status
    • Upper Limit = U
    • Lower Limit = 0
    • Base Value = 1024
    • Vertical Label = Gigabyte
    • Create
    • Graph Template Items -> Add (FreeMemory – AREA)
      • Data Source = Win – PS RAM SWAP Status – (FreeMemory)
      • Color = Grün
      • Graph Item Type = AREA
      • Consolidate Function = Average
      • CDEF Function = Multiply by 1024
      • Text Format = Free Memory
      • Create
    • Graph Template Items -> Add (FreeMemory – Legend) <-Current, Average und Max werden automatisch erstellt
      • Data Source = Win – PS RAM SWAP Status – (FreeMemory)
      • CDEF Function = Multiply by 1024
      • Text Format = Free Memory
      • Create
    • Graph Template Items -> Add (FreeVirtualMemory – AREA)
      • Data Source = Win – PS RAM SWAP Status – (FreeVirtualMemory)
      • Color = Gelb
      • Graph Item Type = AREA
      • Consolidate Function = Average
      • CDEF Function = Multiply by 1024
      • Text Format = Free Virtual Memory
      • Create
    • Graph Template Items -> Add (FreeVirtualMemory – Legend) <-Current, Average und Max werden automatisch erstellt
      • Data Source = Win – PS RAM SWAP Status – (FreeVirtualMemory)
      • CDEF Function = Multiply by 1024
      • Text Format = Free Virtual Memory
      • Create
    • Graph Template Items -> Add (TotalMemory – Gprint)
      • Data Source = Win – PS RAM SWAP Status – (TotalMemory)
      • Color = Grün
      • Graph Item Type = Gprint
      • Consolidate Function = Last
      • CDEF Function = Multiply by 1024
      • Text Format = Total Memory
      • Create
    • Graph Template Items -> Add (TotalVirtualMemory – Gprint)
      • Data Source = Win – PS RAM SWAP Status – (TotalVirtualMemory )
      • Color = Gelb
      • Graph Item Type = Gprint
      • Consolidate Function = Last
      • CDEF Function = Multiply by 1024
      • Text Format = Total Virtual Memory
      • Create
    • Save
  • Devices -> Add (nur wenn noch kein Host vorhanden ist, ansonsten zum nächsten Punkt)
    • Description = winclient01
    • Hostname = winclient01
    • Host Template = none
    • Downed Device Detection = Ping
    • Ping Method = ICMP Ping
    • Create (ICMP Ping Success (0 ms)
  • Devices -> winclient01 -> Associated Graph Templates
    • Add Graph Templates = Win – PS RAM SWAP Status
    • Add
  • Devices -> winclient01 -> Create Graphs for this Host
    • Graph Template Name – Haken bei Create: Win – PS RAM SWAP Status
    • Create
  • Management -> Graph Management -> obigen Graph vom Host winclient01 dem Default Tree hinzufügen
    • Haken hinter winclient01 – Win – PS RAM SWAP Status
    • Place on a Tree (Default Tree)
    • Go
    • Destination Branch: [root]
    • Continue

Done – nun sollte der Graph in den nächsten 2xPoller Time erstellt werden und z.B. so aussehen:

Windows7 RAM SWAP Cacti

Windows7 RAM SWAP Cacti

– kleine Anmerkung – auf Grund von zu großen Abweichungen zwischen den Werten von RAM und SWAP, kann es sein, dass wie hier nur ein Graph dargestellt wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.