Plugins fornecem uma opção para estender as capacidades de monitoramento do Zabbix. Plugins são escritos na linguagem de programação Go e são suportados apenas pelo Zabbix agent 2. Plugins fornecem uma alternativa aos módulos carregáveis (escritos em C) e outros métodos para estender a funcionalidade do Zabbix.
As seguintes funcionalidades são específicas do agent 2 e seus plugins:
Desde o Zabbix 6.0, os plugins não precisam ser integrados diretamente ao agent 2 e podem ser adicionados como plugins carregáveis, facilitando assim o processo de criação de plugins adicionais para coletar novas métricas de monitoramento.
Esta página lista os plugins nativos e carregáveis do Zabbix e descreve os princípios de configuração de plugins do ponto de vista do usuário.
Para instruções sobre como escrever seus próprios plugins, consulte o Centro de desenvolvedores e o Exemplo de plugin para o Zabbix agent 2.
Para detalhes sobre o processo de comunicação entre o Zabbix agent 2 e um plugin carregável, bem como o processo de coleta de métricas, consulte o Diagrama de conexão.
Esta seção fornece princípios comuns de configuração de plugins e melhores práticas.
Todos os plugins são configurados usando o parâmetro Plugins.*, que pode fazer parte do arquivo de configuração do Zabbix agent 2 ou do arquivo de configuração próprio do plugin. Se um plugin usar um arquivo de configuração separado, o caminho para esse arquivo deve ser especificado no parâmetro Include do arquivo de configuração do Zabbix agent 2.
Um parâmetro típico de plugin tem a seguinte estrutura:
Plugins.<PluginName>.<Parameter>=<Value>
Além disso, existem dois grupos específicos de parâmetros:
Plugins.<PluginName>.Default.<Parameter>=<Value> usado para definir valores padrão de parâmetros.
Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> usado para definir conjuntos separados de parâmetros para diferentes alvos de monitoramento via sessões nomeadas.
Todos os nomes de parâmetros devem obedecer aos seguintes requisitos:
Por exemplo, para executar cheques ativos que não possuem o intervalo de atualização Scheduling imediatamente após o reinício do agent apenas para o plugin Uptime, defina Plugins.Uptime.System.ForceActiveChecksOnStart=1 no arquivo de configuração. Da mesma forma, para definir um limite personalizado para cheques concorrentes para o plugin CPU, defina Plugins.CPU.System.Capacity=N no arquivo de configuração.
Você pode definir valores padrão para os parâmetros relacionados à conexão (URI, nome de usuário, senha, etc.) no arquivo de configuração no formato:
Por exemplo, Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017, etc.
Se um valor para esse parâmetro não for fornecido na chave do item ou nos parâmetros da sessão nomeada, o plugin usará o valor padrão. Se um parâmetro padrão também não estiver definido, valores padrão internos serão usados.
Se uma chave de item não tiver nenhum parâmetro, o Zabbix agent 2 tentará coletar a métrica usando os valores definidos na seção de parâmetros padrão.
As sessões nomeadas representam um nível adicional de parâmetros de plugin e podem ser usadas para especificar conjuntos separados de parâmetros de autenticação para cada uma das instâncias monitoradas. Cada parâmetro de sessão nomeada deve ter a seguinte estrutura:
Um nome de sessão pode ser usado como um parâmetro de chave de item connString em vez de especificar um URI, nome de usuário e/ou senha separadamente.
Nas chaves de item, o primeiro parâmetro pode ser um connString ou um URI. Se o primeiro parâmetro da chave não corresponder a nenhum nome de sessão, ele será tratado como um URI. Observe que passar credenciais de URI incorporadas na chave do item não é suportado, use parâmetros de sessão nomeada em vez disso.
A lista de parâmetros de sessão nomeada disponíveis depende do plugin.
É possível substituir os parâmetros da sessão especificando novos valores nos parâmetros da chave do item (veja o exemplo).
Se um parâmetro não for definido para a sessão nomeada, o Zabbix agent 2 usará o valor definido no parâmetro padrão do plugin.
Os plugins do Zabbix agent 2 procuram os valores dos parâmetros relacionados à conexão na seguinte ordem:

Monitoramento de duas instâncias “MySQL1” e “MySQL2”.
Parâmetros de configuração:
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_passwordComo resultado desta configuração, cada nome de sessão pode ser usado como um connString em uma chave de item, por exemplo, mysql.ping[MySQL1] ou mysql.ping[MySQL2].
Fornecendo alguns dos parâmetros na chave do item.
Parâmetros de configuração:
Plugins.PostgreSQL.Sessions.Session1.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Sessions.Session1.User=old_username
Plugins.PostgreSQL.Sessions.Session1.Password=session_passwordChave do item: pgsql.ping[session1,new_username,,postgres]
Como resultado dessa configuração, o agent irá se conectar ao PostgreSQL usando os seguintes parâmetros:
192.0.2.234:5432new_usernamesession_passwordpostgresColetando uma métrica usando parâmetros de configuração padrão.
Parâmetros de configuração:
Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=passwordChave do item: pgsql.ping[,,,postgres]
Como resultado desta configuração, o agent irá se conectar ao PostgreSQL usando os parâmetros:
192.0.2.234:5432zabbixpasswordpostgresAlguns plugins suportam a coleta de métricas de várias instâncias simultaneamente. Tanto instâncias locais quanto remotas podem ser monitoradas. Conexões TCP e Unix-socket são suportadas.
É recomendado configurar os plugins para manter as conexões com as instâncias em estado aberto. Os benefícios são a redução da congestão de rede, latência e uso de CPU e memória devido ao menor número de conexões. A biblioteca cliente cuida disso.
O período de tempo pelo qual as conexões não utilizadas devem permanecer abertas pode ser determinado pelo parâmetro Plugins.<PluginName>.KeepAlive. Exemplo: Plugins.Memcached.KeepAlive
Todas as métricas suportadas pelo Zabbix agent 2 são coletadas por plugins.
Os seguintes plugins para o Zabbix agent 2 estão disponíveis por padrão. Clique no nome do plugin para acessar o repositório do plugin com informações adicionais.
| Nome do plugin | Descrição | Chaves de item suportadas | Comentários |
|---|---|---|---|
| Agent | Métricas do Zabbix agent em uso. | agent.hostname, agent.ping, agent.version | As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| CPU | Monitoramento da CPU do sistema (número de CPUs/núcleos, CPUs descobertas, percentual de uso). | system.cpu.discovery, system.cpu.num, system.cpu.util | As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| Docker | Monitoramento de containers Docker. | docker.container_info, docker.container_stats, docker.containers, docker.containers.discovery, docker.data_usage, docker.images, docker.images.discovery, docker.info, docker.ping |
Veja também: Parâmetros de configuração |
| File | Coleta de métricas de arquivos. | vfs.file.cksum, vfs.file.contents, vfs.file.exists, vfs.file.md5sum, vfs.file.regexp, vfs.file.regmatch, vfs.file.size, vfs.file.time |
As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| Kernel | Monitoramento do kernel. | kernel.maxfiles, kernel.maxproc | As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| Log | Monitoramento de arquivos de log. | log, log.count, logrt, logrt.count | As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. Veja também: Parâmetros de configuração do plugin (Unix/Windows) |
| Memcached | Monitoramento do servidor Memcached. | memcached.ping, memcached.stats | |
| Modbus | Leitura de dados Modbus. | modbus.get | As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| MQTT | Recebe valores publicados em tópicos MQTT. | mqtt.get | Para configurar a conexão criptografada com o broker MQTT, especifique os parâmetros TLS no arquivo de configuração do agent como sessão nomeada ou parâmetros padrão. Atualmente, os parâmetros TLS não podem ser passados como parâmetros da chave do item. |
| MySQL | Monitoramento do MySQL e seus forks. | 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 a conexão criptografada com o banco de dados, especifique os parâmetros TLS no arquivo de configuração do agent como sessão nomeada ou parâmetros padrão. Atualmente, os parâmetros TLS não podem ser passados como parâmetros da chave do item. |
| NetIf | Monitoramento de interfaces de rede. | net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total | As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| Oracle | Monitoramento do 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 o Oracle Instant Client antes de usar o plugin. |
| Proc | Percentual de uso de CPU por processo. | proc.cpu.util | A chave suportada possui os mesmos parâmetros da chave do Zabbix agent. |
| Redis | Monitoramento do servidor Redis. | redis.config, redis.info, redis.ping, redis.slowlog.count | |
| Smart | Monitoramento S.M.A.R.T. | smart.attribute.discovery, smart.disk.discovery, smart.disk.get | A versão mínima exigida do smartctl é 7.1. São necessários direitos de acesso sudo/root ao smartctl para o usuário que executa o Zabbix agent 2. O plugin utiliza apenas os seguintes comandos: /usr/sbin/smartctl -a */usr/sbin/smartctl --scan * /usr/sbin/smartctl -j -V As chaves suportadas podem ser usadas com o Zabbix agent 2 apenas em Linux/Windows, tanto como checagem passiva quanto ativa. Veja também: Parâmetros de configuração |
| SW | Listagem de pacotes instalados. | system.sw.packages, system.sw.packages.get | As chaves suportadas possuem os mesmos parâmetros da chave do Zabbix agent. |
| Swap | Tamanho do espaço swap em bytes/porcentagem. | system.swap.size | A chave suportada possui os mesmos parâmetros da chave do Zabbix agent. |
| SystemRun | Executa o comando especificado. | system.run | A chave suportada possui os mesmos parâmetros da chave do Zabbix agent. Veja também: Parâmetros de configuração do plugin (Unix/Windows) |
| Systemd | Monitoramento de serviços systemd. | systemd.unit.discovery, systemd.unit.get, systemd.unit.info | |
| TCP | Verificação de disponibilidade de conexão TCP. | net.tcp.port | A chave suportada possui os mesmos parâmetros da chave do Zabbix agent. |
| UDP | Monitoramento da disponibilidade e desempenho de serviços UDP. | net.udp.service, net.udp.service.perf | As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| Uname | Recuperação de informações sobre o sistema. | system.hostname, system.sw.arch, system.uname | As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| Uptime | Coleta de métricas de tempo de atividade do sistema. | system.uptime | A chave suportada possui os mesmos parâmetros da chave do Zabbix agent. |
| VFSDev | Coleta de métricas VFS. | vfs.dev.discovery, vfs.dev.read, vfs.dev.write | As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| WebCertificate | Monitoramento de certificados TLS/SSL de sites. | web.certificate.get | |
| WebPage | Monitoramento de páginas web. | web.page.get, web.page.perf, web.page.regexp | As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| ZabbixAsync | Coleta assí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 |
As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| ZabbixStats | Métricas internas do Zabbix server/proxy ou número de itens atrasados na fila. | zabbix.stats | As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
| ZabbixSync | Coleta 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. |
As chaves suportadas possuem os mesmos parâmetros das chaves do Zabbix agent. |
Plugins carregáveis para o Zabbix agent 2 não estão disponíveis por padrão e precisam ser instalados separadamente:
Clique no nome do plugin para ir ao repositório do plugin com informações adicionais.
| Nome do plugin | Descrição | Chaves de item suportadas | Comentários |
|---|---|---|---|
| Ceph | Monitoramento do Ceph. | ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump, ceph.ping, ceph.pool.discovery, ceph.status |
Veja também parâmetros de configuração do plugin Ceph. |
| Ember+ | Monitoramento do Ember+. | ember.get | Atualmente disponível apenas para compilação a partir do código-fonte (para Unix e Windows). Veja também parâmetros de configuração do plugin Ember+. |
| MongoDB | Monitoramento de servidores e clusters MongoDB (banco de dados distribuído baseado em 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 conexões criptografadas com o banco de dados, especifique os parâmetros TLS no arquivo de configuração do agent como parâmetros de sessão nomeada. Atualmente, os parâmetros TLS não podem ser passados como parâmetros de chave de item. Veja também parâmetros de configuração do plugin MongoDB. |
| MSSQL | Monitoramento do banco de dados 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 a conexão criptografada com o banco de dados, especifique os parâmetros TLS no arquivo de configuração do agent como parâmetros de sessão nomeada ou padrão. Atualmente, os parâmetros TLS não podem ser passados como parâmetros de chave de item. Veja também parâmetros de configuração do plugin MSSQL. |
| NVIDIA GPU | Monitoramento de GPU NVIDIA. | 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 | Veja também parâmetros de configuração do plugin NVIDIA GPU. |
| PostgreSQL | Monitoramento do PostgreSQL e seus 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 conexões criptografadas com o banco de dados, especifique os parâmetros TLS no arquivo de configuração do agent como parâmetros de sessão nomeada ou padrão. Atualmente, os parâmetros TLS não podem ser passados como parâmetros de chave de item. Veja também parâmetros de configuração do plugin PostgreSQL. |
Plugins carregáveis, quando lançados com:
- -V --version - imprime a versão do plugin e informações de licença;
- -h --help - imprime informações de ajuda.
- -t, --test <item key> — executa o plugin para teste (configuração do plugin ignorada).