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, como parámetros de usuario (métricas del agente), comprobaciones externas (monitoreo sin agente), y system.run[]
métrica de agente elemento Zabbix.
Las siguientes características son específicas de Zabbix Agent 2 y sus complementos:
Desde Zabbix 6.0.0, los complementos no tienen que integrarse directamente en el agente 2 y se pueden agregar como complementos cargables, lo que facilita 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 sobre cómo escribir sus propios complementos, consulte las [Pautas de desarrollo de complementos] (https://www.zabbix.com/documentation/guidelines/en/plugins). Para obtener más información sobre el proceso de comunicación entre el agente 2 de Zabbix y un complemento cargable, así como el proceso de recopilación de métricas, consulte el diagrama de conexión.
Esta sección proporciona principios comunes de configuración de complementos y las mejores practicas
Todos los complementos se configuran usando el parámetro Plugins.*, que puede ser parte del archivo de configuración del agente 2 de Zabbix o del archivo de configuración del propio complemento. Si un complemento usa un archivo de configuración separado, la ruta a este archivo debe ser especificada en el parámetro Include del archivo de configuración del agente 2 de Zabbix.
Cada parámetro de complemento debe tener la siguiente estructura:
Plugins.<Nombre del complemento>.<Parámetro>=<Valor>
Además, existen dos grupos específicos de parámetros:
Plugins.<Nombre del complemento>.Default.<Parámetro>=<Valor> utilizado para definir valores de parámetros predeterminados.
Plugins.<Nombre del complemento>.<SessionName>.<Parameter>=<Value> se utiliza para definir conjuntos separados de parámetros para diferentes objetivos de monitoreo a través de sesiones con nombre.
Todos los nombres de parámetros deben cumplir los siguientes requisitos:
Las sesiones con nombre representan un nivel adicional de parámetros del complemento y se pueden utilizar para especificar conjuntos separados de parámetros de autenticación para cada una de las instancias que se están monitoreando. Cada parámetro de sesión con nombre debe tener la siguiente estructura:
Plugins.<Nombre del complemento>.Sessions.<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 especificando una URI, nombre de usuario y/o contraseña por separado.
En las claves de métricas, el primer parámetro puede ser un connString o una URI. si el primer parámetro clave no coincide con ningún nombre de sesión, será tratado como una URI. Tenga en cuenta que no se admite la inserción de credenciales en un URI; 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.
En versiones de Zabbix anteriores a 6.0.17, cuando se proporciona una cadena de conexión (nombre de sesión) en los parámetros clave, los parámetros clave de la métrica para el nombre de usuario y la contraseña deben estar vacíos. Los valores se tomarán de los parámetros de la sesión. Si no se especifica un parámetro de autenticación para la sesión nombrada, se utilizará un valor predeterminado codificado.
Desde Zabbix 6.0.17, es posible anular los parámetros de la sesión especificando nuevos valores en los parámetros clave de la métrica (ver ejemplo).
Desde Zabbix 6.0.18, 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 predeterminado del complemento.
Desde la versión 6.0.18, los complementos del agente 2 Zabbix buscan valores de parámetros relacionados con la conexión en el siguiente orden:
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]
.
Proporcionar algunos de los parámetros en la clave de la métrica (compatible desde Zabbix 6.0.17).
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:
Recopilar una métrica utilizando 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:
Desde Zabbix 6.0.18, 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:
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 elemento 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.
::: nota clásica Si una clave de elemento 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. :::
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
Todas las métricas admitidas por el Agente 2 Zabbix se recopilan mediante complementos.
Los siguientes complementos para el agente Zabbix 2 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étricas compatibles | Comentarios |
---|---|---|---|
Agente | Métricas del agente Zabbix que se está utilizando. | agent.hostname, agent.ping, agent.version | Las claves compatibles tienen los mismos parámetros que las claves del agente Zabbix. |
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 compatibles tienen los mismos parámetros que las claves del agente Zabbix. |
Docker | Supervisió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 |
Consulte también: Parámetros de configuración |
Archivo | Recopilación de métricas de archivo. | 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 las claves del agente Zabbix keys. |
Kernel | Monitoreo del kernel. | kernel.maxfiles, kernel.maxproc | Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix. |
Registro | Supervisión de archivos de registro. | log, log.count, logrt, logrt.count | Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix. Consulte también: Parámetros de configuración del complemento (Unix/Windows) |
Memcached | Supervisión 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 keys. |
MQTT | Recibe valores publicados de temas MQTT. | mqtt.get | Para configurar una conexión cifrada con el agente MQTT, especifique los parámetros TLS en el archivo de configuración del agente como parámetros named session o default. 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 named session o default. 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.0.21. |
NetIf | Supervisió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 del agente Zabbix keys. |
Oracle | Monitoreo 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 Oracle Instant Client antes de usar el complemento. |
Proc | Porcentaje de utilización de CPU del proceso. | proc.cpu.util | La clave compatible tiene los mismos parámetros que la clave del agente Zabbix key. |
Redis | Supervisión del servidor Redis. | redis.config, redis.info, redis.ping, redis.slowlog.count | |
Smart | Monitoreo 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. Los derechos de acceso sudo/root a smartctl son necesarios para que el usuario ejecute el agente Zabbix 2. El complemento utiliza solo los siguientes comandos: /usr/sbin/smartctl -a * /usr/sbin/smartctl --scan * /usr/sbin/smartctl -j -V Las claves compatibles se pueden usar con el agente Zabbix 2 solo en Linux/Windows, tanto como verificación pasiva como activa. Consulte también: Parámetros de configuración |
Swap | Tamaño del espacio de intercambio en bytes/porcentaje. | system.swap.size | La clave compatible tiene los mismos parámetros que la clave del agente Zabbix key. |
SystemRun | Ejecuta el comando especificado. | system.run | La clave compatible tiene los mismos parámetros que la clave del agente Zabbix key. Consulte también: Parámetros de configuración del complemento (Unix/Windows) |
Systemd | Supervisión de los servicios systemd. | systemd.unit.discovery, systemd.unit.get, systemd.unit.info | |
TCP | Verificación de disponibilidad de conexión TCP. | net.tcp.port | La clave compatible tiene los mismos parámetros que la clave del agente Zabbix key. |
UDP | Supervisión 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. |
VFSDev | Recopilación de métricas de VFS. | vfs.dev.discovery, vfs.dev.read, vfs.dev.write | Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix. |
WebCertificate | Supervisión de certificados de sitios web TLS/SSL. | web.certificate.get | |
Página web | Monitoreo de páginas web. | web.page.get, web.page.perf, web.page.regexp | Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix. |
ZabbixAsync | Recopilación de métricas asincrónicas. | 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 keys. |
ZabbixStats | Métricas internas del servidor/proxy de Zabbix o número de métricas retrasados en una cola. | zabbix.stats | Las claves admitidas tienen los mismos parámetros que las claves del agente Zabbix. |
ZabbixSync | Recopilación de métricas sincrónicas. | 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 admitidas tienen los mismos parámetros que el agente Zabbix claves. |
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 elementos compatibles | Comentarios |
---|---|---|---|
Ember+ | Monitoreo de Ember+. | ember.get | Esto El complemento es compatible desde Zabbix 6.0.30. Actualmente solo está disponible para ser compilado desde el código fuente (tanto para Unix como para Windows). Consulte también Parámetros de configuración del complemento Ember+. |
MongoDB | Monitoreo de servidores y clusters MongoDB (documento -base de datos distribuida basada en). | 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 |
Esto El complemento se puede cargar desde Zabbix 6.0.6 (integrado anteriormente). Los binarios de complementos precompilados para Windows están disponibles desde Zabbix 6.0.19 y son compatibles con versiones 6.0 anteriores.<br > 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. Compatible con las versiones de complemento 1.2.0, 6.0.13 y posteriores1. Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de elemento. Consulte también Parámetros de configuración del complemento MongoDB. |
MSSQL | Monitoreo de la base de datos MSSQL. | mssql.availability.group. obtener, 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 | Este complemento es compatible desde Zabbix 6.0.27. Los binarios de complementos precompilados para Windows están disponibles desde Zabbix 6.0.28 y son compatibles con la versión 6.0.27.< br> 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] (# sesiones_con nombre) o valores predeterminados (# valores predeterminados). Actualmente, los parámetros TLS no se pueden pasar como parámetros de clave de elemento. 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 |
Este complemento se puede cargar desde Zabbix 6.0.10 (integrado anteriormente). Los binarios de complementos precompilados para Windows están disponibles desde Zabbix 6.0.19 y son compatibles con versiones 6.0 anteriores.<br > 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 nombrada o predeterminado. Actualmente, los parámetros TLS no pueden pasarse como parámetros de clave de elemento. Consulte también Parámetros de configuración del complemento PostgreSQL. |
Ver también: Creación de complementos cargables.
1 - Desde Zabbix 6.0.13, los complementos cargables comenzaron a usar el mismo sistema de versiones que el propio Zabbix. Como resultado, la versión del complemento MongoDB ha cambiado de 1.2.0 a 6.0.13 y la versión del complemento PostgreSQL ha cambiado de 1.2.1 a 6.0.13.