Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

2 Plugins

Visão geral

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:

  • suporte a intervalos agendados e flexíveis para verificações passivas e ativas
  • gerenciamento de fila de tarefas com respeito ao agendamento e concorrência de tarefas
  • timeouts em nível de plugin
  • verificação de compatibilidade do Zabbix agent 2 e seus plugins na inicialização

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.

Configurando plugins

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:

  • recomenda-se capitalizar os nomes dos seus plugins
  • o parâmetro deve ser capitalizado
  • caracteres especiais não são permitidos
  • o aninhamento não é limitado por um nível máximo
  • o número de parâmetros não é limitado

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.

Valores padrã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:

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

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.

Sessões nomeadas

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:

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

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.

Prioridade dos parâmetros

Os plugins do Zabbix agent 2 procuram os valores dos parâmetros relacionados à conexão na seguinte ordem:

  1. O primeiro parâmetro da chave do item é comparado aos nomes das sessões. Se nenhuma correspondência for encontrada, ele será tratado como um valor real; nesse caso, a etapa 3 será ignorada. Se uma correspondência for encontrada, o valor do parâmetro (geralmente, um URI) deve ser definido na sessão nomeada.
  2. Outros parâmetros serão obtidos da chave do item, se definidos.
  3. Se um parâmetro da chave do item (por exemplo, senha) estiver vazio, o plugin procurará o parâmetro correspondente na sessão nomeada.
  4. Se o parâmetro da sessão também não for especificado, será usado o valor definido no parâmetro padrão correspondente.
  5. Se tudo mais falhar, o plugin usará o valor padrão codificado.
Exemplo 1

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_password

Como 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].

Exemplo 2

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_password

Chave 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:

  • URI do parâmetro de sessão: 192.0.2.234:5432
  • Nome de usuário da chave do item: new_username
  • Senha do parâmetro de sessão (já que foi omitida na chave do item): session_password
  • Nome do banco de dados da chave do item: postgres
Exemplo 3

Coletando 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=password

Chave do item: pgsql.ping[,,,postgres]

Como resultado desta configuração, o agent irá se conectar ao PostgreSQL usando os parâmetros:

  • URI padrão: 192.0.2.234:5432
  • Nome de usuário padrão: zabbix
  • Senha padrão: password
  • Nome do banco de dados da chave do item: postgres
Conexões

Alguns 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

Plugins

Todas as métricas suportadas pelo Zabbix agent 2 são coletadas por plugins.

Integrados

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.
Carregáveis

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).