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

14 Plugins

Aperçu

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 :

  • prise en charge d'intervalles programmés et flexibles pour les contrôles passifs et actifs ;
  • gestion de la file d'attente des tâches en ce qui concerne le calendrier et la simultanéité des tâches ;
  • délais d'attente au niveau du plugin ;
  • vérification de la compatibilité de l'agent Zabbix 2 et de son plugin au démarrage.

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.

Configuration des 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 :

  • il est recommandé de mettre en majuscules les noms de vos plugins ;
  • le paramètre doit être en majuscule ;
  • les caractères spéciaux ne sont pas autorisés;
  • l'imbrication n'est pas limitée par un niveau maximum ;
  • le nombre de paramètres n'est pas limité.

Sessions nommées

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:

  • lors de la fourniture d'une connString (nom de session) dans les paramètres de clé, les paramètres de clé pour le nom d'utilisateur et le mot de passe doivent être vides ;
  • la transmission des informations d'identification URI intégrées n'est pas prise en charge, envisagez d'utiliser des sessions nommées à la place ;
  • dans le cas où un paramètre d'authentification n'est pas spécifié pour la session nommée, une valeur par défaut codée en dur sera utilisée.

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 :

mysql.ping[MySQL1]
       mysql.ping[MySQL2]
Parameter priority

Since version 6.4.3, 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.
Example 1

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]

Example 2

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:

  • URI from session parameter: 192.0.2.234:5432
  • Username from the item key: new_username
  • Password from session parameter (since it is omitted in the item key): session_password
  • Database name from the item key: postgres
Example 3

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:

  • Default URI: 192.0.2.234:5432
  • Default username: zabbix
  • Default password: password
  • Database name from the item key: postgres

Valeurs par défaut codées en dur

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.

Connexions

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

Plugins

Toutes les métriques prises en charge par l'agent Zabbix 2 sont collectées par les plugins.

Intégrés

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.

Chargeable

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.

Notes de bas de page

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.