Konfigurationsparameter: Plugins

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

Prinzipien der Plugin-Konfiguration

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

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 Include-Parameter 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 zur Definition von Standard-Parameterwerten verwendet.

  • Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> wird zur Definition separater Parametersätze für unterschiedliche Monitoring-Ziele ü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 nur für das Uptime-Plugin unmittelbar nach dem Neustart des Agenten ohne Scheduling-Aktualisierungsintervall auszuführen, setzen Sie Plugins.Uptime.System.ForceActiveChecksOnStart=1 in der Konfigurationsdatei. Ebenso setzen Sie für das CPU-Plugin ein benutzerdefiniertes Limit für gleichzeitige Prüfungen mit 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 für einen solchen Parameter kein Wert in einem Datenpunkt-Schlüssel oder 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 Datenpunkt-Schlüssel keine Parameter hat, versucht Zabbix Agent 2, die Metrik mithilfe der im Abschnitt für Standardparameter 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