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

2 Plugins

Overzicht

Plugins bieden de mogelijkheid 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 laadbare modules (geschreven in C), en andere methoden om de functionaliteit van Zabbix uit te breiden.

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

  • ondersteuning van geplande en flexibele intervallen voor zowel passieve als actieve controles;
  • beheer van taakwachtrij met betrekking tot planning en taakgelijktijdigheid;
  • time-outs op plugin-niveau;
  • compatibiliteitscontrole van Zabbix Agent 2 en zijn plugins bij het opstarten.

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

Deze pagina vermeldt Zabbix native en laadmodules en beschrijft de configuratieprincipes van plugins vanuit het gebruikersperspectief.

Voor instructies en tutorials over het schrijven van je eigen plugins, zie Developer center.

Voor meer informatie over het communicatieproces tussen Zabbix Agent 2 en een laadbare plugin, evenals het proces van het verzamelen van metingen, zie Connection diagram.

Plugins configureren

Dit gedeelte biedt gemeenschappelijke configuratieprincipes en beste praktijken voor plugins.

Alle plugins worden geconfigureerd met behulp van het parameterpatroon Plugins.*. Dit kan onderdeel zijn van het Zabbix Agent 2 configuratiebestand of het eigen configuratiebestand van een plugin. Als een plugin een apart configuratiebestand gebruikt, moet het pad naar dit bestand worden opgegeven in het Include parameter van het Zabbix Agent 2 configuratiebestand.

Een typisch plugin-parameter heeft de volgende structuur:

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

Daarnaast zijn er twee specifieke groepen parameters:

  • Plugins.<PluginNaam>.Default.<Parameter>=<Waarde> wordt gebruikt om standaard parameterwaarden te definiëren.

  • Plugins.<PluginNaam>.<SessionNaam>.<Parameter>=<Waarde> wordt gebruikt om afzonderlijke sets parameters te definiëren voor verschillende monitoringdoelen via genoemde sessies.

Alle parameterbenamingen moeten voldoen aan de volgende vereisten:

  • Het wordt aanbevolen om de namen van je plugins te kapitaliseren;
  • De parameter moet worden gekapitaliseerd;
  • Speciale tekens zijn niet toegestaan;
  • Nesting is niet beperkt tot een maximumniveau;
  • Het aantal parameters is niet beperkt.

Bijvoorbeeld, om actieve controles uit te voeren zonder Scheduling update-interval direct na het opnieuw starten van de agent alleen voor de Uptime-plugin, stel Plugins.Uptime.System.ForceActiveChecksOnStart=1 in het configuratiebestand in. Op dezelfde manier, om een aangepaste limiet voor gelijktijdige controles voor de CPU-plugin in te stellen, stelt u Plugins.CPU.System.Capacity=N in het configuratiebestand in.

Genoemde sessies

Genoemde sessies vertegenwoordigen een extra niveau van plugin parameters en kunnen worden gebruikt om aparte sets authenticatieparameters op te geven voor elk van de te monitoren instanties. Elke genoemde sessie parameter moet de volgende structuur hebben:

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

Een sessienaam kan worden gebruikt als een connString item sleutel parameter in plaats van het apart specificeren van een URI, gebruikersnaam en/of wachtwoord.

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. Merk op dat het insluiten van inloggegevens in een URI niet wordt ondersteund, gebruik in plaats daarvan genoemde sessieparameters.

De lijst met beschikbare parameters voor genoemde sessies hangt af van de plugin.

In Zabbix versies 6.4.0-6.4.2, bij het verstrekken van een connString (sessienaam) in sleutelparameters, moeten de item sleutel parameters voor gebruikersnaam en wachtwoord leeg zijn. De waarden worden overgenomen uit de sessieparameters. Als een authenticatieparameter niet is gespecificeerd voor de genoemde sessie, wordt een hardgecodeerde standaardwaarde gebruikt.

Sinds Zabbix 6.4.2, is het mogelijk om sessieparameters te overschrijven door nieuwe waarden op te geven in de item sleutel parameters (zie voorbeeld).

Sinds Zabbix 6.4.3, als een parameter niet is gedefinieerd voor de genoemde sessie, zal Zabbix Agent 2 de waarde gebruiken die is gedefinieerd in de standaard plugin parameter.

Parameter priority

Zabbix agent 2 plugins search for connection-related parameter values in the following order:

  1. The first item key parameter is compared to session names. If no match is found, it is treated as an actual value; in this case, step 3 will be skipped. If a match is found, the parameter value (usually, a URI) must be defined in the named session.
  2. Other parameters will be taken from the item key if defined.
  3. If an item key parameter (for example, password) is empty, plugin will look for the corresponding named session parameter.
  4. If the session parameter is also not specified, the value defined in the corresponding default parameter will be used.
  5. If all else fails, the plugin will use the hardcoded default value.
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 verstrekken van sommige van de parameters in de item sleutel (ondersteund sinds Zabbix 6.4.2).

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 resultaat van deze configuratie zal de agent verbinding maken met PostgreSQL met behulp van de volgende parameters:

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

Het verzamelen van een metriek 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 resultaat 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
  • Naam van de database uit de item sleutel: postgres
Standaardwaarden

Sinds Zabbix 6.4.3 kun je standaardwaarden instellen voor de parameters met betrekking tot de verbinding (URI, gebruikersnaam, wachtwoord, etc.) 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 wordt opgegeven voor een dergelijke parameter in een item sleutel of in de genoemde sessie parameters, zal de plugin de standaardwaarde gebruiken. Als een standaardparameter ook niet is gedefinieerd, worden hardgecodeerde standaardwaarden gebruikt.

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

Verbindingen

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

Het wordt aanbevolen om plugins zo te configureren dat verbindingen met instanties in een open toestand worden gehouden. Dit heeft voordelen zoals verminderde netwerkcongestie, latentie, en CPU- en geheugengebruik als gevolg van het lagere aantal verbindingen. De clientbibliotheek zorgt hiervoor.

De tijdsperiode waarvoor ongebruikte verbindingen open moeten blijven, kan worden bepaald met de parameter Plugins.<PluginName>.KeepAlive. Bijvoorbeeld: Plugins.Memcached.KeepAlive

Plugins

Alle metrieken die worden ondersteund door Zabbix agent 2 worden verzameld door plugins.

Ingebouwde

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

Plugin naam Omschrijving Ondersteunde item sleutels Opmerkingen
Agent Metrieken 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, gebruik in procenten). 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
File Verzameling van bestandsmetrieken. 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 Monitoring van logbestanden. log, log.count, logrt, logrt.count Ondersteunde sleutels hebben dezelfde parameters als Zabbix agent sleutels.

Zie ook:
Plugin configuratieparameters (Unix/Windows)
Memcached Memcached server-monitoring. memcached.ping, memcached.stats
Modbus Leest Modbus-gegevens. 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 de TLS-parameters in het agent-configuratiebestand als benoemde sessie of standaard parameters. Op dit moment kunnen TLS-parameters niet worden doorgegeven als parameters voor item sleutels.
MySQL Monitoring van MySQL en zijn afsplitsingen. 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 de TLS-parameters in het agent-configuratiebestand als benoemde sessie of standaard parameters. Op dit moment kunnen TLS-parameters niet worden doorgegeven als parameters voor item sleutels.

De item sleutel mysql.custom.query wordt ondersteund sinds Zabbix 6.4.6.
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 Oracle Database monitoring. 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 plugin gebruikt.
Proc Proces CPU-gebruik in procenten. proc.cpu.util Ondersteunde sleutel heeft dezelfde parameters als Zabbix agent sleutel.
Redis Redis server-monitoring. 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 versie van smartctl 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
SW Lijst van geïnstalleerde pakketten. system.sw.packages, system.sw.packages.get De ondersteunde sleutels hebben dezelfde parameters als Zabbix agent sleutel.
Swap Swapruimte grootte in bytes/procent. system.swap.size Ondersteunde sleutel heeft dezelfde parameters als Zabbix agent sleutel.
SystemRun Voert een opgegeven opdracht uit. system.run Ondersteunde sleutel heeft dezelfde parameters als Zabbix agent [sleutel].(/manual/config/items/itemtypes/zabbix_agent/zabbix_agent2)

Zie ook:
Plugin configuratieparameters (Unix/Windows)
Systemd Monitoring van systemd-services. systemd.unit.discovery, systemd.unit.get, systemd.unit.info
TCP Controleer beschikbaarheid van TCP-verbindingen. net.tcp.port Ondersteunde sleutel heeft dezelfde parameters als Zabbix agent [sleutel].
UDP Monitoring van beschikbaarheid en prestaties van UDP-services. net.udp.service, net.udp.service.perf Ondersteunde sleutels hebben dezelfde parameters als Zabbix agent sleutels.
Uname Ophalen van informatie over het systeem. system.hostname, system.sw.arch, system.uname Ondersteunde sleutels hebben dezelfde parameters als Zabbix agent [sleutels].(/manual/config/items/itemtypes/zabbix_agent/zabbix_agent2)
Uptime Verzameling metrieken voor systeem-uptime. system.uptime Ondersteunde sleutel heeft dezelfde parameters als Zabbix agent [sleutel].
VFSDev Verzameling VFS-metrieken. 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 Webpagina monitoring. web.page.get, web.page.perf, web.page.regexp Ondersteunde sleutels hebben dezelfde parameters als Zabbix agent [sleutels].
ZabbixAsync Asynchrone metrieken verzameling. 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 Zabbix server/proxy interne metrieken of het aantal vertraagde items in een wachtrij. zabbix.stats Ondersteunde sleutels hebben dezelfde parameters als Zabbix agent [sleutels].
ZabbixSync Synchrone metrieken verzameling. 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

Laadbare plugins, wanneer gestart met:
- -V --version - pluginversie en licentie-informatie weergeven;
- -h --help - helpinformatie weergeven.

Klik op de naam van de plugin om naar de pluginrepository te gaan voor aanvullende informatie.

Plugin naam Omschrijving 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
Om versleutelde verbindingen met de database te configureren, specificeert u de TLS-parameters in het configuratiebestand van de agent als genoemde sessie parameters.
Huidig kunnen TLS-parameters niet worden doorgegeven als sleutelparameters.

Zie ook MongoDB plugin configuratieparameters.
PostgreSQL Monitoring van PostgreSQL en zijn vertakkingen. 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
Om versleutelde verbindingen met de database te configureren, specificeert u de TLS-parameters in het configuratiebestand van de agent als genoemde sessie of standaard parameters.
Huidig kunnen TLS-parameters niet worden doorgegeven als sleutelparameters.

Zie ook PostgreSQL plugin configuratieparameters.

Zie ook: Laadbare plugins bouwen.