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:
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.
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:
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.
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:
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]
.
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:
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:
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.
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
Todas as métricas suportada pelo Zabbix agent 2 são coletadas pelos plugins.
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. |
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.
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.