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)

Putty Portable – Sessions in Datei speichern

Putty kennt wohl jeder Techi – ein kleines schlankes Tool um entweder Serielle, RAW, Telnet oder SSH Verbindungen aufzubauen.
In Putty kann man sich beliebige Sitzungsprofile (Sessions) also die Verbindungsdaten sowie Konfiguration abspeichern.
Putty speichert dies aber von Haus aus nur in der Registry unter folgendem Pfad:

[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]

putty-portable

Möchte man jetzt aber ein Putty Portable auf einem USB-Stick haben – half bisher nur der Workaround die Registry vorher zu exportieren und wieder zu importieren.
Dies ist hier beschrieben, aber für meinen Geschmack keine so saubere Lösung.
Möchte man automatisch Sessions starten via plink, geht das auch nur sehr schlecht – weil man vorher ja auch wieder die Registry importieren muss.
Da Putty Open-Source ist und das Problem offensichtlich schon mehrere Leute beschäftigte, hat Jakub Kotrla den Session Teil neu gecoded und hat die Speicherung der Konfiguration in einer Datei umgebaut. Somit hat man ein wirkliches Putty Portable und keine 10 Batch-Files die vorher noch das im/exportieren der Registry erledigen.
Ihr findet die kompilierte Variante hier: http://jakub.kotrla.net/putty/
Das coole ist wie gesagt: Die komplette Konfiguration wird in Dateien gespeichert . Zusätzlich bekommt man auch alle Sessions die in der Registry gespeichert sind angezeigt und kann diese auch verwenden.
Der Fix umfasst auch die Putty anhängsel wie: pageant.exe, plink.exe, pscp.exe, psftp.exe.
Wer auf Nummer sicher gehen will kann sich auch den Sourcecode anschauen und selbst kompilieren.
Über die putty.conf des Putty Portable kann man die Speicherorte der verschiedenen Objekte zusätzlich angeben. In den meisten Fällen sollte aber die Default-Einstellung ausreichen. (Speichern im gleichen Ordner wie die putty.exe)

;Save config relatively to putty.exe. you can use absolute path like to to D:\Windows Settings\PuTTY as well.
sessions=.\ssh\ses
sshhostkeys=.\ssh\hostkeys
seedfile=.\putty.rnd
sessionsuffix=.session
keysuffix=.hostkey
jumplist=jumplist.txt

Finde ich ein sehr nützlicher Patch und somit ist jetzt auch Putty Portable auf meinem Multiboot Stick zu finden 🙂