Zabbix Performance Tuning

28
Por Alessandro Silva – [email protected] ZABBIX Performance Tuning

description

Zabbix Performance Tuning

Transcript of Zabbix Performance Tuning

Page 1: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

ZABBIXPerformance Tuning

Page 2: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Sobre o palestrante

● Bacharel em Informática e Especialista em TI Aplicada a Educação pelo NCE/UFRJ.

● Pós-graduando em Gerência de Segurança da Informação – NCE/UFRJ

● Mais de 10 anos na indústria de TI

● Certificações: LPIC-3, RHCE, RHCSA, Novell CLA e DCTS, Zabbix Certified Specialist e Zabbix for Large Enviroments.

● Desde 2011 trabalhando com projetos de monitoração com Zabbix.

● Principais interesses:

– Linux e Certificações– Segurança– Zabbix– Drupal

Page 3: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Agenda

● Arquitetura do Zabbix

● Performace tuning

● Como medir a performance

● Sintomas de baixa performance

● Problemas na implantação

● Tuning

– Banco de dados – Zabbix Server – Sistema Operacional

● Recomendações gerais

● Conteúdo extra

Page 4: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Performance Tuning

É o ajuste realizado em um sistema computacional para melhorar o desempenho.

Análise de desempenho, comumente conhecido como PROFILING, é a investigação de comportamento de um sistema usando informações coletadas por uma ferramenta.

1. Avaliar o problema e estabelecer métricas que caracterizem o comportamento aceitável do sistema.

2. Mensurar a performance antes de qualquer intervenção.

3. Identificar gargalos no sistema a fim de concentrar os esforços em pontos críticos.

4. Fazer as modificações para remover esse gargalos.

5. Mensurar a performance do sistema após as modificações.

Page 5: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Zabbix – Arquitetura

Dados

Dados

Dados

Dados

Pooler

Pooler

Pooler

Trapper

Trapper

History Syncer

History Syncer

Alertas

Escalation

Conf SyncOutros

Zabbix Frontend

Zabbix Database

Dados

Sem proxy e sem ambiente distribuído

Zabbix Server

Page 6: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Métrica da performance

● NVPS

– Número de valores por segundo– Visível no dashboard

NVPS

Page 7: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Performance Tuning

Hardware: CPU Quad Core, 8GB, RAID10 BBWC

Custo: R$ 6.500,00

● Zabbix pode entregar 1 milhão de valores por minuto ou cerca de 15.000 valores por segundo.

● Mesmo assim, poderíamos ter baixa performance.

Page 8: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Fatores de baixa performance

● Tipo de itens, valores, SNMP v3, número de triggers

● Configurações de housekeeper

● Tamanho do banco de dados

● Número de usuários no frontend

● Complexidade das triggers

Page 9: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Lento ou Rápido ?

Item Lento Rápido

Tamanho do banco Grande Encaixável em memória

Triggers min(),max(),avg() last(), nodata()

Coleta de dados Polling (SNMP, Sem agente,agente passivo)

Trapping (activeagents)

Tipo de dados Texto, string Numérico

Page 10: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Performance x Número de hosts

Número de hosts Performance (VPS)

10 10

100 100

1000 1000

Número de hosts Performance (VPS)

10 100

100 1000

1000 10000

60 itens por host com frequência de coleta a cada 60 segundos

600 itens por host com frequência de coleta a cada 60 segundos

Page 11: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Sintomas de baixa performance

● Zabbix com fila sem entregar os alarmes em tempo.

– Administration->Queue

● Frequente lentidão para gerar gráficos e dados em branco.

● Falso positivos de eventos que já não existem ou chegaram atrasados.

● Tempo de resposta do frontend (lentidão)

Page 12: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Fila – Sua aliada!

Page 13: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Performace: Problemas na implantação

● Uso de templates padrão

- Faça seu próprios templates

● Banco sem otimização

- Converse com seu DBA para tunar seu BD

● Configuração não otimizada

- Tuning nas configurações do Zabbix

● Housekeeper

● Uso de versões antigas

● Não otimização do Apache e PHP

Page 14: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Buscando a evidência da baixa performance

Zabbix Server configuration file,zabbix_server.conf:

LogSlowQueries=1000

Page 15: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Tuning das configurações | Zabbix Server

StartPollers=80StartPingers=10StartPollersUnreachable=80StartIPMIPollers=10StartTrappers=20StartDBSyncers=8

Page 16: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Monitorando estatísticas internas

Page 17: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Proxy – Distribuição de Carga

DadosPooler

Pooler

Pooler

Trapper

Trapper

History Syncer

History Syncer

Alertas

Escalation

Conf SyncOutros

Zabbix Frontend

Zabbix Database

Sem proxy e sem ambiente distribuído

Dados

Dados

Dados

Proxy

Dados

Proxy

DadosDados

Zabbix Server

Page 18: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Performance tuning | Banco de Dados

A parte mais importante do Tuning!

● Use SGBD's rápidos – Mysql

● Versões estáveis de Bancos de dados

● Instale e configure utilizando o fonte para melhor performance

● Implemente performance tuning no banco

– Verifique a documentação do fabricante

● Para MySQL , utilize InnoDB

● Manter tabelas em diferentes discos

– 'history', 'history_str, 'items' 'functions', triggers', and 'trends' são as tabelas mais usadas.

Page 19: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Particionamento de tabelas

● Dividir tabelas grandes em pequenas tabelas

● Faz sentido para:– history_*, trends*, events

● Benefícios– Fácil remoção de dados antigos

– Melhor performance

Page 20: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Sem particionamento de tabelas

HistoryZabbix ServerZabbix Frontend

Page 21: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Com particionamento de tabelas

HistoryZabbix Server

Zabbix Frontend

Partição 2012_01

Partição 2012_02

Partição 2012_03

Partição 2012_04

Page 22: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Performance tuning | Hardware

● Utilizar CPU's rápidas

● Discos SCSI e SAS são melhores do que IDE E SATA

– Discos podem ser melhorados com HDPARM

● 15K RPM são melhores do que 10K RPM e 7200 RPM

– Se puder pagar, use uma storage!

● Usar discos rápidos (RAID 10)

● Utilize placas de rede rápidas (Gibabit)

● Quanto mais memória, melhor!

Page 23: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Performance tuning | Sistema Operacional

● Utilizar versões mais recentes estáveis

● Excluir funcionalidades desnecessárias do kernel

● Tuning em parâmetros do kernel

● Memória

● CPU

Page 24: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Checklist

● Estatísticas internas do servidor Zabbix

– Caso contrário, você não saberá nada sobre a performance.

● Configuração do Zabbix Server tunada

● Tuning no banco realizado

● Housekeeping desabilitado

– DisableHousekeeper=1

● Sistema Operacional atualizado

Page 25: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Eu tentei de tudo e minha performance continua deixando a desejar ...

Execute todos os componentes em hardware separados!

Zabbix Server8 GB MemóriaCPU 8 núcleos

Zabbix Database16 GB MemóriaCPU 8 núcleos

Storage ou RAID 10

Zabbix Front-end4 GB MemóriaCPU 2 núcleos

Page 26: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Performance tuning | Recomendações gerais

● Monitore somente os itens requeridos

● Ajuste o intervalo de coleta dos itens

– Intervalos curtos podem causar overload no servidor.

● Não utilizar templates padrão

● Desabilitar o Housekeeping

– Ou tunar os parâmetros do housekeeping

● Não monitorar parâmetros que retornem a mesma informação

● Não usar triggers muito complexas

Page 27: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Leitura recomendada

● MySQL & PostgreSQL Performance Tuning Guides

● Table partitioning for Zabbix

– MySQL: zabbixzone.com

– PostgreSQL:

– http://www.zabbix.com/wiki/

● Zabbix Internal Checks

– http://blog.zabbix.com/– http://www.zabbix.com/documentation/

Page 28: Zabbix Performance Tuning

Por Alessandro Silva – [email protected]

Obrigado!

Alessandro Silva

E-mail: [email protected]: http://alessandrosillva.info/facebookTwitter: http://alessandrosilva.info/twitterLinkedin: http://alessandrosilva.info/linkedin