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:
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.
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:
Alle parameterbenamingen moeten voldoen aan de volgende eisen:
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.
Vanaf versie 6.0.18 zoeken Zabbix-agent 2-plugins naar waarden van verbindingsgerelateerde parameters in de volgende volgorde:
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 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:
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:
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.
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
Alle metingen die worden ondersteund door Zabbix Agent 2 worden verzameld door middel van plugins.
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 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.
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.