Otimizando o zabbix para não fica na mão

37
Otimizando o ZABBIX para não fica na mão

Transcript of Otimizando o zabbix para não fica na mão

Page 1: Otimizando o zabbix para não fica na mão

Otimizando o ZABBIX para não fica na mão

Page 2: Otimizando o zabbix para não fica na mão

Quem Sou• Bezaliel - Beza• Rio de janeiro• Vendedor Jequiti

Page 3: Otimizando o zabbix para não fica na mão

Agenda• Visão Geral• Identificando os problemas

Page 4: Otimizando o zabbix para não fica na mão

Visão geral

Page 5: Otimizando o zabbix para não fica na mão

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

Page 6: Otimizando o zabbix para não fica na mão

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

Page 7: Otimizando o zabbix para não fica na mão

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

Page 8: Otimizando o zabbix para não fica na mão

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

Page 9: Otimizando o zabbix para não fica na mão

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

Page 10: Otimizando o zabbix para não fica na mão

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.

Page 11: Otimizando o zabbix para não fica na mão

Sempre é bom olhar a fila

Page 12: Otimizando o zabbix para não fica na mão

Identificando e resolvendo os problemas comuns

Page 13: Otimizando o zabbix para não fica na mão

Problemas comuns no setup inicial

• Template Default;• Banco de dados default;• Configuração básica no Zabbix;• Housekeeper;• Usar versões antigas*.

Page 14: Otimizando o zabbix para não fica na mão

Como identificamos se o problema esta relacionado ao banco

grep –i LogSlowQueries zabbix_server.conf

LogSlowQueries=1000

Page 15: Otimizando o zabbix para não fica na mão

Vamos ao que interessa

Page 16: Otimizando o zabbix para não fica na mão

Servidor

Page 17: Otimizando o zabbix para não fica na mão

Apache• Habilite os módulos necessários.• Cache disco|memória• Módulo deflate• KeepAlive• Opte por Ngnix,lighttpd entre outros

Page 18: Otimizando o zabbix para não fica na mão

sysctl

https://github.com/bezarsnba/scripts/blob/master/shmsetup.sh

Page 19: Otimizando o zabbix para não fica na mão

ZABBIX

Page 20: Otimizando o zabbix para não fica na mão

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?

Page 21: Otimizando o zabbix para não fica na mão

Como visualizar

Page 22: Otimizando o zabbix para não fica na mão

Melhore os processo internos

# grep –i start zabbix_server.confStartPollersStartIPMIPollersStartPollersUnreachableStartPingersStartDiscoverersStartHTTPPollersStartTimersStartDBSyncers

Page 23: Otimizando o zabbix para não fica na mão

# grep –i cache zabbix_server.conf

CacheSizeCacheUpdateFrequencyHistoryCacheSizeTrendCacheSizeValueCacheSizeHistoryIndexCacheSize

Page 24: Otimizando o zabbix para não fica na mão

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

Page 25: Otimizando o zabbix para não fica na mão

SGBD

Page 26: Otimizando o zabbix para não fica na mão

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

Page 27: Otimizando o zabbix para não fica na mão

Imagem do index

Page 28: Otimizando o zabbix para não fica na mão

Index

Page 29: Otimizando o zabbix para não fica na mão

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

Page 30: Otimizando o zabbix para não fica na mão

Antes• SQL (111.918441):

Page 31: Otimizando o zabbix para não fica na mão

• SQL (65.006301):

Page 32: Otimizando o zabbix para não fica na mão

Depois• SQL (0.214115):

Page 33: Otimizando o zabbix para não fica na mão

• SQL (0.234797):

Page 34: Otimizando o zabbix para não fica na mão

E se continuar lento?

Execute os componentes separados.

Page 35: Otimizando o zabbix para não fica na mão

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)

Page 36: Otimizando o zabbix para não fica na mão

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

Page 37: Otimizando o zabbix para não fica na mão

Dúvidas?

[email protected]