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

Post on 15-Apr-2017

231 views 7 download

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?

bramos@bramos.com.br