Konfigurationsparameter: Plugins
Siehe die Konfigurationsparameter für Zabbix Agent 2-Plugins:
- Ceph-Plugin
- Docker-Plugin
- Ember+-Plugin
- Memcached-Plugin
- Modbus-Plugin
- MongoDB-Plugin
- MQTT-Plugin
- MSSQL-Plugin
- MySQL-Plugin
- NVIDIA-GPU-Plugin
- Oracle-Plugin
- PostgreSQL-Plugin
- Redis-Plugin
- S.M.A.R.T.-Plugin
Prinzipien der Plugin-Konfiguration
Diese Seite beschreibt die Prinzipien und Best Practices für die Plugin-Konfiguration.
Alle Plugins werden über den 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 Standardparameterwerten verwendet.
-
Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> wird zur Definition separater Parametersätze für unterschiedliche Ü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 für das Uptime-Plugin, die unmittelbar nach dem Neustart des Agenten keinen Scheduling-Aktualisierungsintervall haben, nur für das Uptime-Plugin 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 separate Sätze von Authentifizierungsparametern für jede der überwachten Instanzen anzugeben. Jeder Parameter einer benannten Sitzung sollte die folgende Struktur haben:
Plugins.<PluginName>.Sessions.<SessionName>.<Parameter>=<Value>
Ein Sitzungsname kann als connString-Elementschlüsselparameter anstelle der getrennten Angabe von URI, Benutzername und/oder Passwort verwendet werden.
In Datenpunktschlüsseln kann der erste Parameter entweder ein connString oder eine URI sein. Wenn der erste Schlüsselparameter keiner Sitzungsbezeichnung entspricht, wird er als URI behandelt. Beachten Sie, dass die Übergabe eingebetteter URI-Anmeldedaten im Datenpunktschlüssel nicht unterstützt wird; verwenden Sie stattdessen Parameter für benannte Sitzungen.
Die Liste der verfügbaren Parameter für benannte 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.
Parameterpriorität
Zabbix Agent 2-Plugins suchen Verbindungsparameterwerte in der folgenden Reihenfolge:

- 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. Wenn eine Übereinstimmung gefunden wird, muss der Parameterwert (in der Regel eine URI) in der benannten Sitzung definiert sein.
- Andere Parameter werden, sofern definiert, aus dem Datenpunkt-Schlüssel übernommen.
- Wenn ein Datenpunkt-Schlüsselparameter (zum Beispiel password) leer ist, sucht das Plugin nach dem entsprechenden Parameter der benannten Sitzung.
- Wenn der Sitzungsparameter ebenfalls nicht angegeben ist, wird der im entsprechenden Standardparameter definierte Wert verwendet.
- 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 weggelassen wird):
session_password - Datenbankname aus dem Datenpunkt-Schlüssel:
postgres
Beispiel 3
Erfassung eines Datenpunkts 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 key: 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 - Standard-Benutzername:
zabbix - Standard-Passwort:
password - Datenbankname aus dem Item key:
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 von 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