Benutzermonitore verstehen

Benutzermonitore erweitern den Umfang von benutzerdefinierten Monitoren. Sie können Benutzermonitore erstellen, um die Integrität von benutzerdefinierten Anwendungen und Protokollen zu verfolgen, die von der Citrix ADC Appliance nicht unterstützt werden. Das folgende Diagramm veranschaulicht, wie ein Benutzermonitor funktioniert.

Abbildung 1. Benutzermonitore

Benutzermonitor

Für einen Benutzermonitor sind die folgenden Komponenten erforderlich.

  • Dispatcher. Ein Prozess auf der Appliance, der Überwachungsanforderungen überwacht. Ein Dispatcher kann sich auf die Loopback-IP-Adresse (127.0.0.1) und Port 3013 befinden. Dispatcher werden auch als interne Dispatcher bezeichnet. Ein Dispatcher kann auch ein Webserver sein, der Common Gateway Interface (CGI) unterstützt. Solche Dispatcher werden auch als externe Dispatcher bezeichnet. Sie werden für benutzerdefinierte Skripte verwendet, die nicht in der FreeBSD-Umgebung ausgeführt werden, z. B.

    Hinweis: Sie können den Monitor und den Dispatcher so konfigurieren, dass HTTPS anstelle von HTTP verwendet werden, indem Sie die Option sicher auf dem Monitor aktivieren und als externen Dispatcher konfigurieren. Ein interner Dispatcher versteht jedoch nur HTTP und kann HTTPS nicht verwenden.

    In einem HA-Setup wird der Dispatcher sowohl auf den primären als auch auf den sekundären Citrix ADC Appliances ausgeführt. Der Dispatcher bleibt auf der sekundären Appliance inaktiv.

Drehbuch. Das Skript ist ein Programm, das benutzerdefinierte Prüfpunkte an den Lastausgleichsserver sendet und den Antwortcode an den Dispatcher zurückgibt. Das Skript kann einen beliebigen Wert an den Dispatcher zurückgeben, aber wenn ein Prüfpunkt erfolgreich ist, muss das Skript den Wert Null (0) zurückgeben. Der Dispatcher betrachtet jeden anderen Wert als Prüfpunktfehler.

Die Citrix ADC Appliance ist mit Beispielskripten für häufig verwendete Protokolle gebündelt. Die Skripte sind im Verzeichnis /nsconfig/monitors vorhanden. Wenn Sie ein neues Skript hinzufügen möchten, fügen Sie es dort hinzu. Wenn Sie ein vorhandenes Skript anpassen möchten, erstellen Sie eine Kopie mit einem neuen Namen und ändern Sie es.

Wichtig:

  • Ab Citrix ADC Version 13.0 Build 41.20 können Sie das Skript nsntlm-lwp.pl verwenden, um einen Monitor für die Überwachung eines sicheren NTLM-Servers zu erstellen.

  • Ab Version 10.1 Build 122.17 befinden sich die Skriptdateien für Benutzermonitore an einem neuen Speicherort.

    Wenn Sie eine virtuelle MPX- oder VPX-Appliance auf Version 10.1 Build 122.17 oder höher aktualisieren, werden folgende Änderungen vorgenommen:

    • Ein neues Verzeichnis namens conflicts wird in /nsconfig/monitors/ erstellt und alle integrierten Skripte der vorherigen Builds werden in dieses Verzeichnis verschoben.
    • Alle neuen integrierten Skripte sind im Verzeichnis /netscaler/monitors/ verfügbar. Alle benutzerdefinierten Skripte sind im Verzeichnis /nsconfig/monitors/ verfügbar.
    • Sie müssen ein neues benutzerdefiniertes Skript im Verzeichnis /nsconfig/monitors/ speichern.
    • Wenn nach Abschluss des Upgrades ein benutzerdefiniertes Skript erstellt und im Verzeichnis /nsconfig/monitors/ mit dem gleichen Namen wie ein integriertes Skript gespeichert wird, hat das Skript im Verzeichnis /netscaler/monitors/ Priorität. Das heißt, das benutzerdefinierte Skript wird nicht ausgeführt.

    Wenn Sie eine virtuelle Appliance mit Version 10.1 Build 122.17 oder höher bereitstellen, werden folgende Änderungen vorgenommen:

    • Alle integrierten Skripte sind im Verzeichnis /netscaler/monitors/ verfügbar.
    • Das Verzeichnis /nsconfig/monitors/ ist leer.
    • Wenn Sie ein neues benutzerdefiniertes Skript erstellen, müssen Sie es im Verzeichnis /nsconfig/monitors/ speichern.

Damit die Skripte korrekt funktionieren:

  • Die maximale Anzahl von Zeichen im Namen des Skripts darf 63 nicht überschreiten.
  • Die maximale Anzahl von Skriptargumenten, die einem Skript zur Verfügung gestellt werden können, darf 512 nicht überschreiten.
  • Die maximale Anzahl von Zeichen, die in den Parameterskriptargumenten angegeben werden kann, darf 639 nicht überschreiten.

Um das Skript zu debuggen, müssen Sie es mit dem Skript nsumon-debug.pl von der CLI ausführen. Sie verwenden den Skriptnamen (mit seinen Argumenten), die IP-Adresse und den Port als Argumente des Skripts nsumon-debug.pl. Benutzer müssen den Skriptnamen, die IP-Adresse, den Port, das Timeout und die Skriptargumente für das Skript nsumon-debug.pl verwenden.

Geben Sie an der CLI Folgendes ein:

nsumon-debug.pl <scriptname> <IP> <port> <timeout> <partitionID> [scriptarguments][is_secure]

Wichtig: Ab Version 10.5 Build 57.x und 11.0 Skriptdateien für Benutzermonitore unterstützen IPv6-Adressen und beinhalten folgende Änderungen:

  • Für die folgenden Protokolle wurden neue pm-Dateien für die IPv6-Unterstützung enthalten.

    • Radius
    • NNTP
    • POP3
    • SMTP
  • Die folgenden Beispielskripte in /netscaler/monitors/ wurden für IPv6-Unterstützung aktualisiert:

    • nsbmradius.pl

    • nsldap.pl

    • nsnntp.pl

    • nspop3 nssf.pl

    • nssnmp.pl

    • nswi.pl

    • nstftp.pl

    • nssmtp.pl

    • nsrdp.pl

    • nsntlm-lwp.pl

    • nsftp.pl

    • nsappc.pl

    Wenn Sie nach dem Upgrade auf Version 10.5 Build 57.x oder 11.0 Ihre vorhandenen benutzerdefinierten Skripts mit IPv6-Diensten verwenden möchten, stellen Sie sicher, dass Sie die vorhandenen benutzerdefinierten Skripts mit den Änderungen aktualisieren, die in den aktualisierten Beispielskripten in /netscaler/monitors/angegeben sind.

    Hinweis: Das Beispielskript nsmysql.pl unterstützt keine IPv6-Adresse. Wenn ein IPv6-Dienst an einen Benutzermonitor gebunden ist, der nsmysql.pl verwendet, schlägt der Prüfpunkt fehl.

  • Die folgenden LB-Monitortypen wurden aktualisiert, um IPv6-Adressen zu unterstützen:

    • USER

    • SMTP

    • NNTP

    • LDAP

    • SNMP

    • POP3

    • FTP_EXTENDED

    • STOREFRONT

    • APPC

    • CITRIX_WI_EXTENDED

    Wenn Sie ein neues benutzerdefiniertes Skript erstellen, das einen dieser LB-Monitortypen verwendet, stellen Sie sicher, dass Sie IPv6-Unterstützung in das benutzerdefinierte Skript aufnehmen. Die Änderungen, die Sie im benutzerdefinierten Skript für die IPv6-Unterstützung vornehmen müssen, finden Sie im zugehörigen Beispielskript in /netscaler/monitors/.

Um den Status des Servers zu verfolgen, sendet der Monitor eine HTTP-POST-Anforderung an den konfigurierten Dispatcher. Diese POST-Anforderung enthält die IP-Adresse und den Port des Servers sowie das Skript, das ausgeführt werden muss. Der Dispatcher führt das Skript als untergeordneten Prozess mit benutzerdefinierten Parametern aus (falls vorhanden). Anschließend sendet das Skript einen Prüfpunkt an den Server. Das Skript sendet den Status des Prüfpunkts (Antwortcode) an den Dispatcher. Der Dispatcher konvertiert den Antwortcode in eine HTTP-Antwort und sendet ihn an den Monitor. Basierend auf der HTTP-Antwort markiert der Monitor den Dienst als nach oben oder unten.

Die Appliance protokolliert die Fehlermeldungen in der Datei /var/nslog/nsumond.log, wenn Benutzermonitorprobes fehlschlagen. In der folgenden Tabelle sind die Benutzermonitore und die möglichen Gründe für einen Fehler aufgeführt.

Benutzermonitortyp Fehlergründe des Prüfpunktfehlers
SMTP Monitor kann keine Verbindung zum Server herstellen.
NNTP Monitor kann keine Verbindung zum Server herstellen.
  Fehlende oder ungültige Skriptargumente, die eine ungültige Anzahl von Argumenten oder Argumentformat enthalten können.
  Monitor kann die NNTP-Gruppe nicht finden.
LDAP Monitor kann keine Verbindung zum Server herstellen.
  Fehlende oder ungültige Skriptargumente, die eine ungültige Anzahl von Argumenten oder Argumentformat enthalten können.
  Monitor kann nicht an den LDAP-Server gebunden werden.
  Monitor kann keinen Eintrag für die Zielentität auf dem LDAP-Server finden.
FTP Timeout der Verbindung zum Server.
  Fehlende oder ungültige Skriptargumente, die eine ungültige Anzahl von Argumenten oder Argumentformat enthalten können.
  Anmeldung fehlgeschlagen.
  Monitor kann die Datei nicht auf dem Server finden.
POP3 Monitor kann keine Verbindung zur Datenbank herstellen.
  Fehlende oder ungültige Skriptargumente, die eine ungültige Anzahl von Argumenten oder Argumentformat enthalten können.
  Anmeldung fehlgeschlagen.
POP3 Monitor kann keine Verbindung zur Datenbank herstellen.
  Fehlende oder ungültige Skriptargumente, die eine ungültige Anzahl von Argumenten oder Argumentformat enthalten können.
  Anmeldung fehlgeschlagen.
  Die Vorbereitung der SQL-Abfrage schlägt fehl.
  Die Ausführung der SQL-Abfrage schlägt fehl.
SNMP Monitor kann keine Verbindung zur Datenbank herstellen.
  Fehlende oder ungültige Skriptargumente, die eine ungültige Anzahl von Argumenten oder Argumentformat enthalten können.
  Anmeldung fehlgeschlagen.
  Der Monitor kann die SNMP-Sitzung nicht erstellen.
  Der Monitor kann die Objekt-ID nicht finden.
  Die Einstellung des Überwachungsschwellenwerts ist größer oder gleich dem tatsächlichen Schwellenwert des Monitors.
RDP (Windows-Terminalserver) Fehlende oder ungültige Skriptargumente, die eine ungültige Anzahl von Argumenten oder Argumentformat enthalten können.
  Monitor kann keinen Socket erstellen.
  Unstimmigkeit in Versionen.
  Der Monitor kann die Verbindung nicht bestätigen.

Sie können die Protokolldatei über die CLI anzeigen, indem Sie die folgenden Befehle verwenden, die eine BSD-Shell öffnen, die Protokolldatei auf dem Bildschirm anzeigen und dann die BSD-Shell schließen und Sie zur CLI zurückkehren:

> shell
root@ns# cat /var/nslog/nsumond.log
root@ns# exit
>

Benutzermonitore haben auch einen Timeoutwert und eine Wiederholungsanzahl für Prüfpunktfehler. Sie können Benutzermonitore mit Nicht-Benutzermonitoren verwenden. Bei hoher CPU-Auslastung ermöglicht ein Nicht-Benutzermonitor eine schnellere Erkennung eines Serverausfalls.

Wenn der Benutzermonitor-Sonde bei hoher CPU-Auslastung Timeout, bleibt der Status des Dienstes unverändert.

Hinweis:

Bei skriptfähigen Monitoren muss das Antwortzeitlimit auf einen Wert konfiguriert werden, der dem erwarteten Timeout + 1 Sekunde entspricht.

Wenn Sie beispielsweise erwarten, dass das Timeout 4 Sekunden beträgt, konfigurieren Sie das Antwort-Timeout auf 5 Sekunden.

Beispielbefehl:

add lb monitor <name> USER –scriptname <script-name> -resptimeout 5 seconds

Benutzermonitore verstehen