Parâmetros de configuração: Plugins

Veja os parâmetros de configuração dos plugins do Zabbix agent 2:

Princípios de configuração de plugin

Esta página descreve os princípios de configuração de plugin e as 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 próprio arquivo de configuração de um 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, há dois grupos específicos de parâmetros:

  • Plugins.<PluginName>.Default.<Parameter>=<Value> usado para definir valores padrão de parâmetro.

  • Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> usado para definir conjuntos separados de parâmetros para diferentes alvos de monitoramento por meio de sessões nomeadas.

Todos os nomes de parâmetros devem atender aos seguintes requisitos:

  • é recomendável 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 verificações ativas que não tenham o intervalo de atualização Scheduling imediatamente após a reinicialização 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 verificações simultâneas 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 em uma item key ou nos parâmetros da named session, o 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 no próprio software.

Se uma item key 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 do 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 do item connString em vez de especificar uma URI, nome de usuário e/ou senha separadamente.

Nas chaves dos itens, 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 uma URI. Observe que não há suporte para passar credenciais de URI incorporadas na chave do item; em vez disso, use parâmetros de sessão nomeada.

A lista de parâmetros de sessão nomeada disponíveis depende do plugin.

É possível substituir parâmetros de sessão especificando novos valores nos parâmetros da chave do item (consulte exemplo).

Se um parâmetro não estiver 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 pesquisam os valores dos parâmetros relacionados à conexão na seguinte ordem:

  1. O primeiro parâmetro da chave do item é comparado aos nomes de sessão. Se nenhuma correspondência for encontrada, ele é tratado como um valor real; nesse caso, a etapa 3 será ignorada. Se uma correspondência for encontrada, o valor do parâmetro (geralmente, uma 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, password) estiver vazio, o plugin procurará o parâmetro correspondente da sessão nomeada.
  4. Se o parâmetro da sessão também não estiver especificado, será usado o valor definido no parâmetro padrão correspondente.
  5. Se nada disso funcionar, 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.1:3306
Plugins.Mysql.Sessions.MySQL2.User=mysql2_user
Plugins.Mysql.Sessions.MySQL2.Password=different_password

Como resultado dessa configuração, cada nome de sessão pode ser usado como um connString em uma item key, 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 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 ela foi omitida na chave do item): session_password
  • Nome do banco de dados da chave do item: postgres

Exemplo 3

Coleta de 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 dessa configuração, o agent 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 a partir do item key: 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.

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

O período de tempo durante o qual as conexões não utilizadas devem permanecer abertas pode ser determinado pelo parâmetro Plugins.<PluginName>.KeepAlive. Exemplo: Plugins.Memcached.KeepAlive