Konfigurationsparameter: Plugins

Siehe die Konfigurationsparameter für Zabbix Agent 2-Plugins:

Prinzipien der Plugin-Konfiguration

Diese Seite beschreibt Prinzipien und Best Practices für die Plugin-Konfiguration.

Alle Plugins werden mithilfe des Parameters Plugins.* konfiguriert. Dieser kann entweder Bestandteil der Konfigurationsdatei von Zabbix Agent 2 oder der Konfigurationsdatei eines Plugins sein. Wenn ein Plugin eine separate Konfigurationsdatei verwendet, muss der Pfad zu dieser Datei im Parameter Include der Konfigurationsdatei von Zabbix Agent 2 angegeben werden.

Ein typischer Plugin-Parameter hat folgende Struktur:

Plugins.<PluginName>.<Parameter>=<Value>

Zusätzlich gibt es zwei spezielle Parametergruppen:

  • Plugins.<PluginName>.Default.<Parameter>=<Value> wird zum Definieren von Standardparameterwerten verwendet.

  • Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> wird zum Definieren separater Parametersätze für verschiedene Überwachungsziele mithilfe von benannten Sitzungen verwendet.

Alle Parameternamen müssen die folgenden Anforderungen erfüllen:

  • Es wird empfohlen, die Namen Ihrer Plugins großzuschreiben.
  • Der Parameter muss großgeschrieben werden.
  • Sonderzeichen sind nicht zulässig.
  • Die Verschachtelung ist nicht auf eine maximale Ebene begrenzt.
  • Die Anzahl der Parameter ist nicht begrenzt.

Um beispielsweise aktive Prüfungen, die kein Scheduling-Aktualisierungsintervall haben, direkt nach dem Neustart des Agent nur für das Uptime-Plugin auszuführen, setzen Sie Plugins.Uptime.System.ForceActiveChecksOnStart=1 in der Konfigurationsdatei. Um auf ähnliche Weise ein benutzerdefiniertes Limit für gleichzeitige Prüfungen für das CPU-Plugin festzulegen, setzen Sie Plugins.CPU.System.Capacity=N in der Konfigurationsdatei.

Standardwerte

Sie können Standardwerte für die verbindungsbezogenen Parameter (URI, Benutzername, Passwort usw.) in der Konfigurationsdatei im folgenden Format festlegen:

Plugins.<PluginName>.Default.<Parameter>=<Value>

Beispielsweise Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017 usw.

Wenn für einen solchen Parameter weder in einem Datenpunktschlüssel noch in den Parametern der benannten Sitzung ein Wert angegeben ist, verwendet das Plugin den Standardwert. Wenn auch für einen Standardparameter kein Wert definiert ist, werden fest codierte Standardwerte verwendet.

Wenn ein Datenpunktschlüssel keine Parameter enthält, versucht Zabbix Agent 2, die Metrik mithilfe der im Abschnitt mit den Standardparametern definierten Werte zu erfassen.

Benannte Sitzungen

Benannte Sitzungen stellen eine zusätzliche Ebene von Plugin-Parametern dar und können verwendet werden, um für jede der überwachten Instanzen separate Sätze von Authentifizierungsparametern anzugeben. Jeder Parameter einer benannten Sitzung sollte die folgende Struktur haben:

Plugins.<PluginName>.Sessions.<SessionName>.<Parameter>=<Value>

Ein Sitzungsname kann als Schlüsselparameter eines connString-Elements verwendet werden, anstatt URI, Benutzername und/oder Passwort separat anzugeben.

In Datenpunkt-Schlüsseln kann der erste Parameter entweder ein connString oder eine URI sein. Wenn der erste Schlüsselparameter mit keinem Sitzungsnamen übereinstimmt, wird er als URI behandelt. Beachten Sie, dass die Übergabe eingebetteter URI-Anmeldedaten im Datenpunkt-Schlüssel nicht unterstützt wird; verwenden Sie stattdessen benannte Sitzungsparameter.

Die Liste der verfügbaren benannten Sitzungsparameter hängt vom Plugin ab.

Es ist möglich, Sitzungsparameter zu überschreiben, indem neue Werte in den Datenpunkt-Schlüsselparametern angegeben werden (siehe Beispiel).

Wenn ein Parameter für die benannte Sitzung nicht definiert ist, verwendet Zabbix Agent 2 den im Standard-Plugin-Parameter definierten Wert.

Parameterpriorität

Zabbix Agent 2-Plugins suchen nach verbindungsbezogenen Parameterwerten in der folgenden Reihenfolge:

  1. Der erste Parameter des Datenpunktschlüssels wird mit den Sitzungsnamen verglichen. Wenn keine Übereinstimmung gefunden wird, wird er als tatsächlicher Wert behandelt; in diesem Fall wird Schritt 3 übersprungen. Wenn eine Übereinstimmung gefunden wird, muss der Parameterwert (in der Regel eine URI) in der benannten Sitzung definiert sein.
  2. Andere Parameter werden, sofern definiert, aus dem Datenpunktschlüssel übernommen.
  3. Wenn ein Parameter des Datenpunktschlüssels (zum Beispiel password) leer ist, sucht das Plugin nach dem entsprechenden Parameter der benannten Sitzung.
  4. Wenn der Sitzungsparameter ebenfalls nicht angegeben ist, wird der im entsprechenden Standardparameter definierte Wert verwendet.
  5. Wenn alles andere fehlschlägt, verwendet das Plugin den fest codierten Standardwert.

Beispiel 1

Überwachung von zwei Instanzen "MySQL1" und "MySQL2".

Konfigurationsparameter:

Plugins.Mysql.Sessions.MySQL1.Uri=tcp://127.0.0.1:3306
Plugins.Mysql.Sessions.MySQL1.User=mysql1_user
Plugins.Mysql.Sessions.MySQL1.Password=unique_password
Plugins.Mysql.Sessions.MySQL2.Uri=tcp://192.0.2.1:3306
Plugins.Mysql.Sessions.MySQL2.User=mysql2_user
Plugins.Mysql.Sessions.MySQL2.Password=different_password

Als Ergebnis dieser Konfiguration kann jeder Sitzungsname als connString in einem item key verwendet werden, z. B. mysql.ping[MySQL1] oder mysql.ping[MySQL2].

Beispiel 2

Einige der Parameter im Datenpunkt-Schlüssel angeben.

Konfigurationsparameter:

Plugins.PostgreSQL.Sessions.Session1.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Sessions.Session1.User=old_username
Plugins.PostgreSQL.Sessions.Session1.Password=session_password

Datenpunkt-Schlüssel: pgsql.ping[session1,new_username,,postgres]

Als Ergebnis dieser Konfiguration verbindet sich der Agent mit PostgreSQL unter Verwendung der folgenden Parameter:

  • URI aus dem Sitzungsparameter: 192.0.2.234:5432
  • Benutzername aus dem Datenpunkt-Schlüssel: new_username
  • Passwort aus dem Sitzungsparameter (da es im Datenpunkt-Schlüssel ausgelassen wird): session_password
  • Datenbankname aus dem Datenpunkt-Schlüssel: postgres

Beispiel 3

Erfassung eines Metrikwerts unter Verwendung der Standardkonfigurationsparameter.

Konfigurationsparameter:

Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password

Item-Schlüssel: pgsql.ping[,,,postgres]

Als Ergebnis dieser Konfiguration verbindet sich der Agent mit PostgreSQL unter Verwendung der folgenden Parameter:

  • Standard-URI: 192.0.2.234:5432
  • Standardbenutzername: zabbix
  • Standardpasswort: password
  • Datenbankname aus dem Item-Schlüssel: postgres

Verbindungen

Einige Plugins unterstützen das gleichzeitige Erfassen von Metriken von mehreren Instanzen. Sowohl lokale als auch entfernte Instanzen können überwacht werden. TCP- und Unix-Socket-Verbindungen werden unterstützt.

Es wird empfohlen, Plugins so zu konfigurieren, dass Verbindungen zu Instanzen im offenen Zustand gehalten werden. Die Vorteile sind eine geringere Netzwerkauslastung, geringere Latenz sowie ein reduzierter CPU- und Speicherverbrauch aufgrund der geringeren Anzahl an Verbindungen. Die Client-Bibliothek übernimmt dies.

Der Zeitraum, für den ungenutzte Verbindungen offen bleiben sollen, kann über den Parameter Plugins.<PluginName>.KeepAlive festgelegt werden. Beispiel: Plugins.Memcached.KeepAlive