Überwachung | Bauernhüter | Aktualisieren

VERÖFFENTLICHT AM 25. Oktober 2021

Standardmäßig ZEVENET führt grundlegende Gesundheitsprüfungen auf den Backends oder echten Servern durch, aber manchmal reichen diese Prüfungen nicht aus, um festzustellen, ob die Backends ordnungsgemäß funktionieren oder nicht. Aus diesem Grund implementiert ZEVENET einen Dienst namens Farmguardian das, das erweiterte Gesundheitsprüfungen ausführt und verwaltet.

Das Ziel Farmguardian soll als erweitertes Überwachungstool für Backend-Anwendungsserver fungieren. Farmguardian führt dies durch, indem es Konfigurationen liest und mithilfe von Plugins, die den Gesundheitsstatus jedes Backends überprüfen, die Liste der Backends abruft. Farmguardian aktualisiert außerdem den Backend-Status für jede Farm und bestimmt, ob der Load Balancer Datenverkehr an dieses Backend senden soll.

In diesem Abschnitt erfahren Sie, wie Sie die konfigurieren farmguardian prüft mit beiden Globale Einstellungen und Einstellungen innerhalb einer Farm.

Globale Einstellungen

Innerhalb der Globale Abschnitt, dies sind die Einstellungen für Farmguardian.

Auf der Registerkarte „Global“ können die Felder nicht bearbeitet werden, wenn die Schecks im System vorinstalliert sind. Wenn Sie eine Gesundheitsprüfung ändern möchten, sollten Sie eine neue erstellen farmguardian, aktivieren Sie die Kopieren Sie Farmguardian und den neuen ändern.

Name. Der Identifikationsname des aktuellen Farmguardian-Checks kann nicht bearbeitet werden.
Befehl. Legen Sie den Befehl fest, der ausgeführt wird, um den Backend-Status zu überprüfen.
Timeout. Die höchste Zeit, die das Back-End benötigt, um eine Antwort zurückzusenden. Einheiten (Sekunden).
Intervall. Zeit zwischen Zustandsprüfungsstapeln für alle Back-Ends. Beachten Sie, dass die Farmguardian-Prüfung bei jeder Intervallzeit anhält und neu gestartet wird, also muss sie hoch genug sein, damit sie alle Backends prüfen kann ( timeout * nº backends +1 ).
Beschreibung. Dieses Feld enthält eine kurze Beschreibung des Farmguardian-Checks.
Verbindungen trennen. Wenn diese Option aktiviert ist, werden die aktuellen Verbindungen der erkannten Back-Ends, die ausgefallen sind, geleert, wodurch eine sofortige Wiederverbindung mit verfügbaren Back-Ends erzwungen wird. Wenn deaktiviert, werden die aktuellen Verbindungen abgebaut, ohne dass ein Client getrennt wird.
Protokolle aktivieren. Aktiviert oder deaktiviert die Protokolle jeder Farmguardian-Prüfung. Bei deaktivierten Protokollen werden nur die Änderungen des Backend-Status in den Protokolldateien angezeigt.
Backend-Alias. Ein Name, der die Schnittstelle des Backends leicht identifiziert.

Integritätsprüfungen konfigurieren

Alles Verfügbar farmguardian Plugins finden Sie unter dem Verzeichnis / usr / local / zevenet / app / libexec / innerhalb des Load Balancer.

Farmguardian verwendet Plugins, um erweiterte Zustandsprüfungen zu konfigurieren, um mithilfe benutzerdefinierter Optionen festzustellen, ob ein bestimmter echter Server wie erwartet funktioniert. Es gibt viele Zustandsprüfungen für jedes Protokoll, jeden Dienst oder jede Anwendung. Nachfolgend werden die wichtigsten Plugins beschrieben.

check_ftp. Dieses Plugin testet FTP-Verbindungen mit dem angegebenen Host.

Usage:
check_ftp -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_fping: Dieses Plugin verwendet den Befehl fping, um den angegebenen Host für eine schnelle Überprüfung zu pingen.

Usage:
 check_fping <host_address> -w limit -c limit [-b size] [-n number] [-T number] [-i number]

check_http: Dieses Plugin testet den HTTP-Dienst auf dem angegebenen Host. Es kann einfache (HTTP) und sichere (HTTPS) Protokolle testen, Weiterleitungen folgen, nach Zeichenfolgen und regulären Ausdrücken suchen, Verbindungszeiten überprüfen und über Zertifikatsablaufzeiten, HTTP-Rückgabecodes usw. berichten.

Usage:
 check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>]
       [-J <client certificate file>] [-K <private key>]
       [-w <warn time>] [-c <critical time>] [-t <timeout>] [-L] [-E] [-a auth]
       [-b proxy_auth] [-f <ok|warning|critcal|follow|sticky|stickyport>]
       [-e <expect>] [-d string] [-s string] [-l] [-r <regex> | -R <case-insensitive regex>]
       [-P string] [-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>]
       [-A string] [-k string] [-S <version>] [--sni] [-C <warn_age>[,<crit_age>]]
       [-T <content-type>] [-j method]

check_imap: Dieses Plugin testet IMAP-Verbindungen mit dem angegebenen Host.

Usage:
check_imap -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_ldap: Dieses Plugin testet LDAP-Dienste. Es kann mit einer gegebenen Suche getestet werden.

Usage:
 check_ldap -H <host> -b <base_dn> [-p <port>] [-a <attr>] [-D <binddn>]
       [-P <password>] [-w <warn_time>] [-c <crit_time>] [-t timeout]
       [-2|-3] [-4|-6]

check_ldaps: Dieses Plugin testet LDAPS-Dienste. Es kann mit einer gegebenen Suche getestet werden.

Usage:
 check_ldaps -H <host> -b <base_dn> [-p <port>] [-a <attr>] [-D <binddn>]
       [-P <password>] [-w <warn_time>] [-c <crit_time>] [-t timeout]
       [-2|-3] [-4|-6]

check_mysql: Dieses Plugin testet Verbindungen zu einem MySQL-Server.

Usage:
 check_mysql [-d database] [-H host] [-P port] [-s socket]
       [-u user] [-p password] [-S] [-l] [-a cert] [-k key]
       [-C ca-cert] [-D ca-dir] [-L ciphers] [-f optfile] [-g group]

check_mysql_query: Dieses Plugin überprüft ein Abfrageergebnis anhand von Schwellenwerten.

Usage:
 check_mysql_query -q SQL_query [-w warn] [-c crit] [-H host] [-P port] [-s socket]
       [-d database] [-u user] [-p password] [-f optfile] [-g group]

check_pgsql: Testen Sie, ob eine PostgreSQL-Datenbank Verbindungen akzeptiert.

Usage:
check_pgsql [-H <host>] [-P <port>] [-c <critical time>] [-w <warning time>]
 [-t <timeout>] [-d <database>] [-l <logname>] [-p <password>]
[-q <query>] [-C <critical query range>] [-W <warning query range>]

check_pop: Dieses Plugin testet POP-Verbindungen mit dem angegebenen Host.

Usage:
check_pop -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_radius: Testet, ob ein RADIUS-Server Verbindungen akzeptiert.

Usage:
check_radius -H host -F config_file -u username -p password
			[-P port] [-t timeout] [-r retries] [-e expect]
			[-n nas-id] [-N nas-ip-addr]

check_simap: Dieses Plugin testet sichere IMAP-Verbindungen mit dem angegebenen Host.

Usage:
check_simap -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_smtp: Dieses Plugin versucht, eine SMTP-Verbindung mit dem Host herzustellen.

Usage:
check_smtp -H host [-p port] [-4|-6] [-e expect] [-C command] [-R response] [-f from addr]
[-A authtype -U authuser -P authpass] [-w warn] [-c crit] [-t timeout] [-q]
[-F fqdn] [-S] [-D warn days cert expire[,crit days cert expire]] [-v] 

check_snmp: Überprüfen Sie den Status von Remote-Computern und erhalten Sie Systeminformationen über SNMP.

Usage:
check_snmp -H <ip_address> -o <OID> [-w warn_range] [-c crit_range]
[-C community] [-s string] [-r regex] [-R regexi] [-t timeout] [-e retries]
[-l label] [-u units] [-p port-number] [-d delimiter] [-D output-delimiter]
[-m miblist] [-P snmp version] [-N context] [-L seclevel] [-U secname]
[-a authproto] [-A authpasswd] [-x privproto] [-X privpasswd] [-4|6]

check_spop: Dieses Plugin testet sichere POP-Verbindungen mit dem angegebenen Host.

Usage:
check_spop -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_ssh: Versuchen Sie, eine Verbindung zu einem SSH-Server am angegebenen Server und Port herzustellen.

Usage:
check_ssh  [-4|-6] [-t <timeout>] [-r <remote version>] [-p <port>] <host>

check_ssmtp: Dieses Plugin testet SSMTP-Verbindungen mit dem angegebenen Host.

Usage:
check_ssmtp -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

check_tcp: Dieses Plugin testet TCP-Verbindungen mit dem angegebenen Host.

Usage:
check_tcp -H host -p port [-w <warning time>] [-c <critical time>] [-s <send string>]
[-e <expect string>] [-q <quit string>][-m <maximum bytes>] [-d <delay>]
[-t <timeout seconds>] [-r <refuse state>] [-M <mismatch state>] [-v] [-4|-6] [-j]
[-D <warn days cert expire>[,<crit days cert expire>]] [-S <use SSL>] [-E]

Um weitere Informationen zu erhalten, führen Sie den folgenden Befehl unter dem Plugins-Pfad aus:

plugin_name --help

Farmguardian verwendet diese Plugins, um den Zustand der Backends zu überprüfen, und verwaltet die Ausführungsfehlerausgabe des ausgeführten Plugins, um den Backend-Status wie folgt zu bestimmen:

Wenn der Fehler Ausgabe == 0 dann ist das Backend OK> $? = 0
Wenn der Fehler Ausgabe <> 0 dann ist das Backend NICHT OK> $? <> 0

Benutzerdefiniertes Plugin

Diese Plugins können von Systemadministratoren konfiguriert und vollständig programmiert werden, um sie an jedes Protokoll oder jede Anwendung anzupassen.

Dieses Beispiel zeigt ein benutzerdefiniertes Plugin check_load.sh.

#!/bin/bash
###
###comments:
###snmp utils should be installed
###snmpd should be installed and configured in the backends
###
MAXVALUE=4
COMMUNITY="public"
EXECUTE=`snmpget -v 2c -c $COMMUNITY $1 .1.3.6.1.4.1.2021.10.1.3.1 |cut -d ':' -f2 | cut -d '.' -f1 | sed s/\ // | sed s/\"//`

echo "SNMP CPU load check for $1 is $EXECUTE"
# If the result is true, exit with 1; error; else exit = 0; OK
if (( $EXECUTE >= $MAXVALUE )); then
#error output; the server is overloaded and the load balancer isn’t going to send more connections
exit 1
else
#, not error; the server can accept more connections
exit 0
fi

Konstante

Wann Farmguardian ein Plugin ausführt, kann es einige Konstanten oder Token als Argumente verwenden, wie zum Beispiel:

HOST. Farmguardian kümmert sich darum, diese Konstante durch die echte Server-IP-Adresse zu modifizieren.
PORT. Farmguardian kümmert sich darum, diese Konstante durch den echten Serverport zu modifizieren.

Diese Konstanten können für jedes Plugin verwendet werden, Farmguardian wird sie verwenden, um die Zustandsprüfung mit den realen Parametern durchzuführen.

Farms

Auf dieser Registerkarte gibt es eine Liste von Farmen und Diensten, die diese verwenden Farmguardian Gesundheitskontrolle.

Farmen und Dienste können diesem zugewiesen oder entfernt werden Farmguardian Zustandsprüfung mit Mehrfachauswahl mit einzelnen Pfeilsymbolen oder Doppelpfeilen zum Aktivieren oder Deaktivieren aller Farmen.

Teilen:

Dokumentation unter den Bedingungen der GNU Free Documentation License.

War dieser Artikel hilfreich?

Verwandte Artikel