Les plugins offrent une option pour étendre les capacités de surveillance de Zabbix. Les plugins sont écrits en langage de programmation Go et ne sont pris en charge que par l'agent Zabbix 2.
Les plugins fournissent une alternative aux modules chargeables (écrits en C) et à d'autres méthodes pour étendre les fonctionnalités de Zabbix, telles que les paramètres utilisateur (métriques de l'agent), les vérifications externes (surveillance sans agent) et l'élément d'agent Zabbix system.run[]
.
Les fonctionnalités suivantes sont spécifiques à l'agent Zabbix 2 et à ses plugins :
Depuis Zabbix 6.0.0, les plugins n'ont pas besoin d'être intégrés directement dans l'agent 2 et peuvent être ajoutés en tant que plugins chargeables, facilitant ainsi le processus de création de plugins supplémentaires pour collecter de nouvelles métriques de surveillance.
Cette page répertorie les plugins natifs et chargeables de Zabbix et décrit les principes de configuration des plugins du point de vue de l'utilisateur. Pour obtenir des instructions sur l'écriture de vos propres plugins, veuillez consulter les Directives de développement de plugins.
Cette section fournit des principes de configuration de plug-in communs et les meilleures pratiques.
Tous les plugins sont configurés à l'aide du paramètre Plugins.*, qui peut soit faire partie du fichier de configuration de l'agent Zabbix 2 ou de leur propre fichier de configuration de plugin. Si un plugin utilise un fichier de configuration séparé, le chemin d'accès à ce fichier doit être spécifié dans le paramètre Include du fichier de configuration de l'agent Zabbix 2.
Chaque paramètre de plugin doit avoir la structure suivante :
Plugins.<PluginName>.<Parameter>=<Value>
Les noms de paramètres doivent respecter les exigences suivantes :
Les sessions nommées représentent un niveau supplémentaire de paramètres de plug-in et peuvent être utilisées pour définir des ensembles distincts de paramètres d'authentification pour chacune des instances surveillées. Chaque paramètre de session nommé doit avoir la structure suivante :
Plugins.<PluginName>.<SessionName>.<Parameter>=<Value>
Un nom de session peut être utilisé comme paramètre de clé d'élément connString au lieu de spécifier un URI, un nom d'utilisateur et un mot de passe séparément. Dans les clés d'élément, le premier paramètre peut être soit une connString soit un Uri. Si le premier paramètre clé correspond à un nom de session spécifié dans le fichier de configuration, la vérification sera exécutée à l'aide des paramètres de session nommés. Si le premier paramètre clé ne correspond à aucun nom de session, il sera traité comme un Uri.
Notez que:
La liste des paramètres de session nommée disponibles dépend du plugin, voir les fichiers de configuration du plugin individuel pour plus de détails.
Exemple : La surveillance de deux instances "MySQL1" et "MySQL2" peut être configurée de la manière suivante :
Plugins.Mysql.Sessions.MySQL1.Uri=tcp://127.0.0.1:3306
Plugins.Mysql.Sessions.MySQL1.User=<UsernameForMySQL1>
Plugins.Mysql.Sessions.MySQL1.Password=<PasswordForMySQL1>
Plugins.Mysql.Sessions.MySQL2.Uri=tcp://127.0.0.1:3307
Plugins.Mysql.Sessions.MySQL2.User=<UsernameForMySQL2>
Plugins.Mysql.Sessions.MySQL2.Password=<PasswordForMySQL2>
Désormais, ces noms peuvent être utilisés comme connStrings dans les clés au lieu d'URIs :
Since version 6.4.3, Zabbix agent 2 plugins search for connection-related parameter values in the following order:
Monitoring of two instances “MySQL1” and “MySQL2”.
Configuration parameters:
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 keys: mysql.ping[MySQL1]
, mysql.ping[MySQL2]
Providing some of the parameters in the item key (supported since Zabbix 6.0.17).
Configuration parameters:
Plugins.Postgres.Sessions.Session1.Uri=tcp://192.0.2.234:5432
Plugins.Postgres.Sessions.Session1.User=old_username
Plugins.Postgres.Sessions.Session1.Password=session_password
Item key: pgsql.ping[session1,new_username,,postgres]
As a result of this configuration, the agent will connect to PostgreSQL using the following parameters:
Collecting a metric using default configuration parameters.
Configuration parameters:
Plugins.Postgres.Default.Uri=tcp://192.0.2.234:5432
Plugins.Postgres.Default.User=zabbix
Plugins.Postgres.Default.Password=password
Item key: pgsql.ping[,,,postgres]
As a result of this configuration, the agent will connect to PostgreSQL using the parameters:
Si un paramètre requis pour l'authentification n'est pas fourni dans une clé d'élément ou dans les paramètres de session nommés, le plugin utilisera une valeur par défaut codée en dur.
Certains plugins prennent en charge la collecte de métriques à partir de plusieurs instances simultanément. Les instances locales et distantes peuvent être surveillées. Les connexions TCP et socket Unix sont prises en charge.
Il est recommandé de configurer les plugins pour maintenir les connexions aux instances dans un état ouvert. Les avantages sont une réduction de la congestion du réseau, de la latence et de l'utilisation du processeur et de la mémoire en raison du nombre inférieur de connexions. La bibliothèque cliente s'en charge.
La période pendant laquelle les connexions inutilisées doivent rester ouvertes peut être déterminée par le paramètre Plugins.<PluginName>.KeepAlive.
Exemple : Plugins.Memcached.KeepAlive
Toutes les métriques prises en charge par l'agent Zabbix 2 sont collectées par les plugins.
Les plugins suivants pour l'agent Zabbix 2 sont disponibles prêts à l'emploi. Cliquez sur le nom du plugin pour accéder au référentiel de plugins avec des informations supplémentaires.
Nom du plug-in | Description | Clés d'éléments pris en charge | Commentaires |
---|---|---|---|
Agent | Métriques de l'agent Zabbix utilisé. | agent.hostname, agent.ping, agent.version | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
Ceph | Surveillance Ceph. | ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump, ceph.ping, ceph.pool.discovery, ceph.status |
|
CPU | Surveillance du processeur système (nombre de processeurs/cœurs de processeur, processeurs découverts, pourcentage d'utilisation). | system.cpu.discovery, system.cpu.num, system.cpu.util | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
Docker | Surveillance des conteneurs Docker. | docker.container_info, docker.container_stats, docker.containers, docker.containers.discovery, docker.data_usage, docker.images, docker.images.discovery, docker.info, docker.ping |
Voir aussi : Paramètres de configuration |
File | Collecte de métriques de fichiers. | vfs.file.cksum, vfs.file.contents, vfs.file.exists, vfs.file.md5sum, vfs.file.regexp, vfs.file.regmatch, vfs.file.size, vfs.file.time |
Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
Kernel | Surveillance du noyau. | kernel.maxfiles, kernel.maxproc | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
Log | Surveillance des fichiers journaux. | log, log.count, logrt, logrt.count | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. Voir aussi : Paramètres de configuration du plugin (Unix/Windows) |
Memcached | Surveillance Memcached du serveur. | memcached.ping, memcached.stats | |
Modbus | Lit les données Modbus. | modbus.get | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
MQTT | Reçoit les valeurs publiées des rubriques MQTT. | mqtt.get | |
MySQL | Surveillance de MySQL et de ses forks. | mysql.db.discovery, mysql.db.size, mysql.get_status_variables, mysql.ping, mysql.replication.discovery, mysql.replication.get_slave_status, mysql.version |
Pour configurer une connexion cryptée à la base de données, utilisez les sessions nommées et spécifiez les paramètres TLS pour la session nommée dans le fichier de configuration de l'agent. Actuellement, les paramètres TLS ne peuvent pas être transmis en tant que paramètres de clé d'élément. |
NetIf | Surveillance des interfaces réseau. | net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
Oracle | Surveillance de la base de données Oracle. | 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 |
Installez Oracle Instant Client avant d'utiliser le plugin. |
Proc | Pourcentage d'utilisation du processeur du processus. | proc.cpu.util | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
Redis | Surveillance du serveur Redis. | redis.config, redis.info, redis.ping, redis.slowlog.count | |
Smart | Surveillance S.M.A.R.T. | smart.attribute.discovery, smart.disk.discovery, smart.disk.get | Les droits d'accès sudo/root à smartctl sont requis pour l'utilisateur exécutant l'agent Zabbix 2. La version minimale requise de smartctl est 7.1. Les clés supportées peuvent être utilisées avec l'agent Zabbix 2 uniquement sur Linux/Windows, à la fois comme vérification passive et active. Voir aussi : Paramètres de configuration |
Swap | Taille de l'espace d'échange en octets/pourcentage. | system.swap.size | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
SystemRun | Exécute la commande spécifiée. | system.run | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. Voir aussi : Paramètres de configuration du plug-in (Unix/Windows) |
Systemd | Surveillance des services systemd. | systemd.unit.discovery, systemd.unit.get, systemd.unit.info | |
TCP | Vérification de la disponibilité de la connexion TCP. | net.tcp.port | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
UDP | Surveillance de la disponibilité et des performances des services UDP. | net.udp.service, net.udp.service.perf | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
Uname | Récupération d'informations sur le système. | system.hostname, system.sw.arch, system.uname | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
Uptime | Récupération d'informations sur la collection de métriques de disponibilité système. | system.uptime | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
VFSDev | Collecte de métriques VFS. | vfs.dev.discovery, vfs.dev.read, vfs.dev.write | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
WebCertificate | Surveillance des certificats de site Web TLS/SSL. | web.certificate.get | |
WebPage | Surveillance des pages Web. | web.page.get, web.page.perf, web.page.regexp | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
ZabbixAsync | Collecte de métriques asynchrones. | 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 |
Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
ZabbixStats | Métriques internes du serveur/proxy Zabbix ou nombre d'éléments retardés dans une file d'attente. | zabbix.stats | Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
ZabbixSync | Collecte de métriques synchrones. | 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. |
Les clés prises en charge ont les mêmes paramètres que les clés de l'agent Zabbix. |
Plugins chargeables, lorsqu'ils sont lancés avec :
- -V --version - afficher la version du plug-in et les informations de licence ;
- -h --help - afficher les informations d'aide.
Cliquez sur le nom du plugin pour accéder au référentiel de plugins avec des informations supplémentaires.
Nom du plugin | Description | Clés d'éléments prises en charge | Commentaires |
---|---|---|---|
MongoDB | Surveillance des serveurs et des clusters MongoDB (base de données distribuée basée sur des documents). | 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 |
Ce plugin est chargeable depuis Zabbix 6.0.6 (intégré précédemment). Pour configurer les connexions chiffrées à la base de données, utilisez les sessions nommées et spécifiez les paramètres TLS pour la session nommée dans le fichier de configuration de l'agent. Pris en charge dans les versions de plugin 1.2.1, 6.0.13 et plus récentes1. Actuellement, les paramètres TLS ne peuvent pas être passés en tant que paramètres de clé d'élément. Voir aussi fichier de configuration du plugin MongoDB. |
PostgreSQL | Surveillance de PostgreSQL et de ses 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 |
Ce plugin est chargeable depuis Zabbix 6.0.10 (précédemment intégré). Pour configurer les connexions chiffrées à la base de données, utilisez les sessions nommées et spécifiez les paramètres TLS pour la session nommée dans le fichier de configuration des agents. Actuellement, les paramètres TLS ne peuvent pas être transmis en tant que paramètres de clé d'élément. |
Voir aussi : Construire des plugins chargeables.
1 - Depuis Zabbix 6.0.13, les plugins chargeables ont commencé à utiliser le même système de gestion des versions que Zabbix lui-même. En conséquence, la version du plugin MongoDB est passée de 1.2.1 à 6.0.13.