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:
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.
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:
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 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.
Zabbix agent 2 plugins search for connection-related parameter values in the following order:
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]
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:
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:
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.
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
Alle metrieken die worden ondersteund door Zabbix agent 2 worden verzameld door plugins.
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]. |
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.