This is a translation of the original English documentation page. Help us make it better.

14 Plugins

Overzicht

Plugins bieden een optie om de monitoringmogelijkheden van Zabbix uit te breiden. Plugins zijn geschreven in de Go-programmeertaal en worden alleen ondersteund door Zabbix-agent 2.

Plugins bieden een alternatief voor laadmodules (geschreven in C) en andere methoden om de functionaliteit van Zabbix uit te breiden, zoals gebruikersparameters (agent-metrics), externe controles (monitoring zonder agent) en de Zabbix agentitem system.run[].

De volgende functies zijn specifiek voor Zabbix-agent 2 en zijn plugins:

  • ondersteuning van geplande en flexibele intervallen voor zowel passieve als actieve controles;
  • beheer van taakwachtrij met respect voor schema en taakconcurrentie;
  • time-outs op het niveau van de plugin;
  • compatibiliteitscontrole van Zabbix-agent 2 en zijn plugin bij het opstarten.

Sinds Zabbix 6.0.0 hoeven plugins niet direct in de agent 2 te worden geïntegreerd en kunnen ze worden toegevoegd als laadbare plugins, waardoor het proces voor het maken van aanvullende plugins voor het verzamelen van nieuwe bewakingsmetingen eenvoudiger wordt.

Deze pagina vermeldt Zabbix native en laadbare plugins en beschrijft de principes van pluginconfiguratie vanuit het gebruikersperspectief. Voor instructies over het schrijven van je eigen plugins, zie Richtlijnen voor plug-inontwikkeling. Voor meer informatie over het communicatieproces tussen Zabbix-agent 2 en een laadbare plugin, evenals het proces van gegevensverzameling, zie Verbindingsdiagram.

Plugins configureren

Dit gedeelte biedt algemene principes en beste praktijken voor het configureren van plugins.

Alle plugins worden geconfigureerd met behulp van de parameter *Plugins.***, die deel kan uitmaken van het Zabbix-agent 2 configuratiebestand of het eigen configuratiebestand van de plugin. Als een plugin een apart configuratiebestand gebruikt, moet het pad naar dit bestand worden gespecificeerd in de Include parameter van het Zabbix-agent 2 configuratiebestand.

Een typische parameter voor een plugin heeft de volgende structuur:

Plugins.<PluginNaam>.<Parameter>=<Waarde>

Daarnaast zijn er twee specifieke groepen parameters:

  • Plugins.<PluginNaam>.Default.<Parameter>=<Waarde> wordt gebruikt voor het definiëren van standaard parameterwaarden.
  • Plugins.<PluginNaam>.<SessieNaam>.<Parameter>=<Waarde> wordt gebruikt voor het definiëren van afzonderlijke sets parameters voor verschillende monitoringdoelen via genoemde sessies.

Alle parameterbenamingen moeten voldoen aan de volgende eisen:

  • Het wordt aanbevolen om de namen van uw plugins te kapitaliseren.
  • De parameter moet worden gekapitaliseerd.
  • Speciale tekens zijn niet toegestaan.
  • Nesting is niet beperkt tot een maximum niveau.
  • Het aantal parameters is niet beperkt.
Genoemde sessies

Genoemde sessies vertegenwoordigen een extra niveau van pluginparameters en kunnen worden gebruikt om afzonderlijke sets van verificatieparameters op te geven voor elk van de te controleren instanties. Elke genoemde sessieparameter moet de volgende structuur hebben:

Plugins.<PluginNaam>.Sessions.<SessieNaam>.<Parameter>=<Waarde>

Een sessienaam kan worden gebruikt als een connString-item sleutelparameter in plaats van afzonderlijk een URI, gebruikersnaam en/of wachtwoord op te geven.

In item-sleutels kan de eerste parameter ofwel een connString of een URI zijn. Als de eerste sleutelparameter niet overeenkomt met een sessienaam, wordt deze behandeld als een URI. Houd er rekening mee dat het insluiten van referenties in een URI niet wordt ondersteund, gebruik in plaats daarvan genoemde sessieparameters.

De lijst met beschikbare genoemde sessieparameters is afhankelijk van de plugin.

In Zabbix-versies voorafgaand aan 6.0.17 moeten bij het verstrekken van een connString (sessienaam) in sleutelparameters van items de parameters voor gebruikersnaam en wachtwoord leeg zijn. De waarden worden overgenomen uit de sessieparameters. Als een verificatieparameter niet is gespecificeerd voor de genoemde sessie, wordt een vaste standaardwaarde gebruikt.

Vanaf Zabbix 6.0.17 is het mogelijk om sessieparameters te overschrijven door nieuwe waarden op te geven in de sleutelparameters van het item (zie voorbeeld).

Vanaf Zabbix 6.0.18 gebruikt Zabbix-agent 2 de waarde die is gedefinieerd in de standaard pluginparameter als een parameter niet is gedefinieerd voor de genoemde sessie.

Parameterprioriteit

Vanaf versie 6.0.18 zoeken Zabbix-agent 2-plugins naar waarden van verbindingsgerelateerde parameters in de volgende volgorde:

  1. De eerste parameter van het item-sleutel wordt vergeleken met sessienamen. Als er geen overeenkomst wordt gevonden, wordt het behandeld als een daadwerkelijke waarde; in dat geval wordt stap 3 overgeslagen. Als er een overeenkomst wordt gevonden, moet de parameterwaarde (meestal een URI) worden gedefinieerd in de genoemde sessie.
  2. Andere parameters worden overgenomen uit het item-sleutel als ze zijn gedefinieerd.
  3. Als een item-sleutelparameter (bijvoorbeeld wachtwoord) leeg is, zoekt de plugin naar de overeenkomstige genoemde sessieparameter.
  4. Als de sessieparameter ook niet is gespecificeerd, wordt de waarde gebruikt die is gedefinieerd in de bijbehorende standaardparameter.
  5. Als al het andere faalt, gebruikt de plugin de standaardwaarde die in de code is vastgelegd.
Voorbeeld 1

Monitoring van twee instanties "MySQL1" en "MySQL2".

Configuratieparameters:

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

Item-sleutels: mysql.ping[MySQL1], mysql.ping[MySQL2]

Voorbeeld 2

Het opgeven van enkele parameters in de item-sleutel (ondersteund sinds Zabbix 6.0.17).

Configuratieparameters:

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

Item-sleutel: pgsql.ping[session1,new_username,,postgres]

Als gevolg van deze configuratie zal de agent verbinding maken met PostgreSQL met behulp van de volgende parameters:

  • URI van sessieparameter: 192.0.2.234:5432
  • Gebruikersnaam van de item-sleutel: new_username
  • Wachtwoord van sessieparameter (omdat het is weggelaten in de item-sleutel): session_password
  • Database naam van de item-sleutel: postgres
Voorbeeld 3

Een metriek verzamelen met behulp van standaard configuratieparameters.

Configuratieparameters:

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

Item-sleutel: pgsql.ping[,,,postgres]

Als gevolg van deze configuratie zal de agent verbinding maken met PostgreSQL met behulp van de volgende parameters:

  • Standaard URI: 192.0.2.234:5432
  • Standaard gebruikersnaam: zabbix
  • Standaard wachtwoord: password
  • Database naam van de item-sleutel: postgres
Standaardwaarden

Sinds Zabbix 6.0.18 kunt u standaardwaarden instellen voor de parameters die verband houden met de verbinding (URI, gebruikersnaam, wachtwoord, enz.) in het configuratiebestand in het formaat:

Plugins.<PluginNaam>.Default.<Parameter>=<Waarde>

Bijvoorbeeld, Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017, etc.

Als er geen waarde voor zo'n parameter wordt opgegeven in een item-sleutel of in de genoemde sessie parameters, zal de plugin de standaardwaarde gebruiken. Als een standaardparameter ook niet is gedefinieerd, worden vaste standaardwaarden gebruikt.

Als een item-sleutel geen parameters heeft, zal Zabbix-agent 2 proberen de metriek te verzamelen met behulp van de waarden die zijn gedefinieerd in het gedeelte met standaardparameters.

Verbindingen

Sommige plugins ondersteunen het tegelijkertijd verzamelen van metingen van meerdere instanties. Zowel lokale als externe instanties kunnen worden bewaakt. TCP- en Unix-socketverbindingen worden ondersteund.

Het wordt aanbevolen om plugins te configureren om verbindingen met instanties in een open toestand te houden. De voordelen hiervan zijn verminderde netwerkcongestie, latentie en CPU- en geheugengebruik door het lagere aantal verbindingen. De clientbibliotheek zorgt hiervoor.

De tijdsperiode gedurende welke ongebruikte verbindingen open moeten blijven, kan worden bepaald door de parameter Plugins.<PluginName>.KeepAlive.
Voorbeeld: Plugins.Memcached.KeepAlive

Plugins

Alle metingen die worden ondersteund door Zabbix Agent 2 worden verzameld door middel van plugins.

Built-in

De volgende plugins voor Zabbix Agent 2 zijn direct beschikbaar. Klik op de naam van de plugin om naar de plug-inrepository te gaan met aanvullende informatie.

Pluginnaam Omschrijving Ondersteunde item-sleutels Opmerkingen
Agent Metingen van de gebruikte Zabbix-agent. agent.hostname, agent.ping, agent.version Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
Ceph Ceph-monitoring. ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump,
ceph.ping, ceph.pool.discovery, ceph.status
CPU Systeem-CPU-monitoring (aantal CPU's / CPU-kernen, ontdekte CPU's, gebruikspercentage). system.cpu.discovery, system.cpu.num, system.cpu.util Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
Docker Monitoring van Docker-containers. docker.container_info, docker.container_stats, docker.containers, docker.containers.discovery,
docker.data_usage, docker.images, docker.images.discovery, docker.info, docker.ping
Zie ook:
Configuratieparameters
Bestand Bestandsmetingen. vfs.file.cksum, vfs.file.contents, vfs.file.exists, vfs.file.md5sum,
vfs.file.regexp, vfs.file.regmatch, vfs.file.size, vfs.file.time
Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
Kernel Kernel-monitoring. kernel.maxfiles, kernel.maxproc Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
Log Logboekbestandmonitoring. log, log.count, logrt, logrt.count Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.

Zie ook:
Plugin configuratieparameters (Unix/Windows)
Memcached Monitoring van Memcached-server. memcached.ping, memcached.stats
Modbus Leest Modbus-gegevens uit. modbus.get Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
MQTT Ontvangt gepubliceerde waarden van MQTT-onderwerpen. mqtt.get Om een versleutelde verbinding met de MQTT-broker te configureren, specificeer je de TLS-parameters in het configuratiebestand van de agent als genoemde sessie of standaard parameters. Momenteel kunnen TLS-parameters niet worden doorgegeven als item sleutel parameters.
MySQL Monitoring van MySQL en zijn 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
Om een versleutelde verbinding met de database te configureren, specificeer je de TLS-parameters in het configuratiebestand van de agent als genoemde sessie of standaard parameters. Momenteel kunnen TLS-parameters niet worden doorgegeven als item sleutel parameters.

mysql.custom.query item sleutel wordt ondersteund sinds Zabbix 6.0.21.
NetIf Monitoring van netwerkinterfaces. net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
Oracle Monitoring van 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
Installeer de Oracle Instant Client voordat je de plug-in gebruikt.
Proc Proces CPU-gebruikspercentage. proc.cpu.util Ondersteunde sleutel heeft dezelfde parameters als Zabbix-agent sleutel.
Redis Monitoring van Redis-server. redis.config, redis.info, redis.ping, redis.slowlog.count
Smart S.M.A.R.T. Monitoring. smart.attribute.discovery, smart.disk.discovery, smart.disk.get Sudo/root-toegangsrechten voor smartctl zijn vereist voor de gebruiker die Zabbix-agent 2 uitvoert. De minimale vereiste smartctl-versie is 7.1.

Ondersteunde sleutels kunnen alleen worden gebruikt met Zabbix-agent 2 op Linux/Windows, zowel als passieve als actieve check.
Zie ook:
Configuratieparameters
Swap Grootte van de wisselruimte in bytes/percentage. system.swap.size Ondersteunde sleutel heeft dezelfde parameters als Zabbix-agent sleutel.
SysteemRun Voert opgegeven opdracht uit. system.run Ondersteunde sleutel heeft dezelfde parameters als Zabbix-agent sleutel.

Zie ook:
Plugin configuratieparameters (Unix/Windows)
Systemd Monitoring van systemd-services. systemd.unit.discovery, systemd.unit.get, systemd.unit.info
TCP Controleert de beschikbaarheid van TCP-verbindingen. net.tcp.port Ondersteunde sleutel heeft dezelfde parameters als Zabbix-agent sleutel.
UDP Monitoring van de beschikbaarheid en prestaties van UDP-services. net.udp.service, net.udp.service.perf Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
Uname Verkrijgen van informatie over het systeem. system.hostname, system.sw.arch, system.uname Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
Uptime Metingen van systeem uptime. system.uptime Ondersteunde sleutel heeft dezelfde parameters als Zabbix-agent sleutel.
VFSDev Metingen van VFS. vfs.dev.discovery, vfs.dev.read, vfs.dev.write Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
WebCertificate Monitoring van TLS/SSL-websitecertificaten. web.certificate.get
WebPage Monitoring van webpagina's. web.page.get, web.page.perf, web.page.regexp Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
ZabbixAsync Asynchrone metingen. 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
Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
ZabbixStats Interne metingen van Zabbix-server/proxy of aantal vertraagde items in een wachtrij. zabbix.stats Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.
ZabbixSync Synchronisatie-metingen. 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.
Ondersteunde sleutels hebben dezelfde parameters als Zabbix-agent sleutels.

Laadbaar

Laadbaar plugins, bij lancering met:
- -V --version - print de plugin-versie en licentie-informatie;
- -h --help - print help-informatie.

Klik op de naam van de plugin om naar het plug-in repository te gaan voor aanvullende informatie.

Plugin naam Beschrijving Ondersteunde sleutels Opmerkingen
MongoDB Monitoring van MongoDB-servers en clusters (documentgebaseerde, gedistribueerde database). 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
Deze plug-in is laadbaar sinds Zabbix 6.0.6 (eerder ingebouwd). Om versleutelde verbindingen met de database te configureren, specificeer je de TLS parameters in het configuratiebestand van de agent als genoemde sessie parameters.
Ondersteund in plug-in versies 1.2.0, 6.0.13 en nieuwer1.
Huidig kunnen TLS parameters niet als item key parameters worden doorgegeven.

Zie ook MongoDB plug-in configuratieparameters.
PostgreSQL Monitoring van PostgreSQL en zijn 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.wal.stat
Deze plug-in is laadbaar sinds Zabbix 6.0.10 (eerder ingebouwd).

Om versleutelde verbindingen met de database te configureren, specificeer je de TLS parameters in het configuratiebestand van de agent als genoemde sessie of standaard parameters.
Huidig kunnen TLS parameters niet als item key parameters worden doorgegeven.

Zie ook PostgreSQL plug-in configuratieparameters.

Zie ook: Bouwen van laadbaar plugins.

Voetnoten

1 - Sinds Zabbix 6.0.13 gebruiken laadbare plugins hetzelfde versienummeringssysteem als Zabbix zelf. Hierdoor is de versie van de MongoDB-plugin gewijzigd van 1.2.0 naar 6.0.13 en is de versie van de PostgreSQL-plugin gewijzigd van 1.2.1 naar 6.0.13.