2. 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
3. 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
4. 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.
5. Por Alessandro Silva – contato@alessandrosilva.info
Zabbix – Arquitetura
Dados
Dados
Dados
Dados
Pooler
Pooler
Pooler
Trapper
Trapper
History
Syncer
History
Syncer
Alertas
Escalation
Conf Sync
Outros
Zabbix Frontend
Zabbix Database
Dados
Sem proxy e sem ambiente distribuído
Zabbix Server
6. Por Alessandro Silva – contato@alessandrosilva.info
Métrica da performance
● NVPS
– Número de valores por segundo
– Visível no dashboard
NVPS
7. 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.
8. 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
9. 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 (active
agents)
Tipo de dados Texto, string Numérico
10. 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
11. 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)
13. 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
14. Por Alessandro Silva – contato@alessandrosilva.info
Buscando a evidência da baixa performance
Zabbix Server configuration file,zabbix_server.conf:
LogSlowQueries=1000
15. Por Alessandro Silva – contato@alessandrosilva.info
Tuning das configurações | Zabbix Server
StartPollers=80
StartPingers=10
StartPollersUnreachable=80
StartIPMIPollers=10
StartTrappers=20
StartDBSyncers=8
16. Por Alessandro Silva – contato@alessandrosilva.info
Monitorando estatísticas internas
17. Por Alessandro Silva – contato@alessandrosilva.info
Proxy – Distribuição de Carga
DadosPooler
Pooler
Pooler
Trapper
Trapper
History
Syncer
History
Syncer
Alertas
Escalation
Conf Sync
Outros
Zabbix
Frontend
Zabbix
Database
Sem proxy e sem ambiente distribuído
Dados
Dados
Dados
Proxy
Dados
Proxy
Dados
Dados
Zabbix Server
18. 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.
19. 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
20. Por Alessandro Silva – contato@alessandrosilva.info
Sem particionamento de tabelas
History
Zabbix Server
Zabbix Frontend
21. Por Alessandro Silva – contato@alessandrosilva.info
Com particionamento de tabelas
History
Zabbix Server
Zabbix Frontend
Partição 2012_01
Partição 2012_02
Partição 2012_03
Partição 2012_04
22. 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!
23. 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
24. 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
25. 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 Server
8 GB Memória
CPU 8 núcleos
Zabbix Database
16 GB Memória
CPU 8 núcleos
Storage ou RAID 10
Zabbix Front-end
4 GB Memória
CPU 2 núcleos
26. 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