2 Complementos
Descripción general
Los plugins amplían las capacidades de monitorización del agent 2 de Zabbix. Escritos en el lenguaje de programación Go, proporcionan una alternativa a los módulos cargables (escritos en C) y a otros métodos para ampliar la funcionalidad de Zabbix.
Estas características son específicas del agent 2 y sus plugins:
- Intervalos programados y flexibles tanto para comprobaciones pasivas como activas
- Gestión de la cola de tareas con respecto a la programación y concurrencia de tareas
- Tiempos de espera a nivel de plugin
- Comprobación de compatibilidad del agent 2 de Zabbix y sus plugins al inicio
Todas las métricas soportadas por el agent 2 de Zabbix son recogidas por plugins. Esta página describe los principios de configuración de plugins desde la perspectiva del usuario y enumera tanto los plugins integrados como los cargables proporcionados por Zabbix.
Desde Zabbix 6.0, los plugins ya no necesitan estar integrados en el agent 2. Puede añadirlos como plugins cargables, simplificando así la creación de plugins para nuevas métricas. Para obtener instrucciones sobre cómo crear sus propios plugins, consulte el Centro de desarrollo y el Plugin de ejemplo para el agent 2 de Zabbix.
Configuración de plugins
Esta sección proporciona principios comunes de configuración de plugins y buenas prácticas.
Todos los plugins se configuran mediante el parámetro Plugins.\*, que puede formar parte del archivo de configuración del agent 2 de Zabbix o del propio archivo de configuración de un plugin.
Si un plugin utiliza un archivo de configuración independiente, la ruta a este archivo debe especificarse en el parámetro Include del archivo de configuración del agent 2 de Zabbix.
Un parámetro típico de plugin tiene la siguiente estructura:
Plugins.<PluginName>.<Parameter>=<Value>
Además, hay dos grupos específicos de parámetros:
-
Plugins.<PluginName>.Default.<Parameter>=<Value>se usa para definir valores predeterminados de parámetros. -
Plugins.<PluginName>.<SessionName>.<Parameter>=<Value>se usa para definir conjuntos separados de parámetros para distintos objetivos de monitorización mediante sesiones con nombre.
Todos los nombres de parámetros deben cumplir los siguientes requisitos:
- Se recomienda escribir los nombres de los plugins con mayúscula inicial.
- El parámetro debe escribirse con mayúscula inicial.
- No se permiten caracteres especiales.
- La anidación no está limitada por un nivel máximo.
- El número de parámetros no está limitado.
Por ejemplo, para realizar comprobaciones activas que no tengan el intervalo de actualización de Scheduling inmediatamente después del reinicio del agent solo para el plugin Uptime, establezca Plugins.Uptime.System.ForceActiveChecksOnStart=1 en el archivo de configuración.
Del mismo modo, para establecer un límite personalizado para las comprobaciones concurrentes del plugin CPU, establezca Plugins.CPU.System.Capacity=N en el archivo de configuración.
Valores predeterminados
Puede establecer valores predeterminados para los parámetros relacionados con la conexión (URI, nombre de usuario, contraseña, etc.) en el archivo de configuración con el formato:
Complementos.<Nombre del complemento>.Predeterminado.<Parámetro>=<Valor>
Por ejemplo, Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017, etc.
Si no se proporciona un valor para dicho parámetro en una clave de métrica o en los parámetros de sesión nombrada, el complemento utilizará el valor predeterminado. Si un parámetro predeterminado tampoco está definido, se utilizarán valores predeterminados codificados.
Si una clave de métrica no tiene ningún parámetro, el agente 2 de Zabbix intentará recopilar la métrica utilizando los valores definidos en la sección de parámetros predeterminados.
Sesiones nombradas
Las sesiones con nombre representan un nivel adicional de parámetros de complemento y se pueden usar para especificar conjuntos separados de parámetros de autenticación para cada una de las instancias que se monitorean. Cada parámetro de sesión con nombre debe tener la siguiente estructura:
Complementos.<Nombre del complemento>.Sesiones.<Nombre de la sesión>.<Parámetro>=<Valor>
Se puede utilizar un nombre de sesión como parámetro clave de métrica connString en lugar de especificar un URI, un nombre de usuario y/o una contraseña por separado.
En las claves de métricas, el primer parámetro puede ser un connString o un URI. Si el primer parámetro clave no coincide con ningún nombre de sesión, se tratará como un URI. Tenga en cuenta que no se admite el paso de credenciales URI incrustadas en la clave de la métrica; en su lugar, utilice parámetros de sesión con nombre.
La lista de parámetros de sesión con nombre disponibles depende del complemento.
Es posible anular los parámetros de la sesión especificando nuevos valores en los parámetros clave de la métrica (consulte el ejemplo).
Si no se define un parámetro para la sesión nombrada, el agente 2 de Zabbix utilizará el valor definido en el parámetro del complemento predeterminado.
Prioridad del parámetro
Los complementos del agente 2 Zabbix buscan valores de parámetros relacionados con la conexión en el siguiente orden:

- El primer parámetro clave de la métrica se compara con los nombres de las sesiones. Si no se encuentra ninguna coincidencia, se trata como un valor real; en este caso, se omitirá el paso 3. Si se encuentra una coincidencia, el valor del parámetro (normalmente, un URI) debe definirse en la sesión nombrada.
- Otros parámetros se tomarán de la clave de la métrica, si están definidos.
- Si un parámetro clave de métrica (por ejemplo, contraseña) está vacío, el complemento buscará el parámetro de sesión con nombre correspondiente.
- Si tampoco se especifica el parámetro de sesión, se utilizará el valor definido en el parámetro predeterminado correspondiente.
- Si todo lo demás falla, el complemento utilizará el valor predeterminado codificado.
Ejemplo 1
Monitorización de dos instancias "MySQL1" y "MySQL2".
Parámetros de configuración:
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.1:3306
Plugins.Mysql.Sessions.MySQL2.User=mysql2_user
Plugins.Mysql.Sessions.MySQL2.Password=different_password
Como resultado de esta configuración, cada nombre de sesión puede utilizarse como connString en una item key, por ejemplo, mysql.ping[MySQL1] o mysql.ping[MySQL2].
Ejemplo 2
Proporcionando algunos de los parámetros en la clave del item.
Parámetros de configuración:
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
Clave del item: pgsql.ping[session1,new_username,,postgres]
Como resultado de esta configuración, el agent se conectará a PostgreSQL usando los siguientes parámetros:
- URI del parámetro de sesión:
192.0.2.234:5432 - Nombre de usuario de la clave del item:
new_username - Contraseña del parámetro de sesión (ya que se omite en la clave del item):
session_password - Nombre de la base de datos de la clave del item:
postgres
Ejemplo 3
Recopilación de una métrica usando parámetros de configuración predeterminados.
Parámetros de configuración:
Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password
Clave del item: pgsql.ping[,,,postgres]
Como resultado de esta configuración, el agent se conectará a PostgreSQL usando los parámetros:
- URI predeterminada:
192.0.2.234:5432 - Nombre de usuario predeterminado:
zabbix - Contraseña predeterminada:
password - Nombre de la base de datos de la clave del item:
postgres
Conexiones
Algunos plugins admiten la recopilación de métricas de varias instancias simultáneamente. Se pueden supervisar tanto instancias locales como remotas. Se admiten conexiones TCP y Unix-socket.
Se recomienda configurar los plugins para mantener las conexiones con las instancias en estado abierto. Los beneficios son una menor congestión de red, menor latencia y un menor uso de CPU y memoria debido al menor número de conexiones. La biblioteca del cliente se encarga de esto.
El período de tiempo durante el cual las conexiones no utilizadas deben permanecer abiertas puede determinarse mediante el parámetro Plugins.<PluginName>.KeepAlive.
Ejemplo: Plugins.Memcached.KeepAlive
Plugins integrados
Los plugins integrados de Zabbix agent 2 están disponibles de forma predeterminada. Haga clic en el nombre del plugin para ir al repositorio del plugin con información adicional.
| Nombre del plugin | Descripción | Claves de item compatibles | Comentarios |
|---|---|---|---|
| Agent | Métricas del Zabbix agent que se está utilizando. | agent.hostname, agent.ping, agent.version | Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| Ceph | Monitorización de Ceph. | ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump, ceph.ping, ceph.pool.discovery, ceph.status |
|
| CPU | Monitorización de la CPU del sistema (número de CPU/núcleos de CPU, CPU detectadas, porcentaje de utilización). | system.cpu.discovery, system.cpu.num, system.cpu.util | Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| Docker | Monitorización de contenedores Docker. | docker.container_info, docker.container_stats, docker.containers, docker.containers.discovery, docker.data_usage, docker.images, docker.images.discovery, docker.info, docker.ping |
Véase también: Parámetros de configuración |
| File | Recopilación de métricas de archivos. | vfs.file.cksum, vfs.file.contents, vfs.file.exists, vfs.file.md5sum, vfs.file.regexp, vfs.file.regmatch, vfs.file.size, vfs.file.time |
Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| Kernel | Monitorización del kernel. | kernel.maxfiles, kernel.maxproc | Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| Log | Monitorización de archivos de registro. | log, log.count, logrt, logrt.count | Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. Véase también: Parámetros de configuración del plugin (Unix/Windows) |
| Memcached | Monitorización del server Memcached. | memcached.ping, memcached.stats | |
| Modbus | Lee datos Modbus. | modbus.get | Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| MQTT | Recibe valores publicados de temas MQTT. | mqtt.get | Para configurar una conexión cifrada al broker MQTT, especifique los parámetros TLS en el archivo de configuración del agent como parámetros de sesión con nombre o predeterminados. Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de item. |
| MySQL | Monitorización de MySQL y sus derivados. | 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 |
Para configurar una conexión cifrada a la base de datos, especifique los parámetros TLS en el archivo de configuración del agent como parámetros de sesión con nombre o predeterminados. Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de item. |
| NetIf | Monitorización de interfaces de red. | net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total | Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| Oracle | Monitorización de 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, oracle.version |
Instale Oracle Instant Client antes de usar el plugin. |
| Proc | Porcentaje de utilización de CPU de procesos. | proc.cpu.util | La clave compatible tiene los mismos parámetros que la clave de Zabbix agent. |
| Redis | Monitorización del server Redis. | redis.config, redis.info, redis.ping, redis.slowlog.count | Para configurar una conexión cifrada a Redis, especifique los parámetros TLS en el archivo de configuración del agent como parámetros de sesión con nombre o predeterminados. Los parámetros TLS no se pueden pasar como parámetros de clave de item. Tenga en cuenta que una configuración TLS incorrecta o no válida puede impedir que Zabbix agent 2 se inicie, por lo que debe verificar los archivos de certificados, los permisos y las rutas antes de habilitar TLS. |
| Smart | Monitorización S.M.A.R.T. | smart.attribute.discovery, smart.disk.discovery, smart.disk.get | La versión mínima requerida de smartctl es 7.1. El usuario que ejecute Zabbix agent 2 necesita permisos sudo/root para smartctl. El plugin utiliza solo los siguientes comandos: /usr/sbin/smartctl -a */usr/sbin/smartctl --scan * /usr/sbin/smartctl -j -V Las claves compatibles solo se pueden usar con Zabbix agent 2 en Linux/Windows, tanto como comprobación pasiva como activa. Véase también: Parámetros de configuración |
| SW | Listado de paquetes instalados. | system.sw.packages, system.sw.packages.get | Las claves compatibles tienen los mismos parámetros que la clave de Zabbix agent. |
| Swap | Tamaño del espacio de swap en bytes/porcentaje. | system.swap.size | La clave compatible tiene los mismos parámetros que la clave de Zabbix agent. |
| SystemRun | Ejecuta el comando especificado. | system.run | La clave compatible tiene los mismos parámetros que la clave de Zabbix agent. Véase también: Parámetros de configuración del plugin (Unix/Windows) |
| Systemd | Monitorización de servicios systemd. | systemd.unit.discovery, systemd.unit.get, systemd.unit.info | |
| TCP | Comprobación de disponibilidad de conexiones TCP. | net.tcp.port | La clave compatible tiene los mismos parámetros que la clave de Zabbix agent. |
| UDP | Monitorización de la disponibilidad y el rendimiento de los servicios UDP. | net.udp.service, net.udp.service.perf | Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| Uname | Obtención de información sobre el sistema. | system.hostname, system.sw.arch, system.uname | Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| Uptime | Recopilación de métricas de tiempo de actividad del sistema. | system.uptime | La clave compatible tiene los mismos parámetros que la clave de Zabbix agent. |
| VFSDev | Recopilación de métricas de VFS. | vfs.dev.discovery, vfs.dev.read, vfs.dev.write | Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| WebCertificate | Monitorización de certificados TLS/SSL de sitios web. | web.certificate.get | |
| WebPage | Monitorización de páginas web. | web.page.get, web.page.perf, web.page.regexp | Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| ZabbixAsync | Recopilación asíncrona de métricas. | 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 |
Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| ZabbixStats | Métricas internas del server/proxy de Zabbix o número de items retrasados en una cola. | zabbix.stats | Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
| ZabbixSync | Recopilación síncrona de métricas. | 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. |
Las claves compatibles tienen los mismos parámetros que las claves de Zabbix agent. |
Plugins cargables
Los plugins cargables de Zabbix agent 2 no están disponibles de forma predeterminada y deben instalarse por separado:
- En Linux, puede usar paquetes (por ejemplo, instalar Ember+ en Ubuntu con
apt install zabbix-agent2-plugin-ember-plus) o compilar plugins - En Windows, puede instalar desde MSI o compilar plugins
Antes de instalar un plugin, consulte su archivo README. Puede contener requisitos e instrucciones de instalación específicos.
Haga clic en el nombre del plugin para ir al repositorio del plugin, que contiene el archivo README del plugin con información adicional.
| Nombre del plugin | Descripción | Claves de item compatibles | Comentarios |
|---|---|---|---|
| Ember+ | Supervisión de Ember+. | ember.get | Consulte también los parámetros de configuración del plugin Ember+. |
| MongoDB | Supervisión de servidores y clústeres de MongoDB (base de datos distribuida basada en documentos). | 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, mongodb.version |
Para configurar conexiones cifradas a la base de datos, especifique los parámetros TLS en el archivo de configuración del agent como parámetros de sesión con nombre. Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de item. Consulte también los parámetros de configuración del plugin MongoDB. |
| MSSQL | Supervisión de la base de datos MSSQL. | mssql.availability.group.get, mssql.custom.query, mssql.db.get, mssql.job.status.get, mssql.last.backup.get, mssql.local.db.get, mssql.mirroring.get, mssql.nonlocal.db.get, mssql.perfcounter.get, mssql.ping, mssql.quorum.get, mssql.quorum.member.get, mssql.replica.get, mssql.version | Para configurar una conexión cifrada a la base de datos, especifique los parámetros TLS en el archivo de configuración del agent como parámetros de sesión con nombre o predeterminados. Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de item. Consulte también los parámetros de configuración del plugin MSSQL. |
| NVIDIA GPU | Supervisión de NVIDIA GPU. | nvml.device.count, nvml.device.decoder.utilization, nvml.device.ecc.mode, nvml.device.encoder.stats.get, nvml.device.encoder.utilization, nvml.device.energy.consumption, nvml.device.errors.memory, nvml.device.errors.register, nvml.device.fan.speed.avg, nvml.device.get, nvml.device.graphics.frequency, nvml.device.memory.bar1.get, nvml.device.memory.fb.get, nvml.device.memory.frequency, nvml.device.pci.utilization, nvml.device.performance.state, nvml.device.power.limit, nvml.device.power.usage, nvml.device.serial, nvml.device.sm.frequency, nvml.device.temperature, nvml.device.utilization, nvml.device.video.frequency, nvml.system.driver.version, nvml.version | Consulte también los parámetros de configuración del plugin NVIDIA GPU. |
| PostgreSQL | Supervisión de PostgreSQL y sus bifurcaciones. | 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.version, pgsql.wal.stat |
Para configurar conexiones cifradas a la base de datos, especifique los parámetros TLS en el archivo de configuración del agent como parámetros de sesión con nombre o predeterminados. Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de item. Consulte también los parámetros de configuración del plugin PostgreSQL. |
Los plugins cargables, cuando se inician con:
-V --version- muestra la versión del plugin y la información de licencia;-h --help- muestra la información de ayuda.