Case Comunidade: Z3001 — Error — Too many connections
#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.
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!!