Case Comunidade: Z3001 — Error — Too many connections

bernardolankheet
Zabbix Brasil
Published in
2 min readSep 24, 2020

#CaseComunidadeZabbix

Ambiente deste caso:

Server version: Debian 10

Banco: 10.3.18-MariaDB-0+deb10u1

Esta mensagem é demonstrada no arquivo de log do zabbix server, normalmente localizada em /var/log/zabbix/zabbix_server.log identificada por Z3001 (normalmente eventos relacionados a Banco recebem esta ID). Assim basta utilizar um utilitário para auxilio de leitura de logs (cat ou tail) em conjunto com um grep.

Erro

CAUSA:

Este erro mostra que limite de conexões simultâneas do banco foi atingido e as novas conexões não podem ser estabelecias no momento. Dependendo do tamanho do ambiente, tipos de monitoramento utilizado, integrações, consultas diretas no banco ou quantidade de pollers configuradas sem a devida analise no zabbix_server.conf, são criadas varias conexões com o banco, o que pode ocasionar esta mensagem.

RESOLUÇÃO:

Inicialmente pode aumentar o limite de conexões ao banco, mostrarei esse passo a seguir.

Mas também o ideal é realizar a analise do ambiente e corrigir pontos citados acima, por exemplo:

Quantidade de pollers está ideal para o ambiente ou teve exagero na configuração?

Integrações estão corretas?

Querys diretas no banco, estão corretas? ficam ativas ou são finalizadas?

É claro, são alguns pontos que é bom se atentar e verificar antes de apenas aumentar o limite de conexões ao banco e tampar o buraco.

ALTERANDO LIMITE DE CONEXÕES AO BANCO

Para verificar quantas conexões máxima está configurada no seu banco.

Conecte no banco

mysql -u USERNAME -p

Digite o comando show variables like “max_connections”, para mostrar qual o valor que está configurado atualmente, por default, geralmente é 151 ou 100.

MariaDB [(none)]> show variables like "max_connections"; 
+-----------------+-------+ |
Variable_name | Value |
+-----------------+-------+ |
max_connections | 151 |
+-----------------+-------+ 1
row in set (0.066 sec)

Para aumentar, utilize o comando “SET GLOBAL max_connections = numero;”, nesse exemplo dobrei o numero de conexões, aumentei para 300.

MariaDB [(none)]> SET GLOBAL max_connections = 300; 
Query OK, 0 rows affected (0.009 sec)

Digite “exit” para sair do console do banco e se verificar nos logs do zabbix novamente, provavelmente terá parado de apresentar.

Agora, para deixar esta configuração permanente, inclua esta opção dentro do arquivo de configuração do banco. Modifique o arquivo /etc/my.cnf ou /etc/mysql/mysql.conf.d/mysqld.cnf ou /etc/mysql/mariadb.conf.d/50-server.cng.

vi /etc/mysql/mariadb.conf.d/50-server.cng

Procure pelo parametro max_connections, provavelmente estará comentado, retire o # e coloque para o numero de conexões que deseja.

max_connections = 300

Após a alteração, basta reiniciar o servico.

systemctl status mariadb

Hoje foi apenas uma dica rápida.

Ate breve!!

--

--