Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

14 Plugins

Visão geral

Os plugins fornecem uma opção para estender as capacidades de monitoramento do Zabbix. Os plugins são escritos na linguagem de programação Go e são suportados apenas pelo agente Zabbix 2.

Os plugins oferecem uma alternativa aos módulos loadable modules (escritos em C), e outros métodos para estender a funcionalidade do Zabbix, como parâmetros do usuários user parameters (métricas do agente), external checks (monitoramento sem agente), e o item do agente do Zabbix system.run[] agent item.

As seguintes características são específicas do agente Zabbix 2 e de seus plugins:

  • suporte a intervalos programados e flexíveis para verificações tanto passivas quanto ativas;;
  • gerenciamento da fila de tarefas com relação ao cronograma e à concorrência de tarefas;
  • timeouts no nível do plugin;
  • verificação de compatibilidade do agente Zabbix 2 e seu plugin na inicialização..

Desde o Zabbix 6.0.0, os plugins não precisam ser integrados diretamente ao agente 2 e podem ser adicionados como plugins carregáveis, tornando assim o processo de criação de plugins adicionais para coletar novas métricas de monitoramento mais fácil.

Esta página lista os plugins nativos e carregáveis do Zabbix e descreve os princípios de configuração do plugin do ponto de vista do usuário. Para instruções sobre como escrever seus próprios plugins, consulte Plugin development guidelines. Para obter mais informações sobre o processo de comunicação entre o agente Zabbix 2 e um plugin carregável, bem como o processo de coleta de métricas, consulte Connection diagram.

Configurando plugins

Esta seção fornece princípios de configuração comuns e melhores práticas para plugins

Todos os parâmetros são configurados usando o parâmetro Plugins.* parameter, que pode fazer parte do Zabbix agent 2 configuration file ou do próprio plugin configuration file.Se um plugin usar um arquivo de configuração separado, o caminho para este arquivo deve ser especificado no parâmetro Include do arquivo de configuração do agente Zabbix 2.

Um parâmetro típico do 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 default parameter values.

  • Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> ususado para definir conjuntos separados de parâmetros para diferentes alvos de monitoramento através de named sessions.

Todos os nomes de parâmetros devem seguir os seguintes requisitos:

  • é recomendado que os nomes de seus plugins sejam capitalizados;
  • o parâmetro deve ser capitalizado;
  • caracteres especiais não são permitidos;
  • aninhamento não está limitado por um nível máximo;
  • o número de parâmetros não é limitado.
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 sendo 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 item chave connString em vez de especificar um URI, nome de usuário e/ou senha separadamente.

Nos parâmetros de chave de item, o primeiro parâmetro pode ser um connString ou uma URI. Se o primeiro parâmetro da chave não corresponder a nenhum nome de sessão, ele será tratado como um URI. Note que embutir credenciais em um URI não é suportado, use parâmetros de sessão nomeada em seu lugar.

Essa lista named session parameters disponível depende do plugin.

No Zabbix antes da versão 6.0.17, ao fornecer um connString (nome da sessão) nos parâmetros da chave do item, os parâmetros do nome de usuário e senha devem estar vazios. Os valores serão retirados dos parâmetros da sessão. Se um parâmetro de autenticação não for especificado para a sessão nomeada, um valor padrão fixo será usado.

Desde o Zabbix 6.0.17, é possível substituir os parâmetros da sessão especificando novos valores nos parâmetros da chave do item (consulte example).

Desde o Zabbix 6.0.18, se um parâmetro não estiver definido para a sessão nomeada, Zabbix agent 2 usará o valor definido no parâmetro padrão de login default plugin parameter.

Prioridade de parâmetro

Desde a versão 6.0.18, os plugins do Zabbix agent 2 procuram por valores de parâmetros relacionados à conexão na seguinte ordem:

  1. O primeiro parâmetro da chave do item é comparado com os nomes das sessões. Se nenhuma correspondência for encontrada, ele será tratado como um valor real; neste 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 retirados da chave do item se estiverem definidos.
  3. Se um parâmetro da chave do item (por exemplo, senha) estiver vazio, o plugin procurará pelo parâmetro de sessão nomeada correspondente.
  4. Se o parâmetro da sessão também não estiver especificado, o valor definido no parâmetro padrão correspondente default parameter será usado.
  5. Se tudo 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 da sessão pode ser usado como um connString em uma item key, por exemplo, mysql.ping[MySQL1] oi mysql.ping[MySQL2].

Exemplo 2

Fornecendo alguns dos parâmetros da chave do item (suportado desde o Zabbix 6.0.17).

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

Item key: pgsql.ping[session1,new_username,,postgres]

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

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

Colectando 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

Item key: pgsql.ping[,,,postgres]

Como resultado desta configuração, o agente se conectará ao PostgreSQL usando os seguintes 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
Valores padrão

Desde o Zabbix 6.0.18, 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 tal parâmetro não for fornecido em uma chave de item ou nos parâmetros da named session, plugin usará o valor padrão. Se um parâmetro padrão também não estiver definido, serão usados valores padrão codificados.

Se uma chave de item não tiver nenhum parâmetro, o agente Zabbix 2 tentará coletar a métrica usando os valores definidos na seção de parâmetros padrão.

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.

É recomendável configurar os plugins para manter as conexões com as instâncias em um estado aberto. Os benefícios incluem redução de congestionamento de rede, latência e uso de CPU e memória devido ao menor número de conexões. A biblioteca do cliente cuida disso.

O período de tempo pelo qual 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 suportada pelo Zabbix agent 2 são coletadas pelos plugins.

Integrados

Os seguintes plugins para o agente Zabbix 2 estão disponíveis e prontos para uso. Clique no nome do plugin para acessar o repositório do plugin com informações adicionais.

Nome do plugin Descrição Supported item keys Comentarios
Agente Métricas do agente Zabbix sendo utilizado. agent.hostname, agent.ping, agent.version As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix keys.
Ceph Monitoramento Ceph. ceph.df.details, ceph.osd.stats, ceph.osd.discovery, ceph.osd.dump,
ceph.ping, ceph.pool.discovery, ceph.status
CPU Monitoramento da CPU do sistema (número de CPUs/núcleos de CPU, CPUs descobertas, percentual de utilização). system.cpu.discovery, system.cpu.num, system.cpu.util As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix keys.
Docker Monitoramento dos 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
Consulte também:
Configuration parameters
Arquivo Coleta de métricas de arquivo. 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 têm os mesmos parâmetros que as chaves do agente Zabbix keys.
Kernel Monitoramento de kernel. kernel.maxfiles, kernel.maxproc As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix keys.
Log Monitoramento de arquivos de log. log, log.count, logrt, logrt.count As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix keys.

Consulte também:
Parâmetros de configuração do Plugin (Unix/Windows)
Memcached Monitoramneto do servidor Memcached. memcached.ping, memcached.stats
Modbus Lê dados Modbus. modbus.get As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix keys.
MQTT Recebe valores publicados de tópicos MQTT. mqtt.get Para configurar uma conexão criptografada com o broker MQTT, especifique os parâmetros TLS no arquivo de configuração do agente como parâmetros de named session ou default. Atualmente, os parâmetros TLS não podem ser passados como parâmetros de chave de item.
MySQL Monitoramento de 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 uma conexão criptografada com o banco de dados, especifique os parâmetros TLS no arquivo de configuração do agente como parâmetros de named session ou default. Atualmente, os parâmetros TLS não podem ser passados como parâmetros de chave de item.

A chave do item mysql.custom.query é suportada desde Zabbix 6.0.21.
NetIf Monitoramento de interfaces de rede. net.if.collisions, net.if.discovery, net.if.in, net.if.out, net.if.total As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix keys.
Oracle Monitoramento do banco de dados 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 o Oracle Instant Client antes de iniciar o plugin.
Proc Percentual de utilização da CPU do processo. proc.cpu.util As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix key.
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 Direitos de acesso sudo/root ao smartctl são necessários para o usuário que executa o Zabbix agent 2. A versão mínima do smartctl necessária é 7.1.

As chaves keys suportadas podem ser usadas com o Zabbix agent 2 apenas no Linux/Windows, tanto como verificação passiva quanto ativa:
Configuration parameters
Swap Tamanho do espaço de swap em bytes/porcentagem. system.swap.size As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix key.
SystemRun Executa comando especificado. system.run As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix key.

Consulte 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 As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix key.
UDP Monitoramento da disponibilidade e desempenho de serviços UDP. net.udp.service, net.udp.service.perf As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix keys.
Uname Recuperação de informações sobre o sistema. system.hostname, system.sw.arch, system.uname As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix keys.
Uptime Coleta de métricas de tempo de atividade do sistema. system.uptime As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix key.
VFSDev Coleta de métricas do VFS. vfs.dev.discovery, vfs.dev.read, vfs.dev.write As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix keys.
WebCertificate Monitoramento de certificados de site TLS/SSL. web.certificate.get
WebPage Monitoramento da página Web. web.page.get, web.page.perf, web.page.regexp As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix keys.
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 têm os mesmos parâmetros que as chaves do agente Zabbix keys.
ZabbixStats Métricas internas do servidor/proxy do Zabbix ou número de itens atrasados na fila. zabbix.stats As chaves suportadas têm os mesmos parâmetros que as chaves do agente Zabbix keys.
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 têm os mesmos parâmetros que as chaves do agente Zabbix keys.

Carregável

Plugins carregáveis, quando iniciados com:
- -V --version -exibe a versão do plugin e informações de licença;
- -h --help - exibe informações de ajuda.

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
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
Este plugin é carregável desde o Zabbix 6.0.6 (built-in previously). (integrado anteriormente). Binários pré-compilados do plugin para Windows estão disponíveis desde o Zabbix 6.0.19 e são compatíveis com versões anteriores do 6.0.

Para configurar conexões criptografadas com o banco de dados, especifique os parâmetros TLS no arquivo de configuração do agente como parâmetros de named session.
Suportado nas versões do plugin 1.2.0, 6.0.13 e mais recentes 1.
Atualmente, os parâmetros TLS não podem ser passados como parâmetros de chave de item.

Consulte também MongoDB plugin configuration parameters.
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 Este plugin é suportado desde o Zabbix 6.0.27. Binários pré-compilados do plugin para Windows estão disponíveis desde o Zabbix 6.0.28 e são compatíveis com a versão 6.0.27.

Para configurar uma conexão criptografada com o banco de dados, especifique os parâmetros TLS no arquivo de configuração do agente como parâmetros de named session ou default. Atualmente, os parâmetros TLS não podem ser passados como parâmetros de chave de item.

Consulte também MSSQL plugin configuration parameters.
PostgreSQL Monitoramento de PostgreSQL e 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
Este plugin está disponível desde o Zabbix 6.0.10 (integrado anteriormente). Binários pré-compilados do plugin para Windows estão disponíveis desde Zabbix 6.0.19 e são compatíveis com versões anteriores do 6.0.

Para configurar conexões criptografadas com o banco de dados, especifique os parâmetros TLS no arquivo de configuração do agente como parâmetros de named session ou default.
Atualmente, os parâmetros TLS não podem ser passados como parâmetros de chave de item.

Consulte também PostgreSQL plugin configuration parameters.

Consulte também: Building loadable plugins.

Notas de rodapé

1 - Desde o Zabbix 6.0.13, os plugins carregáveis começaram a usar o mesmo sistema de versionamento que o próprio Zabbix. Como resultado, a versão do plugin MongoDB plugin mudou de 1.2.0 para 6.0.13 e a versão PostgreSQL plugin mudou de 1.2.1 para 6.0.13.