Zabbix: Tunning

julho 24, 2017

Tunning de configuração do Zabbix

Naturalmente que cada ambiente, com suas próprias características, precisará passar por uma analise antes de aplicar as configurações abaixo.

No entanto, o intuito desse material é compartilhar minha experiencia pessoal para ajudar dando um norte de algumas configurações importantes que acabam passando despercebidas e podem fazer com isso com que o Zabbix fique instavel mesmo com sobra de recurso (hardware).

Tunning Mysql (MariaDB): Aumentando o número de requisições no banco de Dados

vi /etc/my.cnf.d/server.cnf
[mysqld]
#max_connections Default is 100
max_connections = 2000

#default
MariaDB [zabbix]> SHOW VARIABLES LIKE “max_connections”;
+—————–+——-+
| Variable_name | Value |
+—————–+——-+
| max_connections | 214 |
+—————–+——-+

#ajustado para
MariaDB [zabbix]> SET GLOBAL max_connections = 500;
Query OK, 0 rows affected (0.00 sec)

MariaDB [zabbix]> SHOW VARIABLES LIKE “max_connections”;
+—————–+——-+
| Variable_name | Value |
+—————–+——-+
| max_connections | 500 |
+—————–+——-+

 

Tunning Zabbix AppTier: Aumentando o número de polling para aplicação

vi /etc/zabbix/zabbix_server.conf
StartPollers=160
StartIPMIPollers=10
StartPollersUnreachable=25
StartPingers=10
StartDiscoverers=10
### Option: CacheSize
# CacheSize=8M
CacheSize=48M
### Option: HistoryCacheSize
# HistoryCacheSize=16M
HistoryCacheSize=80M
### Option: TrendCacheSize
# TrendCacheSize=4M
TrendCacheSize=20M
### Option: ValueCacheSize
# ValueCacheSize=8M
ValueCacheSize=64M

systemctl restart zabbix-server

Aumentando o número de “Últimos Incidentes” na Dashboard do Zabbix

vi /usr/share/zabbix/include/defines.inc.php
define(‘DEFAULT_LATEST_ISSUES_CNT’, 200); //No lugar do 200 era 20

systemctl restart zabbix-server

Configuração de shared memory / cache size

Definição de shared memory: “Na ciência da computação, memória compartilhada é a memória que pode ser acessado simultaneamente por vários programas com a intenção de proporcionar a comunicação entre eles ou evitar cópias redundantes. Memória compartilhada é um meio eficiente de transmitir dados entre programas. Dependendo do contexto, os programas podem ser executados em um único processador ou em vários processadores separados.”
ref: wifipedia

Aplicação prática no zabbix: Quando trabalhamos em ambientes com muitos itens, hosts etc… podemos ter que ajustar o parâmetro shared memory no servidor linux a fim de que ele seja capaz de suportar tantos processos concorrentes.

  • Sintoma: Serviço Zabbix-Server não inicia ou fica caindo.
  • Análise: Logs de erro no Servidor Zabbix

tail -f /var/log/zabbix/zabbix_server.log
26569:20161004:175132.438 [file:strpool.c,line:53] zbx_mem_malloc(): out of memory (requested 61 bytes)
26569:20161004:175132.438 [file:strpool.c,line:53] zbx_mem_malloc(): please increase CacheSize configuration parameter

  • Ajuste do shared memory no servidor Linux (Debian):
    ref: Zabbix Org

    • Verificar as quantidade de memória atual: sysctl -a | grep -E “shmall|shmmax”
      kernel.shmmax = 33554432 #32M
      kernel.shmall = 2097152
    • Para Ajutar para 128M deve-se adicionar o parametro equivalente no arquivo vi /etc/sysctl.conf
      #128M
      kernel.shmmax=134217728
    • Para aplicar as alterações: sysctl -p
  • Ajuste do Cache Size no Zabbix
    ref: Zabbix.com

    • vi /etc/zabbix/zabbix_server.conf

### Option: CacheSize
# Size of configuration cache, in bytes.
# Shared memory size for storing host, item and trigger data.
#
# Mandatory: no
# Range: 128K-2G
# Default:
CacheSize=128M

  • Iniciar o serviço do Zabbix-Server e acompanhar os logs

service zabbix-server start
tail -f /var/log/zabbix/zabbix_server.log

 

Anúncios