Los plugins ofrecen una opción para ampliar las capacidades de monitorización de Zabbix. Los plugins están escritos en el lenguaje de programación Go y solo son compatibles con el agente Zabbix 2. Los plugins 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 plugins:
Desde Zabbix 6.0, los plugins no tienen que integrarse directamente en el agente 2 y pueden añadirse como plugins cargables, lo que facilita el proceso de creación de plugins adicionales para recopilar nuevas métricas de monitorización.
Esta página enumera los plugins nativos y cargables de Zabbix, y describe los principios de configuración de plugins desde la perspectiva del usuario.
Para obtener instrucciones sobre cómo escribir sus propios plugins, consulte el Centro de desarrolladores y el Plugin de ejemplo para Zabbix agent 2.
Para obtener detalles sobre el proceso de comunicación entre el agente Zabbix 2 y un plugin cargable, así como el proceso de recopilación de métricas, consulte el Diagrama de conexión.
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 del propio archivo de configuración 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.<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 por defecto.
Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> 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:
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.
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 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 la clave de la métrica o en los parámetros de la sesión nombrada, el plugin utilizará el valor predeterminado. Si un parámetro predeterminado tampoco está definido, se utilizarán los valores predeterminados codificados.
Si una clave de métrica 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 predeterminados.
Las sesiones nombradas representan un nivel adicional de parámetros de plugin 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 de clave de métrica connString en lugar de especificar una URI, nombre de usuario y/o contraseña por separado.
En las claves de métrica, el primer parámetro puede ser una connString o una URI. Si el primer parámetro de la clave no coincide con ningún nombre de sesión, se tratará como una URI. Tenga en cuenta que no se admite el paso de credenciales URI incrustadas en la clave de la métrica, utilice parámetros de sesión nombrada en su lugar.
La lista de parámetros de sesión nombrada disponibles depende del plugin.
Es posible sobrescribir los parámetros de sesión especificando nuevos valores en los parámetros de la clave de la métrica (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 plugin por defecto.
Los plugins de Zabbix agent 2 buscan los valores de los parámetros relacionados con la conexión en el siguiente orden:
Supervisió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.0: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 un connString en una clave de métrica, por ejemplo, mysql.ping[MySQL1]
o mysql.ping[MySQL2]
.
Proporcionando 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=old_username
Plugins.PostgreSQL.Sessions.Session1.Password=session_password
Clave de la métrica: pgsql.ping[session1,new_username,,postgres]
Como resultado de esta configuración, el agente se conectará a PostgreSQL utilizando los siguientes parámetros:
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 la métrica: pgsql.ping[,,,postgres]
Como resultado de esta configuración, el agente se conectará a PostgreSQL utilizando los siguientes parámetros:
Algunos plugins 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 Unix-socket.
Se recomienda configurar los plugins para mantener las conexiones a las instancias en un estado abierto. Los beneficios son la reducción de la congestión de 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
Todas las métricas soportadas por el agente Zabbix 2 son recolectadas por plugins.
Los siguientes plugins para 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 métricas soportadas | Comentarios |
---|---|---|---|
Agent | Métricas del Zabbix agent en uso. | agent.hostname, agent.ping, agent.version | Las claves soportadas 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 CPU del sistema (número de CPUs/núcleos de CPU, CPUs descubiertas, porcentaje de utilización). | system.cpu.discovery, system.cpu.num, system.cpu.util | Las claves soportadas 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 |
Ver 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 soportadas tienen los mismos parámetros que las claves de Zabbix agent. |
Kernel | Monitorización del kernel. | kernel.maxfiles, kernel.maxproc | Las claves soportadas 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 soportadas tienen los mismos parámetros que las claves de Zabbix agent. Ver también: Parámetros de configuración del plugin (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 de Zabbix agent. |
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 se pueden pasar como parámetros de la clave de la métrica. |
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 se pueden pasar como parámetros de la clave de la métrica. |
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 de Zabbix agent. |
Oracle | Monitorización de bases 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.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 plugin. |
Proc | Porcentaje de utilización de CPU por proceso. | proc.cpu.util | La clave soportada tiene los mismos parámetros que la clave de Zabbix agent. |
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 plugin utiliza solo los siguientes comandos: /usr/sbin/smartctl -a * /usr/sbin/smartctl --scan * /usr/sbin/smartctl -j -V Las claves soportadas pueden usarse con Zabbix agent 2 solo en Linux/Windows, tanto en modo pasivo como activo. Ver 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 de Zabbix agent. |
Swap | Tamaño del espacio de intercambio en bytes/porcentaje. | system.swap.size | La clave soportada tiene los mismos parámetros que la clave de Zabbix agent. |
SystemRun | Ejecuta el comando especificado. | system.run | La clave soportada tiene los mismos parámetros que la clave de Zabbix agent. Ver 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 conexión TCP. | net.tcp.port | La clave soportada tiene los mismos parámetros que la clave de Zabbix agent. |
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 de Zabbix agent. |
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 de Zabbix agent. |
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 de Zabbix agent. |
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 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 soportadas 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 soportadas tienen los mismos parámetros que las claves de Zabbix agent. |
ZabbixStats | Métricas internas del servidor/proxy Zabbix o número de métricas retrasadas en una cola. | zabbix.stats | Las claves soportadas 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 soportadas tienen los mismos parámetros que las claves de Zabbix agent. |
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 métricas soportadas | Comentarios |
---|---|---|---|
Ember+ | Monitorización de Ember+. | ember.get | Actualmente solo disponible para ser compilado 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 pueden pasarse como parámetros de clave de métrica. Consulte también Parámetros de configuración del plugin MongoDB. |
MSSQL | Monitorización de 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 pueden pasarse como parámetros de clave de métrica. Consulte también Parámetros de configuración del plugin MSSQL. |
NVIDIA GPU | Monitorizació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 Parámetros de configuración del plugin NVIDIA GPU. |
PostgreSQL | Monitorización de PostgreSQL y sus 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.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 pueden pasarse como parámetros de clave de métrica. Consulte también Parámetros de configuración del plugin PostgreSQL. |
Los plugins cargables, cuando se lanzan con:
- -V --version - muestran la versión del plugin e información de la licencia;
- -h --help - muestran información de ayuda.