Überwachung | Bauernhüter | Aktualisieren

GESCHRIEBEN VON Zevenet | 15. Mai 2019

Standardmäßig Zevenet Es werden einfache Integritätsprüfungen für die Backends oder die realen Server ausgeführt. Manchmal reicht diese Prüfung jedoch nicht aus, um festzustellen, ob die Backends ordnungsgemäß funktionieren. Aus diesem Grund implementiert Zevenet einen Dienst, der erweiterte Integritätsprüfungen über einen Daemon ausführt und verwaltet, der aufgerufene Plugins verwendet Farmguardian.

Die Hauptaufgabe von Farmguardian besteht darin, als erweitertes Überwachungstool für die Backends von Anwendungen zu arbeiten. Zu diesem Zweck liest Farm Guardian die Farmkonfiguration und erhält die Backend-Liste. Mithilfe eines Plugins wird der Status des Backends überprüft. Farm Guardian aktualisiert das Backend Status für die angegebene Farm, der verwaltet, ob der Load Balancer Datenverkehr an ein solches Backend senden soll.

In diesem Abschnitt können Sie die Farmguardian-Prüfung konfigurieren. Sie können zwei Registerkarten sehen Globale Farms.

Globale Einstellungen

Im Abschnitt "Global" finden Sie Einstellungen für die Gesundheitsprüfung für bestimmte Farmguardian-Gesundheitsprüfungen, wie unten gezeigt.
Die Felder dieser Registerkarte können nicht bearbeitet werden, wenn die Prüfung im System vorinstalliert ist. Wenn Sie diese Prüfung ändern möchten, sollten Sie einen neuen Farmguardian erstellen, der den Kopierparameter aktiviert und die gewünschte Prüfung als Vorlage hinzufügt, und die neue ändern.

  • Name. Der Identifizierungsname des aktuellen Farm Guardian-Checks kann nicht bearbeitet werden.
  • Produktbeschreibung. Dieses Feld enthält eine kurze Beschreibung des Farmguardian-Checks.
  • Befehl. Setzen Sie den Befehl, der ausgeführt wird, um den Status des Backends zu überprüfen.
  • Intervall. Zeit in Sekunden zwischen den Health-Check-Batches für alle Backends. Beachten Sie, dass bei jedem Intervall die Farmguardian-Überprüfung angehalten und neu gestartet wird. Sie muss also hoch genug sein, um alle Backends überprüfen zu können (Timeout * nº Backends + 1).
  • Verbindungen trennen. Wenn diese Option aktiviert ist, werden die aktuellen Verbindungen des erkannten Down-Backends gelöscht, wodurch eine sofortige erneute Verbindung mit einem verfügbaren Backend erzwungen wird. Wenn deaktiviert, werden die aktuellen Verbindungen gelöscht, ohne dass ein Client getrennt wird.
  • Logs. Aktiviert oder deaktiviert die Protokolle jeder Farmguardian-Prüfung. Bei deaktivierten Protokollen werden nur die Änderungen des Backend-Status in den Protokolldateien angezeigt.

Integritätsprüfungen konfigurieren

Alle verfügbaren Farmguardian-Plugins finden Sie unter dem Verzeichnis / usr / local / zevenet / app / libexec / innerhalb des Load Balancer.

Farm Guardian verwendet Plugins, um erweiterte Integritätsprüfungen zu konfigurieren, um mithilfe von benutzerdefinierten Optionen zu ermitteln, ob ein bestimmter Server wie erwartet funktioniert. Es gibt viele Gesundheitschecks für jede Art von Protokoll, Service oder Anwendung. Die wichtigsten Plugins werden im Folgenden 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, Umleitungen folgen, nach Zeichenfolgen und regulären Ausdrücken suchen, Verbindungszeiten prüfen und Berichte über Ablaufzeiten von Zertifikaten, HTTP-Rückkehrcodes usw. erstellen.

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

Farm Guardian verwendet diese Plugins, um den Integritätsstatus 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 sysadmins 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

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

  • HOST: Farmguardian wird sich darum kümmern, diese Konstante durch die reale Server-IP-Adresse zu ändern.
  • PORT: Farmguardian wird sich darum kümmern, diese Konstante durch den realen Server-Port zu ändern.

Diese Konstanten können für jedes Plugin verwendet werden. Farmguardian führt damit den Health-Check mit den tatsächlichen Parametern durch.

Farms

Auf dieser Registerkarte finden Sie eine Liste der Farmen und Dienste, die diesen Farmguardian-Gesundheitscheck verwenden.

Farmen und Dienste können dieser Farmguardian-Integritätsprüfung zugewiesen oder daraus entfernt werden. Verwenden Sie dazu mehrere Auswahlen mit einzelnen Pfeilsymbolen oder Doppelpfeilen, um alle Farmen zu aktivieren oder zu deaktivieren.

Teilen:

Dokumentation unter den Bedingungen der GNU Free Documentation License.

War dieser Artikel hilfreich?

Verwandte Artikel