2 Plugins

Übersicht

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) sowie zu anderen Methoden zur Erweiterung der Zabbix-Funktionalität.

Diese Funktionen sind speziell 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 als ladbare Plugins hinzugefügt werden, was die Erstellung von Plugins für neue Metriken vereinfacht. Anleitungen zum Erstellen eigener Plugins finden Sie im Developer center und unter Example plugin for Zabbix agent 2.

Konfiguration von Plugins

Dieser Abschnitt enthält allgemeine 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 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 spezifische 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 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 für das Uptime-Plugin unmittelbar nach dem Neustart des Agenten nur dann auszuführen, wenn sie kein Scheduling-Aktualisierungsintervall haben, 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 kein Wert in einem Datenpunkt-Schlüssel oder in den Parametern der benannten Sitzung angegeben ist, verwendet das Plugin den Standardwert. Wenn auch kein Standardparameter definiert ist, werden fest codierte Standardwerte verwendet.

Wenn ein Datenpunkt-Schlüssel keine Parameter hat, versucht Zabbix Agent 2, die Metrik 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 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 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:

  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. 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 Datenpunkt-Schlüssel übernommen.
  3. Wenn ein Datenpunkt-Schlüsselparameter (z. B. 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 Datenpunkts unter Verwendung 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. Klicken Sie auf den Namen des Plugins, 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 keys.
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 keys.
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 keys.
Kernel Kernel-Überwachung. kernel.maxfiles, kernel.maxproc Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent keys.
Log Überwachung von Protokolldateien. log, log.count, logrt, logrt.count Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent keys.

Siehe auch:
Plugin-Konfigurationsparameter (Unix/Windows)
Memcached Überwachung des Memcached-Servers. memcached.ping, memcached.stats
Modbus Liest Modbus-Daten. modbus.get Unterstützte Schlüssel haben dieselben Parameter wie die Zabbix agent keys.
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 Agent als benannte Sitzung oder Standard-Parameter an. Derzeit können TLS-Parameter nicht als Parameter des item-Schlüssels ü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 Agent als benannte Sitzung oder Standard-Parameter an. Derzeit können TLS-Parameter nicht als Parameter des item-Schlüssels ü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 keys.
Oracle Überwachung der 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 key.
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 Agent als benannte Sitzung oder Standard-Parameter an. TLS-Parameter können nicht als Parameter des item-Schlüssels übergeben werden. Beachten Sie, dass eine fehlerhafte 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 keys 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 der Zabbix agent key.
Swap Größe des Swap-Speichers in Bytes/Prozent. system.swap.size Unterstützter Schlüssel hat dieselben Parameter wie der Zabbix agent key.
SystemRun Führt den angegebenen Befehl aus. system.run Unterstützter Schlüssel hat dieselben Parameter wie der Zabbix agent key.

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 key.
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 keys.
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 keys.
Uptime Erfassung von System-Uptime-Metriken. system.uptime Unterstützter Schlüssel hat dieselben Parameter wie der Zabbix agent key.
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 keys.
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 keys.
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 keys.
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 keys.
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 keys.

Ladbare Plugins

Ladbare Plugins für Zabbix agent 2 sind nicht standardmäßig verfügbar und müssen separat installiert werden:

Vor der Installation eines Plugins lesen Sie bitte die README-Datei. Sie kann spezifische Anforderungen und Installationsanweisungen enthalten.

Klicken Sie auf den Namen des Plugins, um zum Repository des Plugins zu gelangen. Dort befindet sich die README-Datei mit zusätzlichen Informationen.

Plugin name Description Supported item keys Comments
Ember+ Überwachung von Ember+. ember.get Siehe auch Ember+ plugin configuration parameters.
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
Um verschlüsselte Verbindungen zur Datenbank zu konfigurieren, geben Sie die TLS-Parameter in der Konfigurationsdatei des Agent als Parameter einer benannten Sitzung an.
Derzeit können TLS-Parameter nicht als item key-Parameter übergeben werden.

Siehe auch MongoDB plugin configuration parameters.
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 Um eine verschlüsselte Verbindung zur Datenbank zu konfigurieren, geben Sie die TLS-Parameter in der Konfigurationsdatei des Agent als Parameter einer benannten Sitzung oder als Standardwerte an. Derzeit können TLS-Parameter nicht als item key-Parameter übergeben werden.

Siehe auch MSSQL plugin configuration parameters.
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
Um verschlüsselte Verbindungen zur Datenbank zu konfigurieren, geben Sie die TLS-Parameter in der Konfigurationsdatei des Agent als Parameter einer benannten Sitzung oder als Standardwerte an.
Derzeit können TLS-Parameter nicht als item key-Parameter übergeben werden.

Siehe auch PostgreSQL plugin configuration parameters.

Ladbare Plugins geben bei Aufruf von:

  • -V --version - die Plugin-Version und Lizenzinformationen aus;
  • -h --help - Hilfsinformationen aus.