Cacti Template: VMware View Sessions monitoren

View Administrator StatusWie vielleicht so manche Beiträge hier vermuten lassen, setze ich VMware Horizon View zur Desktopbereitstellung ein. So hat sich mir die Frage gestellt ob man nicht die Anzahl an Connections, gestarteten Desktops etc. im MRTG bzw. Cacti überwachen kann.
Eine kleine Übersicht hat man ja im View Administrator an der linken Seite – aber das hilft einem ja auch nicht weiter um Boot Storms, wie z.B. jeden Morgen um 8 zu dokumentieren.
So bin ich über einen Beitrag in den VMware Communities gestolpert, der Zeigt wie man Session Informationen via typeperf absaugen kann. Funktioniert so aber leider erstmal nur, wenn der Monitoringserver unter einem Windows-Betriebssystem läuft. Aber wer hat das schon 🙂
Hier eine kleine Übersicht der 3 Graphen:


Über check_nrpe ist es möglich Scripte mehr oder weniger OS-Unabhängig auszuführen, bzw. eine passende Antwort zu erhalten.  Somit funktioniert das Template unter Linux & Windows.

    1. Wenn das Monitoringsystem ein Linux z.b. Ubuntu ist, dann muss check_nrpe installiert werden um Befehle an andere Systeme senden zu können. Simple Anleitung hatte ich schon mal letztes Jahr geschrieben, ist immer noch gültig.
    2. Anschließend muss auf dem View Connection Server der Nsclient installiert werden. Download hier.
    3. Nach der Installation muss die nsclient.ini im Programmverzeichnis angepasst werden, sodass  Befehle vom Monitoringserver entgegen genommen werden:
      [/modules]
      ;Check External Scripts - A simple wrapper to run external scripts and batch files.
      CheckExternalScripts = 1
      [/settings/NRPE/server]
      allow arguments=true
      allow nasty characters=true
      [/settings/default]
      ;ALLOWED HOSTS - A comaseparated list of allowed hosts. You can use netmasks (/ syntax) or * to create ranges.
      allowed hosts = CactiIP
      [/settings/external scripts]
      allow arguments=true
      allow nasty characters=true
      [/settings/external scripts/scripts]
      viewstatus = cmd /c echo scripts\view_status.ps1 $ARG1$ $ARG2$; exit($lastexitcode) | powershell.exe -command -

      [stextbox id=“info“]Info: Nach Konfigänderung muss der Nsclient neugestartet werden.
      (net stop nscp && net start nscp)[/stextbox]

    4. Das view_status.ps1 Script im NSClient\scripts Verzeichnis ablegen.
    5. Vom Cacti aus testen:
      /usr/local/nagios/libexec/check_nrpe -H SERVERNAME -c viewstatus -a SERVERNAME "\\SERVERNAME\VMware VDM\*"

      Sollte keine korrekte Ausgabe erfolgen, kann man das Logfile vom nsclient checken: nsclient.log

    6. Im Cacti: Import Templates und das cacti_host_template_vmware_view_connection_server.xml auswählen.
    7. Neuen Host anlegen und das Template „View Connection Server“ zuweisen.
    8. Anschließend auf Create Graphs und die 3 Möglichen Graphen auswählen.
    9. Das Feld Servername muss den Servername enthalten. Die Typeperf Query wäre dann „\\Servername\VMware VDM\*“. (Mit den Anführungszeichen)
      [stextbox id=“info“]Info: Der Servername muss in beiden Feldern komplett Identisch sein, sonst funktioniert das Abschneiden des Strings nicht korrekt.[/stextbox]
    10. Nun den Host im Graph Tree hinzufügen und es werde bunt.


Wenn man Cacti auf einem Windows-Server laufen hat, muss man den Scriptpfad der Datenquelle etwas abändern:
DataInput
Der Pfad müsste auf etwas wie

cmd /c echo scripts\view_status.ps1 <comp> <query>; exit($lastexitcode) | powershell.exe -command - 

abgeändert werde. Ich habe es unter Windows aber nicht getestet und bin auf eure Kommentare gespannt 😉
Download: Cacti-View-Template.zip (v 1.0)