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.
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.
:::note-classic 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. :::
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
Since version 6.4.3, Zabbix agent 2 plugins search for connection-related parameter values in the following order:

- 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.
- Other parameters will be taken from the item key if defined.
- If an item key parameter (for example, password) is empty, plugin will look for the corresponding named session parameter.
- If the session parameter is also not specified, the value defined in the corresponding default parameter will be used.
- 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
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
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.