7 Konfigurationsparameter von Plugins

Siehe Konfigurationsparameter für Zabbix Agent 2-Plugins:

Grundsätze der Plugin-Konfiguration

Diese Seite beschreibt die Grundsätze der Plugin-Konfiguration und bewährte Verfahren.

Alle Plugins werden mit dem Parameter Plugins.* konfiguriert, der entweder Teil der Konfigurationsdatei von Zabbix Agent 2 oder der eigenen Konfigurationsdatei eines Plugins sein kann. Wenn ein Plugin eine separate Konfigurationsdatei verwendet, sollte der Pfad zu dieser Datei im Parameter Include der Konfigurationsdatei von Zabbix Agent 2 angegeben werden.

Ein typischer Plugin-Parameter hat die folgende Struktur:

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

Zusätzlich gibt es zwei spezielle Gruppen von Parametern:

  • 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 über benannte Sitzungen verwendet.

Alle Parameternamen sollten die folgenden Anforderungen erfüllen:

  • es wird empfohlen, die Namen Ihrer Plugins großzuschreiben
  • der Parameter sollte großgeschrieben werden
  • Sonderzeichen sind nicht zulässig
  • die Verschachtelung ist nicht durch eine maximale Ebene begrenzt
  • die Anzahl der Parameter ist nicht begrenzt

Um beispielsweise aktive Prüfungen ohne Scheduling- Aktualisierungsintervall unmittelbar 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>

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

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

Wenn ein Datenpunktschlüssel keine Parameter hat, versucht Zabbix Agent 2, die Metrik mit den im Abschnitt für Standardparameter definierten Werten 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 Datenpunktschlüsselparameter connString verwendet werden, anstatt URI, Benutzername und/oder Passwort separat anzugeben.

In Datenpunktschlü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 Datenpunktschlüssel nicht unterstützt wird; verwenden Sie stattdessen Parameter benannter Sitzungen.

Die Liste der verfügbaren Parameter benannter Sitzungen hängt vom Plugin ab.

Es ist möglich, Sitzungsparameter zu überschreiben, indem neue Werte in den Datenpunktschlü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.

Priorität der Parameter

Zabbix Agent 2-Plugins suchen nach Werten für verbindungsbezogene Parameter in der folgenden Reihenfolge:

  1. Der erste Datenpunkt-Schlüsselparameter wird mit Sitzungsnamen verglichen. Wenn keine Übereinstimmung gefunden wird, wird er als tatsächlicher Wert behandelt; in diesem Fall wird Schritt 3 übersprungen. Wird eine Übereinstimmung gefunden, muss der Parameterwert (normalerweise eine URI) in der benannten Sitzung definiert sein.
  2. Andere Parameter werden aus dem Datenpunkt-Schlüssel übernommen, falls sie definiert sind.
  3. Wenn ein Datenpunkt-Schlüsselparameter (zum Beispiel das Passwort) 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.0: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 Datenpunktschlüssel verwendet werden, z. B. mysql.ping[MySQL1] oder mysql.ping[MySQL2].

Beispiel 2

Bereitstellung einiger Parameter im Datenpunktschlüssel.

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

Datenpunktschlüssel: pgsql.ping[session1,new_username,,postgres]

Als Ergebnis dieser Konfiguration wird der Agent PostgreSQL mit den folgenden Parametern verbinden:

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

Beispiel 3

Erfassung einer Metrik mit Standard-Konfigurationsparametern.

Konfigurationsparameter:

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

Datenpunktschlüssel: pgsql.ping[,,,postgres]

Als Ergebnis dieser Konfiguration wird der Agent unter Verwendung der folgenden Parameter eine Verbindung zu PostgreSQL herstellen:

  • Standard-URI: 192.0.2.234:5432
  • Standard-Benutzername: zabbix
  • Standard-Passwort: password
  • Datenbankname aus dem Datenpunktschlüssel: postgres

Verbindungen

Einige Plugins unterstützen das gleichzeitige Erfassen von Metriken aus 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 offen gehalten werden. Die Vorteile sind eine geringere Netzwerkauslastung, niedrigere 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 mit dem Parameter Plugins.<PluginName>.KeepAlive festgelegt werden. Beispiel: Plugins.Memcached.KeepAlive