Zabbix Performance Tuning

Post on 27-Jun-2015

1.653 views 16 download

description

Zabbix Performance Tuning

Transcript of Zabbix Performance Tuning

Por Alessandro Silva – contato@alessandrosilva.info

ZABBIXPerformance Tuning

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

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.

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

Métrica da performance

● NVPS

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

NVPS

Por Alessandro Silva – contato@alessandrosilva.info

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.

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

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)

Por Alessandro Silva – contato@alessandrosilva.info

Fila – Sua aliada!

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

Buscando a evidência da baixa performance

Zabbix Server configuration file,zabbix_server.conf:

LogSlowQueries=1000

Por Alessandro Silva – contato@alessandrosilva.info

Tuning das configurações | Zabbix Server

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

Por Alessandro Silva – contato@alessandrosilva.info

Monitorando estatísticas internas

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

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.

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

Sem particionamento de tabelas

HistoryZabbix ServerZabbix Frontend

Por Alessandro Silva – contato@alessandrosilva.info

Com particionamento de tabelas

HistoryZabbix Server

Zabbix Frontend

Partição 2012_01

Partição 2012_02

Partição 2012_03

Partição 2012_04

Por Alessandro Silva – contato@alessandrosilva.info

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!

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

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

Por Alessandro Silva – contato@alessandrosilva.info

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/

Por Alessandro Silva – contato@alessandrosilva.info

Obrigado!

Alessandro Silva

E-mail: contato@alessandrosilva.infoFacebook: http://alessandrosillva.info/facebookTwitter: http://alessandrosilva.info/twitterLinkedin: http://alessandrosilva.info/linkedin