2 Plugins
Überblick
Plugins erweitern die Überwachungsfunktionen von Zabbix Agent 2. Sie sind in der Programmiersprache Go geschrieben und bieten eine Alternative zu ladbaren Modulen (in C geschrieben) und anderen Methoden zur Erweiterung der Zabbix-Funktionalität.
Diese Funktionen sind spezifisch für Agent 2 und seine Plugins:
- Geplante und flexible Intervalle für passive und aktive Prüfungen
- Verwaltung der Aufgabenwarteschlange unter Berücksichtigung von Zeitplan und Aufgabenparallelität
- Timeouts auf Plugin-Ebene
- Kompatibilitätsprüfung von Zabbix Agent 2 und seinen Plugins beim Start
Alle von Zabbix Agent 2 unterstützten Metriken werden von Plugins erfasst. Diese Seite beschreibt die Prinzipien der Plugin-Konfiguration aus Sicht des Benutzers und listet sowohl integrierte als auch ladbare Plugins auf, die von Zabbix bereitgestellt werden.
Seit Zabbix 6.0 müssen Plugins nicht mehr in Agent 2 eingebaut sein. Sie können sie als ladbare Plugins hinzufügen und so die Erstellung von Plugins für neue Metriken vereinfachen. Anweisungen zum Erstellen eigener Plugins finden Sie im Developer center und unter Beispiel-Plugin für Zabbix Agent 2.
Konfiguration von Plugins
Dieser Abschnitt beschreibt allgemeine 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 spezifische Parametergruppen:
-
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 Ü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 sein
- Sonderzeichen sind nicht erlaubt
- 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 Plugins.CPU.System.Capacity=N in der Konfigurationsdatei, um ein benutzerdefiniertes Limit für gleichzeitige Prüfungen festzulegen.
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 weder in einem Datenpunkt-Schlüssel noch in den Parametern der benannten Sitzung ein Wert 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, den Messwert mithilfe der in der Standardparameter-Sektion 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 Schlüsselparameter eines connString-Elements anstelle der separaten 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 nicht mit einem 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 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.
Parameter priority
Zabbix Agent 2-Plugins suchen nach verbindungsbezogenen Parameterwerten 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 (z. B. 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 ausgelassen wird):
session_password - Datenbankname aus dem Datenpunkt-Schlüssel:
postgres
Beispiel 3
Erfassung eines Datenpunkts mithilfe von Standardkonfigurationsparametern.
Konfigurationsparameter:
Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password
Datenpunkt-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 - Standard-Benutzername:
zabbix - Standard-Passwort:
password - Datenbankname aus dem Datenpunkt-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 Clientbibliothek ü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
Integrierte Plugins
Die integrierten Plugins von Zabbix agent 2 sind sofort einsatzbereit verfügbar. Klicken Sie auf den Pluginnamen, um zum Plugin-Repository mit zusätzlichen Informationen zu gelangen.
| Plugin name | Description | Supported item keys | Comments |
|---|---|---|---|
| Agent | Metriken des verwendeten Zabbix agent. | agent.hostname, agent.ping, agent.version | Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| Ceph | Ceph-Überwachung. | ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump, ceph.ping, ceph.pool.discovery, ceph.status |
|
| CPU | Überwachung der System-CPU (Anzahl der CPUs/CPU-Kerne, erkannte CPUs, Auslastungsprozentsatz). | system.cpu.discovery, system.cpu.num, system.cpu.util | Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| Docker | Überwachung von Docker-Containern. | docker.container_info, docker.container_stats, docker.containers, docker.containers.discovery, docker.data_usage, docker.images, docker.images.discovery, docker.info, docker.ping |
Siehe auch: Konfigurationsparameter |
| File | Erfassung von Dateimetriken. | vfs.file.cksum, vfs.file.contents, vfs.file.exists, vfs.file.md5sum, vfs.file.regexp, vfs.file.regmatch, vfs.file.size, vfs.file.time |
Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| Kernel | Kernel-Überwachung. | kernel.maxfiles, kernel.maxproc | Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| Log | Überwachung von Protokolldateien. | log, log.count, logrt, logrt.count | Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. Siehe auch: Plugin-Konfigurationsparameter (Unix/Windows) |
| Memcached | Überwachung des Memcached-Servers. | memcached.ping, memcached.stats | |
| Modbus | Liest Modbus-Daten aus. | modbus.get | Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| MQTT | Empfängt veröffentlichte Werte von MQTT-Themen. | mqtt.get | Um eine verschlüsselte Verbindung zum MQTT-Broker zu konfigurieren, geben Sie TLS-Parameter in der Konfigurationsdatei des Agenten als benannte Sitzung oder Standard-Parameter an. Derzeit können TLS-Parameter nicht als Item-Schlüsselparameter übergeben werden. |
| MySQL | Überwachung von MySQL und seinen Forks. | mysql.custom.query, mysql.db.discovery, mysql.db.size, mysql.get_status_variables, mysql.ping, mysql.replication.discovery, mysql.replication.get_slave_status, mysql.version |
Um eine verschlüsselte Verbindung zur Datenbank zu konfigurieren, geben Sie TLS-Parameter in der Konfigurationsdatei des Agenten als benannte Sitzung oder Standard-Parameter an. Derzeit können TLS-Parameter nicht als Item-Schlüsselparameter übergeben werden. |
| NetIf | Überwachung von Netzwerkschnittstellen. | net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total | Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| Oracle | Überwachung von Oracle Database. | oracle.diskgroups.stats, oracle.diskgroups.discovery, oracle.archive.info, oracle.archive.discovery, oracle.cdb.info, oracle.custom.query, oracle.datafiles.stats, oracle.db.discovery, oracle.fra.stats, oracle.instance.info, oracle.pdb.info, oracle.pdb.discovery, oracle.pga.stats, oracle.ping, oracle.proc.stats, oracle.redolog.info, oracle.sga.stats, oracle.sessions.stats, oracle.sys.metrics, oracle.sys.params, oracle.ts.stats, oracle.ts.discovery, oracle.user.info, oracle.version |
Installieren Sie vor der Verwendung des Plugins den Oracle Instant Client. |
| Proc | CPU-Auslastungsprozentsatz von Prozessen. | proc.cpu.util | Unterstützter Schlüssel hat dieselben Parameter wie der Zabbix agent Schlüssel. |
| Redis | Überwachung des Redis-Servers. | redis.config, redis.info, redis.ping, redis.slowlog.count | Um eine verschlüsselte Verbindung zu Redis zu konfigurieren, geben Sie TLS-Parameter in der Konfigurationsdatei des Agenten als benannte Sitzung oder Standard-Parameter an. TLS-Parameter können nicht als Item-Schlüsselparameter übergeben werden. Beachten Sie, dass eine falsche oder anderweitig ungültige TLS-Konfiguration den Start von Zabbix agent 2 verhindern kann. Überprüfen Sie daher Zertifikatsdateien, Berechtigungen und Pfade, bevor Sie TLS aktivieren. |
| Smart | S.M.A.R.T.-Überwachung. | smart.attribute.discovery, smart.disk.discovery, smart.disk.get | Die mindestens erforderliche smartctl-Version ist 7.1. Für den Benutzer, der Zabbix agent 2 ausführt, sind Sudo-/Root-Zugriffsrechte für smartctl erforderlich. Das Plugin verwendet nur die folgenden Befehle: /usr/sbin/smartctl -a */usr/sbin/smartctl --scan * /usr/sbin/smartctl -j -V Unterstützte Schlüssel können mit Zabbix agent 2 nur unter Linux/Windows verwendet werden, sowohl als passive als auch als aktive Prüfung. Siehe auch: Konfigurationsparameter |
| SW | Auflistung installierter Pakete. | system.sw.packages, system.sw.packages.get | Die unterstützten Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| Swap | Größe des Swap-Speichers in Bytes/Prozent. | system.swap.size | Unterstützter Schlüssel hat dieselben Parameter wie der Zabbix agent Schlüssel. |
| SystemRun | Führt den angegebenen Befehl aus. | system.run | Unterstützter Schlüssel hat dieselben Parameter wie der Zabbix agent Schlüssel. Siehe auch: Plugin-Konfigurationsparameter (Unix/Windows) |
| Systemd | Überwachung von systemd-Diensten. | systemd.unit.discovery, systemd.unit.get, systemd.unit.info | |
| TCP | Prüfung der Verfügbarkeit von TCP-Verbindungen. | net.tcp.port | Unterstützter Schlüssel hat dieselben Parameter wie der Zabbix agent Schlüssel. |
| UDP | Überwachung der Verfügbarkeit und Leistung von UDP-Diensten. | net.udp.service, net.udp.service.perf | Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| Uname | Abruf von Informationen über das System. | system.hostname, system.sw.arch, system.uname | Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| Uptime | Erfassung von System-Uptime-Metriken. | system.uptime | Unterstützter Schlüssel hat dieselben Parameter wie der Zabbix agent Schlüssel. |
| VFSDev | Erfassung von VFS-Metriken. | vfs.dev.discovery, vfs.dev.read, vfs.dev.write | Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| WebCertificate | Überwachung von TLS/SSL-Website-Zertifikaten. | web.certificate.get | |
| WebPage | Überwachung von Webseiten. | web.page.get, web.page.perf, web.page.regexp | Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| ZabbixAsync | Asynchrone Metrikerfassung. | net.tcp.listen, net.udp.listen, sensor, system.boottime, system.cpu.intr, system.cpu.load, system.cpu.switches, system.hw.cpu, system.hw.macaddr, system.localtime, system.sw.os, system.swap.in, system.swap.out, vfs.fs.discovery |
Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| ZabbixStats | Interne Metriken von Zabbix Server/Proxy oder Anzahl verzögerter Datenpunkte in einer Warteschlange. | zabbix.stats | Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
| ZabbixSync | Synchrone Metrikerfassung. | net.dns, net.dns.record, net.tcp.service, net.tcp.service.perf, proc.mem, proc.num, system.hw.chassis, system.hw.devices, system.sw.packages, system.users.num, vfs.dir.count, vfs.dir.size, vfs.fs.get, vfs.fs.inode, vfs.fs.size, vm.memory.size. |
Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent Schlüssel. |
Ladbare Plugins
Ladbare Plugins für Zabbix Agent 2 sind nicht standardmäßig verfügbar und müssen separat installiert werden:
- Unter Linux können Sie Pakete verwenden (z. B. Ember+ unter Ubuntu mit
apt install zabbix-agent2-plugin-ember-plusinstallieren) oder Plugins kompilieren - Unter Windows können Sie aus MSI installieren oder Plugins kompilieren
Bevor Sie ein Plugin installieren, lesen Sie bitte die README-Datei. Sie kann spezifische Anforderungen und Installationsanweisungen enthalten.
Klicken Sie auf den Plugin-Namen, um zum Plugin-Repository zu gelangen, das die README-Datei des Plugins mit zusätzlichen Informationen enthält.
| Plugin name | Description | Supported item keys | Comments |
|---|---|---|---|
| Ember+ | Überwachung von Ember+. | ember.get | Siehe auch Ember+-Plugin-Konfigurationsparameter. |
| MongoDB | Überwachung von MongoDB-Servern und -Clustern (dokumentenbasierte, verteilte Datenbank). | mongodb.collection.stats, mongodb.collections.discovery, mongodb.collections.usage, mongodb.connpool.stats, mongodb.db.stats, mongodb.db.discovery, mongodb.jumbo_chunks.count, mongodb.oplog.stats, mongodb.ping, mongodb.rs.config, mongodb.rs.status, mongodb.server.status, mongodb.sh.discovery, mongodb.version |
Zum Konfigurieren verschlüsselter Verbindungen zur Datenbank geben Sie die TLS-Parameter in der Agent-Konfigurationsdatei als Parameter einer benannten Sitzung an. Derzeit können TLS-Parameter nicht als item key-Parameter übergeben werden. Siehe auch MongoDB-Plugin-Konfigurationsparameter. |
| MSSQL | Überwachung der MSSQL-Datenbank. | mssql.availability.group.get, mssql.custom.query, mssql.db.get, mssql.job.status.get, mssql.last.backup.get, mssql.local.db.get, mssql.mirroring.get, mssql.nonlocal.db.get, mssql.perfcounter.get, mssql.ping, mssql.quorum.get, mssql.quorum.member.get, mssql.replica.get, mssql.version | Zum Konfigurieren einer verschlüsselten Verbindung zur Datenbank geben Sie die TLS-Parameter in der Agent-Konfigurationsdatei als Parameter einer benannten Sitzung oder Standard an. Derzeit können TLS-Parameter nicht als item key-Parameter übergeben werden. Siehe auch MSSQL-Plugin-Konfigurationsparameter. |
| NVIDIA GPU | Überwachung von NVIDIA GPU. | nvml.device.count, nvml.device.decoder.utilization, nvml.device.ecc.mode, nvml.device.encoder.stats.get, nvml.device.encoder.utilization, nvml.device.energy.consumption, nvml.device.errors.memory, nvml.device.errors.register, nvml.device.fan.speed.avg, nvml.device.get, nvml.device.graphics.frequency, nvml.device.memory.bar1.get, nvml.device.memory.fb.get, nvml.device.memory.frequency, nvml.device.pci.utilization, nvml.device.performance.state, nvml.device.power.limit, nvml.device.power.usage, nvml.device.serial, nvml.device.sm.frequency, nvml.device.temperature, nvml.device.utilization, nvml.device.video.frequency, nvml.system.driver.version, nvml.version | Siehe auch NVIDIA GPU-Plugin-Konfigurationsparameter. |
| PostgreSQL | Überwachung von PostgreSQL und seinen Forks. | pgsql.autovacuum.count, pgsql.archive, pgsql.bgwriter, pgsql.cache.hit, pgsql.connections, pgsql.custom.query, pgsql.dbstat, pgsql.dbstat.sum, pgsql.db.age, pgsql.db.bloating_tables, pgsql.db.discovery, pgsql.db.size, pgsql.locks, pgsql.oldest.xid, pgsql.ping, pgsql.queries, pgsql.replication.count, pgsql.replication.process, pgsql.replication.process.discovery, pgsql.replication.recovery_role, pgsql.replication.status, pgsql.replication_lag.b, pgsql.replication_lag.sec, pgsql.uptime, pgsql.version, pgsql.wal.stat |
Zum Konfigurieren verschlüsselter Verbindungen zur Datenbank geben Sie die TLS-Parameter in der Agent-Konfigurationsdatei als Parameter einer benannten Sitzung oder Standard an. Derzeit können TLS-Parameter nicht als item key-Parameter übergeben werden. Siehe auch PostgreSQL-Plugin-Konfigurationsparameter. |
Ladbare Plugins geben bei Aufruf mit:
-V --version- Versions- und Lizenzinformationen aus;-h --help- Hilfsinformationen aus.