7 Parâmetros de configuração dos plugins

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

Princípios de configuração de plugins

Esta página descreve os princípios de configuração de plugins 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 de um 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 por meio de 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 Scheduling intervalo de atualização 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 em uma chave de 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, os valores padrão codificados serão usados.

Se uma chave de item não tiver nenhum parâmetro, o agent 2 do Zabbix 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 estiver 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 desta configuração, o agent irá 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 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