Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

12 Ajuste de desempenho

::: não importante Este é um trabalho em progresso. :::

Visão geral

É muito importante que o Zabbix esteja ajustado apropriadamente para a sua melhor performance.

Hardware

Definições gerais de hardware:

  • Utilize o processador mais rápido que tiver disponível
  • SCSI ou SAS é melhor que IDE (a performance de discos IDE podem ser melhoradas significativamente pelo utilitário hdparm) e SATA
  • 15K RPM é melhor que 10K RPM que é melhor que 7200 RPM...
  • Utilize armazenamento de RAID rápido
  • Utilize adaptadores fast Ethernet
  • Quanto mais memória, melhor

Sistema operacional

  • Utilize a última versão estável do SO
  • Não instale / remova funcionalidades não necessárias do kernel
  • Otimize os parâmetros do kernel

Parâmetros de configuração do Zabbix

Muitos parâmetros podem ser ajustados para obter o desempenho ideal.

Para obter o melhor desempenho (ou seja, quando os pesquisadores não competem com sincronizadores de histórico para recursos comuns no cache de configuração) é recomendado para manter um número baixo de pesquisas de histórico, pesquisas de opinião, inacessíveis pollers, pollers Java, pollers ODBC no servidor Zabbix e torná-los o mais livres possível delegando toda a votação para proxies Zabbix.

zabbix_server

IniciarPollers

Regra geral - mantenha o valor deste parâmetro o mais baixo possível. Cada instância adicional de zabbix_server adiciona sobrecarga conhecida, ao mesmo tempo tempo, o paralelismo é aumentado. O número ideal de instâncias é alcançado quando a fila de itens, em média, contém um número mínimo de parâmetros (idealmente, 0 a qualquer momento). Este valor pode ser monitorado usando verificação interna zabbix[fila].

Consulte a seção "Veja também" na parte inferior do esta página para descobrir como configurar a contagem ideal de zabbix processos.

StartHistoryPollers

Este valor deve ser mantido o mais baixo possível para evitar conexões ao banco de dados. Cada sondador de histórico requer uma conexão com o banco de dados.

Veja também: Processo do servidor tipos

Nível de depuração

O valor ideal é 3.

DBSocket

Somente MySQL. Recomenda-se usar DBSocket para conexão com o base de dados. Essa é a maneira mais rápida e segura.

Mecanismo de banco de dados

Esta é provavelmente a parte mais importante do ajuste do Zabbix. Zabbix depende muito da disponibilidade e desempenho do mecanismo de banco de dados.

  • use o mecanismo de banco de dados mais rápido, ou seja, MySQL ou PostgreSQL
  • use a versão estável de um mecanismo de banco de dados
  • reconstruir MySQL ou PostgreSQL a partir de fontes para obter o máximo desempenho
  • siga as instruções de ajuste de desempenho retiradas do MySQL ou Documentação do PostgreSQL
  • para MySQL, use estrutura de tabela InnoDB
  • ZABBIX funciona pelo menos 1,5 vezes mais rápido (comparado ao MyISAM) se InnoDB é usado. Isso ocorre devido ao aumento do paralelismo. No entanto, InnoDB requer mais poder de CPU.
  • o ajuste do servidor de banco de dados para o melhor desempenho é altamente recomendado.
  • manter tabelas de banco de dados em diferentes discos rígidos
  • 'history', 'history_str, 'items' 'functions', triggers', e 'tendências' são as tabelas mais usadas.
  • para grandes instalações, manter os arquivos temporários do MySQL em tmpfs é:

Depuração de GUI

Problemas relacionados ao desempenho do frontend podem ser diagnosticados usando o frontend modo de depuração.

Conselho Geral

  • monitore apenas os parâmetros necessários
  • ajuste 'Intervalo de atualização' para todos os itens. Mantendo uma pequena atualização intervalo pode ser bom para bons gráficos, no entanto, isso pode sobrecarregar Zabbix
  • parâmetros de ajuste para modelos padrão
  • ajustar os parâmetros de limpeza
  • não monitore parâmetros que retornem as mesmas informações.
  • evitar o uso de gatilhos com longo período dado como função argumento. Por exemplo, max(/host/key,1h) será calculado significativamente mais lento que max(/host/key,1m).

Visualizando o desempenho do processo Zabbix com "ps" e "top"

Como os processos do Zabbix 2.2 alteram suas linhas de comando para exibir atividade e estatísticas significativas, como:

UID PID PPID C STIME TTY TIME CMD
       zabbix22 4584 1 0 14:55 ? 00:00:00 zabbix_server -c /home/zabbix22/zabbix_server.conf
       zabbix22 4587 4584 0 14:55 ? 00:00:00 zabbix_server: sincronização de configuração [configuração sincronizada em 0,041169 seg, inativo 60 seg]
       zabbix22 4588 4584 0 14:55 ? 00:00:00 zabbix_server: db watchdog [configuração de alertas sincronizados em 0,018748 seg, inativo 60 seg]
       zabbix22 4608 4584 0 14:55 ? 00:00:00 zabbix_server: timer #1 [atualizado 0 hosts, suprimido 0 eventos em 0,000472 seg, inativo 59 seg]
       zabbix22 4637 4584 0 14:55 ? 00:00:01 zabbix_server: histórico sincronizador #3 [processado 0 valores, 0 acionadores em 0,000036 seg, inativo 1 seg]
       zabbix22 4657 4584 0 14:55 ? 00:00:00 zabbix_server: vmware collector #1 [atualizado 0, removido 0 serviços VMware em 0,000004 seg, inativo 5 seg]
       zabbix22 4670 1 0 14:55 ? 00:00:00 zabbix_proxy -c /home/zabbix22/zabbix_proxy.conf
       zabbix22 4673 4670 0 14:55 ? 00:00:00 zabbix_proxy: sincronização de configuração [configuração sincronizada 15251 bytes em 0,111861 seg, inativo 60 seg]
       zabbix22 4674 4670 0 14:55 ? 00:00:00 zabbix_proxy: remetente de pulsação [enviando mensagem de pulsação com sucesso em 0,013643 seg, inativo 30 seg]
       zabbix22 4688 4670 0 14:55 ? 00:00:00 zabbix_proxy: icmp pinger #1 [obteve 1 valor em 1,811128 seg, inativo 5 seg]
       zabbix22 4690 4670 0 14:55 ? 00:00:00 zabbix_proxy: governanta [excluiu 9870 registros em 0,233491 seg, ocioso 3599 seg]
       zabbix22 4701 4670 0 14:55 ? 00:00:08 zabbix_proxy: http poller #2 [obteve 1 valor em 0,024105 seg, inativo 1 seg]
       zabbix22 4707 4670 0 14:55 ? 00:00:00 zabbix_proxy: sincronizador de histórico nº 4 [processado 0 valores, 0 acionadores em 0,000039 seg, inativo 1 seg]
       zabbix22 4738 1 0 14:55 ? 00:00:00 zabbix_agentd -c /home/zabbix22/zabbix_agentd.conf
       zabbix22 4739 4738 0 14:55 ? 00:00:00 zabbix_agentd: coletor [ocioso 1 segundo]
       zabbix22 4740 4738 0 14:55 ? 00:00:00 zabbix_agentd: ouvinte #1 [aguardando conexão]
       zabbix22 4741 4738 0 14:55 ? 00:00:00 zabbix_agentd: listener #2 [processando solicitação]

O processo principal é uma exceção. Em vez da atividade atual, o linha de comando original é mostrada. Isso ajuda a distinguir os processos sistemas com várias instâncias do Zabbix.

Esse recurso não é implementado para o Microsoft Windows.

Se o nível de registro estiver definido como DebugLevel=4, essas atividades e mensagens de estatísticas também são gravadas no arquivo de log.

Linux

Em sistemas Linux o comando ps pode ser usado junto com o comando watch para observar como o Zabbix está se saindo. Por exemplo, para executar o comando ps 5 vezes por segundo para ver as atividades do processo:

assistir -n 0,2 ps -fu zabbix

Para mostrar apenas os processos de proxy e agente do Zabbix:

watch -tn 0.2 'ps -f -C zabbix_proxy -C zabbix_agentd'

Para mostrar apenas os processos do sincronizador de histórico:

watch -tn 0.2 'ps -fC zabbix_server | história do grep'

O comando ps produz uma saída ampla (aproximadamente 190 colunas) como algumas mensagens de atividade são longas. Se o seu terminal tiver menos de 190 colunas de texto que você pode tentar

watch -tn 0.2 'ps -o cmd -C zabbix_server -C zabbix_proxy -C zabbix_agentd'

para exibir apenas linhas de comando sem UID, PID, hora de início etc.

O comando top também pode ser usado para observar o desempenho do Zabbix. Pressionar a tecla 'c' em 'top' mostra os processos com suas linhas de comando. Dentro nossos testes no Linux top e atop exibiram corretamente as alterações atividades dos processos Zabbix, mas htop não estava exibindo mudanças Atividades.

Sistemas BSD

Se o comando watch não estiver instalado, um efeito semelhante pode ser obtido com

enquanto [ 1 ]; faça psx; dormir 0,2; Claro; feito
AIX, HP-UX

Se o comando watch não estiver disponível, pode-se tentar

while [ 1 ]; faça ps -fu zabbix; sleep 1; clear; done
Solaris

Por padrão, o comando ps não mostra as atividades em mudança. Um opção é usar /usr/ucb/ps em vez disso. Se o comando watch não for instalado, uma lista atualizada periodicamente de processos pode ser mostrada com

while [ 1 ]; do /usr/ucb/ps gxww; sleep 1; clear; done

No Solaris 11:

  • /usr/ucb/ps não é instalado por padrão. Você pode precisar instalar pacote ucb, por exemplo compatibilidade de instalação do pacote/ucb,
  • se o daemon Zabbix foi iniciado por usuário privilegiado suas atividades não são mostrados ao usuário não privilegiado.
  • o comando sleep aceita não apenas segundos inteiros, mas também frações de segundo (por exemplo, sono 0,2).

Veja também

  1. Como configurar a contagem ideal de zabbix processos