Otimizando o zabbix para não fica na mão
-
Upload
bezaleel-silva -
Category
Technology
-
view
231 -
download
7
Transcript of Otimizando o zabbix para não fica na mão
Otimizando o ZABBIX para não fica na mão
Quem Sou• Bezaliel - Beza• Rio de janeiro• Vendedor Jequiti
Agenda• Visão Geral• Identificando os problemas
Visão geral
Fluxo de dados
SGBD
GUI Alert
Escalator
Trapper
Poller
History syncer
History syncer
Outros
Poller Dados Isto é um host
Dados
DadosDados
Zabbix Server
Alert Poller
Escalator
Alert Poller
PollerEscalator
Alert Poller
Trapper
PollerEscalator
Alert Poller
History syncer
Trapper
PollerEscalator
Alert Poller
History syncer
History syncer
Trapper
PollerEscalator
Alert Poller
OutrosHistory syncer
History syncer
Trapper
PollerEscalator
Alert Poller
DadosOutros
History syncer
History syncer
Trapper
PollerEscalator
Alert Poller
Dados
DadosOutros
History syncer
History syncer
Trapper
PollerEscalator
Alert Poller Dados
Dados
DadosOutros
History syncer
History syncer
Trapper
PollerEscalator
Alert PollerGUI Dados
Dados
DadosOutros
History syncer
History syncer
Trapper
PollerEscalator
Alert Poller
Dados
GUI Dados
Dados
DadosOutros
History syncer
History syncer
Trapper
PollerEscalator
Alert Poller
SGBD
Dados
GUI Dados
Dados
Dados
OutrosHistory syncer
History syncer
Trapper
PollerEscalator
Alert PollerAlert Poller
Escalator
Alert Poller
PollerEscalator
Alert Poller
History syncer
PollerEscalator
Alert Poller
History syncer
History syncer
PollerEscalator
Alert Poller
OutrosHistory syncer
History syncer
PollerEscalator
Alert Poller
Trapper
OutrosHistory syncer
History syncer
PollerEscalator
Alert Poller
Métricas de perfomance ZABBIX
• Número de valores por segundo(NVPS)• Estimativa de NVPS no dashboard
Calculo:
VPS= itens/taxa de atualização VPS = 40618/180 = 225,65
O que torna o ZABBIX lento• Tipos:
– Itens, valor, números de triggers
• Retenção de dados• Usuários conectados no Front-end• Triggers complexas
Perfomance vs Quantidade de Host
Numero de Hosts VPS
100 100
1000 1000
10000 10000
60 Itens por host, frequência de atualização a cada 1 minuto.
600 Itens por host, frequência de atualização a cada 1 minuto.
Numero de Hosts VPS
100 1000
1000 10000
10000 100000
Slow v.s Fast
O que ? Slow Fast
Tamanho da base Large Cache em mémoria
Expressões da trigger Min(),max(),avg() Last(),nodata()
Tipo de coleta Polling(SNMP,agent-less, agent passivo
Trapping (active agents)
Tipo de valor Text,string Numeric
Sintomas visíveis• Fila em atraso;• Gaps no gráficos, sem informação para o
item;• Falso/positivo para triggers que utiliza a
função nodata();• Front-end lento.
Sempre é bom olhar a fila
Identificando e resolvendo os problemas comuns
Problemas comuns no setup inicial
• Template Default;• Banco de dados default;• Configuração básica no Zabbix;• Housekeeper;• Usar versões antigas*.
Como identificamos se o problema esta relacionado ao banco
grep –i LogSlowQueries zabbix_server.conf
LogSlowQueries=1000
Vamos ao que interessa
Servidor
Apache• Habilite os módulos necessários.• Cache disco|memória• Módulo deflate• KeepAlive• Opte por Ngnix,lighttpd entre outros
sysctl
https://github.com/bezarsnba/scripts/blob/master/shmsetup.sh
ZABBIX
Obtendo informações internasUtilização Real do VPS:
zabbix[wcache, values, all] zabbix[queue,1m]
Componentes do ZABBIX: Alerter, Configuration syncer, DB watchdog, discoverer, escalator, history
syncer, http poller, housekeeper, icmp pinger, ipmi poller, poller, trappe
Porcentagem de componentes em busy e idle:zabbix[process,<type>,<mode>,<state>]
<type> - trapper, discoverer, escalator, alerter, etc <mode> - avg, count, min, max <state> - busy, idle
Monitore aquilo que seja necessárioselect count ( * ) from history => zabbix[history],precisa?
Como visualizar
Melhore os processo internos
# grep –i start zabbix_server.confStartPollersStartIPMIPollersStartPollersUnreachableStartPingersStartDiscoverersStartHTTPPollersStartTimersStartDBSyncers
# grep –i cache zabbix_server.conf
CacheSizeCacheUpdateFrequencyHistoryCacheSizeTrendCacheSizeValueCacheSizeHistoryIndexCacheSize
Proxy
ProxyDados
Dados
Dados
Dados
Dados
DadosDados
Dados
DadosDados
Dados
Dados
DadosDados
Dados
Dados
Dados
DadosDados
Dados
DadosDados
Dados
Dados
Dados
Dados
Dados
Dados
Dados
Dados
Dados
Dados
Dados
DadosDados
Dados
DadosProxy
Trapper
OutrosHistory syncer
History syncer
PollerEscalator
Alert Poller
Zabbix Server
SGBD
SGBDSe estiver um DBA para ajudar, agrade-o se não:
• Habilite debug para o usuário.• Utilize ANALYZE para verificar a perfomance da queries• Não utilizar versão rc ou alpha.• Discos diferentes paras as tabelas particionadas.
• Particionamento das tabelas:'history', 'history_str, 'items' 'functions', triggers', and 'trends‘
• Criação de index:events, triggers, history_text,
• Beneficios: Facilidade em busca das informações nas tabelasFacilidade para remover dados antigosMelhora a perfomance
Imagem do index
Index
Tabelas Normais vs Tabelas particionadas
HistoryZabbix server
e GUIZabbix server
e GUI
Tabela Normal Tabela Particionada
Partition 2016_10
Partition 2016_09
Partition 2016_08
Partition 2016_07
Partition 2016_09
Partition 2016_08
Partition 2016_07
Partition 2016_09
Partition 2016_08
Partition 2016_09
Partition 2016_08
Antes• SQL (111.918441):
• SQL (65.006301):
Depois• SQL (0.214115):
• SQL (0.234797):
E se continuar lento?
Execute os componentes separados.
Check list• Comportamento dos processos internos• Melhore as configuração do Zabbix• Acompanhar o desempenho do Zabbix• Se necessário desabilita o housekeeper• Execute em componentes
separados(banco,Zabbix Server e WEB)
Referências https://www.zabbix.com/documentation/3.0/
manual/appendix/performance_tuning https://www.zabbix.com/documentation/3.0/
manual/appendix/config/zabbix_server https://www.zabbix.org/wiki/Docs/howto/
mysql_partitioning http://blog.zabbix.com/monitoring-how-busy-zabbix-
processes-are https://www.zabbix.com/documentation/2.2/
manual/config/items/itemtypes/internal
Dúvidas?