Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

2 Complementos

Descripción general

Los complementos ofrecen una opción para ampliar las capacidades de monitorización de Zabbix. Los complementos están escritos en el lenguaje de programación Go y solo son compatibles con el agente Zabbix 2. Los complementos proporcionan una alternativa a los módulos cargables (escritos en C) y a otros métodos para ampliar la funcionalidad de Zabbix.

Las siguientes características son específicas del agente 2 y sus complementos:

  • soporte de 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 complemento
  • comprobación de compatibilidad del agente Zabbix 2 y sus complementos al iniciar

Desde Zabbix 6.0, los complementos no tienen que integrarse directamente en el agente 2 y pueden añadirse como complementos cargables, lo que facilita el proceso de creación de complementos adicionales para recopilar nuevas métricas de monitorización.

Esta página enumera los complementos nativos y cargables de Zabbix, y describe los principios de configuración de complementos desde la perspectiva del usuario.

Para obtener instrucciones sobre cómo escribir sus propios complementos, consulte el Centro de desarrolladores y el Complemento de ejemplo para el agente Zabbix 2.

Para obtener detalles sobre el proceso de comunicación entre el agente Zabbix 2 y un complemento cargable, así como el proceso de recopilación de métricas, consulte el Diagrama de conexión.

Configuración de plugins

Esta sección proporciona los principios comunes de configuración de plugins y las mejores prácticas.

Todos los plugins se configuran utilizando el parámetro Plugins.* , que puede formar parte del archivo de configuración del agente Zabbix 2 o de un archivo de configuración propio del plugin. Si un plugin utiliza un archivo de configuración separado, la ruta a este archivo debe especificarse en el parámetro Include del archivo de configuración del agente Zabbix 2.

Un parámetro típico de plugin tiene la siguiente estructura:

Plugins.<NombreDelPlugin>.<Parámetro>=<Valor>

Además, existen dos grupos específicos de parámetros:

  • Plugins.<NombreDelPlugin>.Default.<Parámetro>=<Valor> utilizado para definir valores de parámetros por defecto.

  • Plugins.<NombreDelPlugin>.<NombreDeSesión>.<Parámetro>=<Valor> utilizado para definir conjuntos separados de parámetros para diferentes objetivos de monitorización mediante sesiones nombradas.

Todos los nombres de parámetros deben cumplir los siguientes requisitos:

  • se recomienda escribir en mayúsculas los nombres de sus plugins
  • el parámetro debe estar en mayúsculas
  • 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 Scheduling inmediatamente después del reinicio del agente solo para el plugin Uptime, establezca Plugins.Uptime.System.ForceActiveChecksOnStart=1 en el archivo de configuración. De manera similar, para establecer un límite personalizado para las comprobaciones concurrentes para el plugin CPU, establezca Plugins.CPU.System.Capacity=N en el archivo de configuración.

Valores por defecto

Puede establecer valores por defecto para los parámetros relacionados con la conexión (URI, nombre de usuario, contraseña, etc.) en el archivo de configuración en el formato:

Plugins.<PluginName>.Default.<Parameter>=<Value>

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 elemento o en los parámetros de la sesión nombrada, el complemento utilizará el valor por defecto. Si un parámetro por defecto tampoco está definido, se utilizarán los valores por defecto codificados.

Si una clave de elemento no tiene ningún parámetro, el agente Zabbix 2 intentará recopilar la métrica utilizando los valores definidos en la sección de parámetros por defecto.

Sesiones nombradas

Las sesiones nombradas representan un nivel adicional de parámetros del complemento y pueden utilizarse para especificar conjuntos separados de parámetros de autenticación para cada una de las instancias que se están monitorizando. Cada parámetro de sesión nombrada debe tener la siguiente estructura:

Plugins.<NombreDelPlugin>.Sessions.<NombreDeLaSesion>.<Parámetro>=<Valor>

Un nombre de sesión puede utilizarse como parámetro clave de connString en lugar de especificar una URI, nombre de usuario y/o contraseña por separado.

En las claves de los ítems, el primer parámetro puede ser una connString o una URI. Si el primer parámetro clave no coincide con ningún nombre de sesión, se tratará como una URI. Tenga en cuenta que no se admite pasar credenciales URI incrustadas en la clave del ítem, utilice parámetros de sesión nombrada en su lugar.

La lista de parámetros de sesión nombrada disponibles depende del complemento.

Es posible sobrescribir los parámetros de la sesión especificando nuevos valores en los parámetros clave del ítem (consulte el ejemplo).

Si un parámetro no está definido para la sesión nombrada, Zabbix agent 2 utilizará el valor definido en el parámetro de complemento por defecto.

Prioridad de los parámetros

Los complementos del agente Zabbix 2 buscan los valores de los parámetros relacionados con la conexión en el siguiente orden:

  1. El primer parámetro de la clave del elemento se compara con los nombres de sesión. Si no se encuentra 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, una URI) debe definirse en la sesión nombrada.
  2. Otros parámetros se tomarán de la clave del elemento si están definidos.
  3. Si un parámetro de la clave del elemento (por ejemplo, la contraseña) está vacío, el complemento buscará el parámetro correspondiente en la sesión nombrada.
  4. Si el parámetro de la sesión tampoco está especificado, se utilizará el valor definido en el parámetro por defecto correspondiente.
  5. Si todo lo demás falla, el complemento utilizará el valor por defecto codificado.
Ejemplo 1

Monitoreo 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=contraseña_única
       Plugins.Mysql.Sessions.MySQL2.Uri=tcp://192.0.2.0:3306
       Plugins.Mysql.Sessions.MySQL2.User=mysql2_user
       Plugins.Mysql.Sessions.MySQL2.Password=contraseña_diferente

Como resultado de esta configuración, cada nombre de sesión puede usarse como una cadena de conexión en una clave de métrica, por ejemplo, mysql.ping[MySQL1] o mysql .ping[MySQL2].

Ejemplo 2

Proporcionando algunos de los parámetros en la clave del elemento.

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 elemento: pgsql.ping[session1,new_username,,postgres]

Como resultado de esta configuración, el agente se conectará a PostgreSQL utilizando los siguientes parámetros:

  • URI del parámetro de sesión: 192.0.2.234:5432
  • Nombre de usuario de la clave del elemento: new_username
  • Contraseña del parámetro de sesión (ya que se omite en la clave del elemento): session_password
  • Nombre de la base de datos de la clave del elemento: postgres
Ejemplo 3

Recopilando una métrica utilizando los parámetros de configuración por defecto.

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 de elemento: pgsql.ping[,,,postgres]

Como resultado de esta configuración, el agente se conectará a PostgreSQL utilizando los parámetros:

  • URI por defecto: 192.0.2.234:5432
  • Nombre de usuario por defecto: zabbix
  • Contraseña por defecto: password
  • Nombre de la base de datos de la clave de elemento: postgres
Conexiones

Algunos complementos admiten la recopilación de métricas de varias instancias simultáneamente. Se pueden monitorizar tanto instancias locales como remotas. Se admiten conexiones TCP y de socket Unix.

Se recomienda configurar los complementos para mantener las conexiones a las instancias en un estado abierto. Los beneficios son la reducción de la congestión de la red, la latencia y el uso de CPU y memoria debido al menor número de conexiones. La biblioteca 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

Complementos

Todas las métricas admitidas por el Agente 2 Zabbix se recopilan mediante complementos.

Integrados

Los siguientes complementos para Zabbix agent 2 están disponibles de forma predeterminada. Haga clic en el nombre del complemento para ir al repositorio del complemento con información adicional.

Nombre del complemento Descripción Claves de ítem soportadas Comentarios
Agente Métricas del agente Zabbix en uso. agent.hostname, agent.ping, agent.version Las claves soportadas tienen los mismos parámetros que las claves del agente Zabbix.
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 CPUs/núcleos, CPUs detectadas, porcentaje de uso). system.cpu.discovery, system.cpu.num, system.cpu.util Las claves soportadas tienen los mismos parámetros que las claves del agente Zabbix.
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
Archivo 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 soportadas tienen los mismos parámetros que las claves del agente Zabbix.
Kernel Monitorización del kernel. kernel.maxfiles, kernel.maxproc Las claves soportadas tienen los mismos parámetros que las claves del agente Zabbix.
Log Monitorización de archivos de registro. log, log.count, logrt, logrt.count Las claves soportadas tienen los mismos parámetros que las claves del agente Zabbix.

Véase también:
Parámetros de configuración del complemento (Unix/Windows)
Memcached Monitorización del servidor Memcached. memcached.ping, memcached.stats
Modbus Lectura de datos Modbus. modbus.get Las claves soportadas tienen los mismos parámetros que las claves del agente Zabbix.
MQTT Recibe valores publicados de temas MQTT. mqtt.get Para configurar la conexión cifrada al broker MQTT, especifique los parámetros TLS en el archivo de configuración del agente como parámetros de sesión nombrada o por defecto. Actualmente, los parámetros TLS no pueden pasarse como parámetros de clave de ítem.
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 la conexión cifrada a la base de datos, especifique los parámetros TLS en el archivo de configuración del agente como parámetros de sesión nombrada o por defecto. Actualmente, los parámetros TLS no pueden pasarse como parámetros de clave de ítem.
NetIf Monitorización de interfaces de red. net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total Las claves soportadas tienen los mismos parámetros que las claves del agente Zabbix.
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 el Oracle Instant Client antes de usar el complemento.
Proc Porcentaje de uso de CPU por proceso. proc.cpu.util La clave soportada tiene los mismos parámetros que la clave del agente Zabbix.
Redis Monitorización del servidor Redis. redis.config, redis.info, redis.ping, redis.slowlog.count
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.
Se requieren derechos de acceso sudo/root a smartctl para el usuario que ejecuta Zabbix agent 2. El complemento solo utiliza los siguientes comandos:
/usr/sbin/smartctl -a *
/usr/sbin/smartctl --scan *
/usr/sbin/smartctl -j -V

Las claves soportadas solo pueden usarse con Zabbix agent 2 en Linux/Windows, tanto en comprobaciones pasivas como activas.
Véase también:
Parámetros de configuración
SW Listado de paquetes instalados. system.sw.packages, system.sw.packages.get Las claves soportadas tienen los mismos parámetros que la clave del agente Zabbix.
Swap Tamaño del espacio de intercambio en bytes/porcentaje. system.swap.size La clave soportada tiene los mismos parámetros que la clave del agente Zabbix.
SystemRun Ejecuta el comando especificado. system.run La clave soportada tiene los mismos parámetros que la clave del agente Zabbix.

Véase también:
Parámetros de configuración del complemento (Unix/Windows)
Systemd Monitorización de servicios systemd. systemd.unit.discovery, systemd.unit.get, systemd.unit.info
TCP Comprobación de disponibilidad de conexión TCP. net.tcp.port La clave soportada tiene los mismos parámetros que la clave del agente Zabbix.
UDP Monitorización de la disponibilidad y rendimiento de servicios UDP. net.udp.service, net.udp.service.perf Las claves soportadas tienen los mismos parámetros que las claves del agente Zabbix.
Uname Obtención de información sobre el sistema. system.hostname, system.sw.arch, system.uname Las claves soportadas tienen los mismos parámetros que las claves del agente Zabbix.
Uptime Recopilación de métricas de tiempo de actividad del sistema. system.uptime La clave soportada tiene los mismos parámetros que la clave del agente Zabbix.
VFSDev Recopilación de métricas VFS. vfs.dev.discovery, vfs.dev.read, vfs.dev.write Las claves soportadas tienen los mismos parámetros que las claves del agente Zabbix.
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 soportadas tienen los mismos parámetros que las claves del agente Zabbix.
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 soportadas tienen los mismos parámetros que las claves del agente Zabbix.
ZabbixStats Métricas internas del servidor/proxy Zabbix o número de ítems retrasados en una cola. zabbix.stats Las claves soportadas tienen los mismos parámetros que las claves del agente Zabbix.
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 soportadas tienen los mismos parámetros que las claves del agente Zabbix.
Cargables

Los plugins cargables para Zabbix agent 2 no están disponibles por defecto y deben instalarse por separado:

Haga clic en el nombre del plugin para ir al repositorio del plugin con información adicional.

Nombre del plugin Descripción Claves de ítem soportadas Comentarios
Ember+ Monitorización de Ember+. ember.get Actualmente solo disponible para compilar desde el código fuente (tanto para Unix como para Windows).

Consulte también Parámetros de configuración del plugin Ember+.
MongoDB Monitorización de servidores y clústeres 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 agente como parámetros de sesión nombrada.
Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de ítem.

Consulte también Parámetros de configuración del plugin MongoDB.
MSSQL Monitorizació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 la conexión cifrada a la base de datos, especifique los parámetros TLS en el archivo de configuración del agente como parámetros de sesión nombrada o por defecto. Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de ítem.

Consulte también Parámetros de configuración del plugin MSSQL.
PostgreSQL Monitorización de PostgreSQL y sus derivados. 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 agente como parámetros de sesión nombrada o por defecto.
Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de ítem.

Consulte también Parámetros de configuración del plugin PostgreSQL.

Los plugins cargables, cuando se lanzan con:
- -V --version - imprime la versión del plugin e información de licencia;
- -h --help - imprime información de ayuda.