Por Alessandro Silva – contato@alessandrosilva.info
ZABBIX
Performance 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 Sync
Outros
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 (active
agents)
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=80
StartPingers=10
StartPollersUnreachable=80
StartIPMIPollers=10
StartTrappers=20
StartDBSyncers=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 Sync
Outros
Zabbix
Frontend
Zabbix
Database
Sem proxy e sem ambiente distribuído
Dados
Dados
Dados
Proxy
Dados
Proxy
Dados
Dados
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
History
Zabbix Server
Zabbix Frontend
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
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 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
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.info
Facebook: http://alessandrosillva.info/facebook
Twitter: http://alessandrosilva.info/twitter
Linkedin: http://alessandrosilva.info/linkedin

Zabbix Performance Tuning

  • 1.
    Por Alessandro Silva– contato@alessandrosilva.info ZABBIX Performance Tuning
  • 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)
  • 12.
    Por Alessandro Silva– contato@alessandrosilva.info Fila – Sua aliada!
  • 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
  • 27.
    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/
  • 28.
    Por Alessandro Silva– contato@alessandrosilva.info Obrigado! Alessandro Silva E-mail: contato@alessandrosilva.info Facebook: http://alessandrosillva.info/facebook Twitter: http://alessandrosilva.info/twitter Linkedin: http://alessandrosilva.info/linkedin