2 Complementos

Descripción general

Los complementos brindan una opción para ampliar las capacidades de monitoreo de Zabbix. Los complementos están escritos en el lenguaje de programación Go y son compatibles únicamente con el agente 2 de Zabbix. Los complementos proporcionan una alternativa a los módulos cargables (escritos en C), y 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 los controles pasivos como para los activos;
  • gestión de colas de tareas con respecto a la programación y la simultaneidad de tareas;
  • tiempos de espera a nivel de complemento;
  • verificación de compatibilidad del Agente 2 Zabbix y sus complementos al inicio.

Desde Zabbix 6.0, los complementos no tienen que integrarse directamente en el agente 2 y se pueden agregar como complementos cargables, facilitando así el proceso de creación de complementos adicionales para recopilar nuevas métricas de monitoreo.

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

Para obtener instrucciones y tutoriales sobre cómo escribir sus propios complementos, consulte el Centro de desarrolladores.

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

Configuración de complementos

Esta sección proporciona principios y mejores prácticas de configuración de complementos comunes.

Todos los complementos se configuran usando el parámetro Plugins.*, que puede ser parte del archivo de configuración del agente Zabbix 2 o el archivo de configuración. del propio complemento Si un complemento 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 2 de Zabbix.

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

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

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

  • Plugins.<PluginName>.Default.<Parameter>=<Value> utilizado para definir valores de parámetros predeterminados.

  • Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> se utiliza para definir conjuntos separados de parámetros para diferentes objetivos de monitoreo a través de [sesiones con nombre] (#named-sessions).

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

  • se recomienda escribir en mayúscula los nombres de sus complementos;
  • el parámetro debe estar en mayúscula;
  • los caracteres especiales no están permitidos;
  • el anidamiento no está limitado por un nivel máximo;
  • el número de parámetros no está limitado.

Por ejemplo, para realizar comprobaciones activas que no tienen Programación intervalo de actualización inmediatamente después de que el agente se reinicie solo para el complemento Uptime, establezca Plugins.Uptime.System.ForceActiveChecksOnStart=1 en el archivo de configuración. De manera similar, para establecer un límite personalizado para comprobaciones simultáneas para el complemento de CPU, establezca Plugins.CPU.System.Capacity=N en el archivo de configuración.

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:

  1. 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.
  2. Otros parámetros se tomarán de la clave de la métrica, si están definidos.
  3. 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.
  4. Si tampoco se especifica el parámetro de sesión, se utilizará el valor definido en el parámetro predeterminado correspondiente.
  5. Si todo lo demás falla, el complemento utilizará el valor predeterminado 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

Proporcionar algunos de los parámetros en la clave de la métrica.

Parámetros de configuración:

Plugins.PostgreSQL.Sessions.Session1.Uri=tcp://192.0.2.234:5432
       Plugins.PostgreSQL.Sessions.Session1.User=antiguo_nombre de usuario
       Plugins.PostgreSQL.Sessions.Session1.Password=contraseña_sesión

Clave de métrica: pgsql.ping[session1,nuevo_nombre_de_usuario,,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 de la métrica: nuevo_nombre_de_usuario
  • Contraseña del parámetro de sesión (ya que se omite en la clave de la métrica): contraseña_sesión
  • Nombre de la base de datos de la clave de la métrica: postgres
Ejemplo 3

Recopilar una métrica utilizando los 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=contraseña

Clave de métrica: pgsql.ping[,,,postgres]

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

  • URI predeterminado: 192.0.2.234:5432
  • Nombre de usuario predeterminado: zabbix
  • Contraseña predeterminada: contraseña
  • Nombre de la base de datos de la clave de la métrica: postgres
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.

Conexiones

Algunos complementos admiten la recopilación de métricas de múltiples instancias simultáneamente. Tanto las instancias locales como las remotas pueden ser monitoreadas. Se admiten conexiones de TCP y de socket Unix.

Se recomienda configurar complementos para mantener las conexiones a las instancias en estado abierto. Los beneficios son la reducción de la congestión de la red, la latencia, y uso de CPU y memoria debido a la menor cantidad de conexiones. La biblioteca del cliente se encarga de esto.

Período de tiempo durante el cual deben permanecer las conexiones no utilizadas abiertas puede ser determinado por 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.

Incorporados

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

Nombre del complemento Descripción Claves de métrica admitidas Comentarios
Agente Métricas del agente Zabbix que se utiliza. agent.hostname, agent.ping, agent.version Las claves admitidas tienen los mismos parámetros que las [claves] del agente Zabbix (/manual/config/items/itemtypes/zabbix_agent).
Ceph Monitoreo de Ceph. ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump,
ceph.ping, ceph.pool.discovery, ceph.status
CPU Monitoreo de CPU del sistema (número de CPU/núcleos de CPU, CPU descubiertas, porcentaje de utilización). system.cpu.discovery, system.cpu.num, system.cpu.util Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix.
Docker Monitoreo 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
Ver también:
Parámetros de configuración
File Colecció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 admitidas tienen los mismos parámetros que el agente Zabbix claves.
Kernel Monitoreo del kernel. kernel.maxfiles, kernel.maxproc Las claves admitidas tienen los mismos parámetros que el agente Zabbix claves.
Log Monitoreo de archivos de registro. log, log.count, logrt, logrt.count Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix.

Ver también:
Parámetros de configuración del complemento (Unix/Windows)
Memcached Monitoreo del servidor Memcached. memcached.ping, memcached.stats
Modbus Lee datos Modbus. modbus.get Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix .
MQTT Recibe valores publicados de temas MQTT. mqtt.get Para configurar una conexión cifrada con el broker MQTT, especifique los parámetros TLS en el archivo de configuración del agente como parámetros sesión con nombre o predeterminados . Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de métrica.
MySQL Monitoreo de MySQL y sus bifurcaciones. 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 agente como parámetros sesión con nombre o predeterminados. Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de métrica.

La clave de métrica mysql.custom.query es compatible desde Zabbix 6.4.6.
NetIf Monitoreo de interfaces de red. net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix.
Oracle Monitoreo de base de datos 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. estadísticas, 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 complemento.
Proc Porcentaje de utilización de CPU del proceso . proc.cpu.util La clave admitida tiene los mismos parámetros que la clave del agente Zabbix .
Redis Monitoreo del servidor Redis. redis.config, redis.info, redis.ping, redis.slowlog.count
Smart S.M.A.R.T. monitorización. smart.attribute.discovery, smart.disk.discovery, smart.disk.get Se requieren derechos de acceso Sudo/root a smartctl para el usuario que ejecuta Zabbix Agent 2. La versión mínima requerida de smartctl es 7.1.
< br>Las [claves] compatibles (/manual/config/items/itemtypes/zabbix_agent/zabbix_agent2) se pueden usar con Zabbix Agent 2 solo en Linux/Windows, tanto como verificación pasiva como activa.
Ver también:
Parámetros de configuración
SW Listado de paquetes instalados. system.sw.packages, system.sw.packages.get Las claves admitidas tienen los mismos parámetros que la clave del agente Zabbix .
Swap Intercambiar espacio tamaño en bytes/porcentaje. system.swap.size La clave admitida tiene los mismos parámetros que la clave del agente Zabbix.
SystemRun Ejecuta el comando especificado. system.run La clave admitida tiene los mismos parámetros que el agente Zabbix clave.

Ver también:
Plugin parámetros de configuración (Unix/Windows)
Systemd Monitoreo de servicios systemd . systemd.unit.discovery, systemd.unit.get, systemd.unit.info
TCP Conexión TCP verificación de disponibilidad. net.tcp.port La clave admitida tiene los mismos parámetros que la clave del agente Zabbix.
UDP Monitoreo de la disponibilidad y el rendimiento de los servicios UDP. net.udp.service, net.udp.service.perf Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix.
Uname Recuperación de información sobre el sistema. system.hostname, system.sw.arch, system.uname Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix.
Uptime Tiempo de actividad del sistema colección de métricas. system.uptime La clave admitida tiene los mismos parámetros que la clave del agente Zabbix.
VFSDev Métricas de VFS colección. vfs.dev.discovery, vfs.dev.read, vfs.dev.write Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix.
Certificado Web Monitoreo de Certificados de sitio web TLS/SSL. web.certificate.get
Página web Página web monitoreo. web.page.get, web.page.perf, web.page.regexp Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix.
ZabbixAsync Métricas asincrónicas colección. 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 admitidas tienen los mismos parámetros que las claves del agente Zabbix.
ZabbixStats Servidor Zabbix /proxy métricas internas o número de métricas retrasadas en una cola. zabbix.stats Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix.
ZabbixSync Métricas sincrónicas colección. 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. memoria.tamaño.
Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix.
Cargable

Complementos cargables, cuando se inician con:
- -V --version - imprime la versión del complemento y la información de licencia;
- -h --help - imprime información de ayuda.

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

Nombre del complemento Descripción Claves de métricas compatibles Comentarios
Ember+ Monitoreo de Ember+. ember.get Actualmente solo está disponible para ser compilado desde el código fuente (tanto para Unix y Windows).

Consulte también Parámetros de configuración del complemento Ember+.
MongoDB Monitoreo de servidores y clústeres de MongoDB (base de datos distribuida basada en documentos). mongodb.collection. estadísticas, mongodb.collections.discovery, mongodb.collections.usage, mongodb.connpool.stats,
mongodb.db.stats, mongodb.db.discovery, mongodb.jumbo_chunks.count, mongodb.oplog.stats,< br>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 con nombre.
Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de métrica.

Consulte también parámetros de configuración del complemento MongoDB.
MSSQL Monitoreo de la base de datos MSSQL. mssql.availability.group.get, mssql.custom.query, mssql.db. obtener, 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 agente como sesión con nombre o parámetros predeterminados. Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de métrica.

Consulte también parámetros de configuración del complemento MSSQL.
PostgreSQL Monitoreo 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 agente como parámetros [sesión con nombre] (# sesiones_con nombre) o [predeterminado] (# valores-default).
Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de métrica. .

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

Ver también: