Não há problema em ler o artigo, compartilhar as anotações e registrar o progresso do aprendizado por meio desse método.
Wang Depeng. Monitoramento de servidores e alarmes e otimização de desempenho com base no Zabbix[D]. Liaoning: Dalian University of Technology, 2020.
Texto original: Alarme de monitoramento de servidores e otimização de desempenho baseado em Zabbix
Preste atenção à conta oficial e a resposta em segundo plano " Baseado no Zabbix para realizar monitoramento de servidor e otimização de alarme e desempenho" pode obter o texto original e aprender juntos.
O conteúdo principal do papel:
Com base no programa de código aberto Zabbix e no banco de dados Mysql, projete e construa uma plataforma de monitoramento e alarme confiável e em tempo real para realizar monitoramento e alarme em tempo real da temperatura, desempenho, serviço e outros status de servidores, switches, roteadores e outros equipamentos distribuída em diferentes regiões, esta plataforma de monitoramento e alarme é de grande valia para promover a padronização, plataformização e automação do sistema de informações da empresa.
Dois pontos inovadores:
Ao escrever um programa Python para se conectar à interface API da plataforma de monitoramento e alarme, compensa a falta do Zabbix na modificação em lote.
Para melhorar o desempenho do processamento da plataforma de monitoramento e alarme, analise o algoritmo do banco de dados Mysql em segundo plano e selecione o mecanismo de armazenamento e o tipo de índice mais adequados para a plataforma de monitoramento e alarme e otimize os parâmetros do banco de dados para melhorar bastante o desempenho em tempo real e confiabilidade da plataforma de monitoramento e alarme.
1. Introdução
Comparação de vários sistemas de monitoramento de código aberto
Esta imagem pode ser vista em vários lugares na Internet, esta é a fonte original?
2. Análise técnica relacionada
Escrevi um capítulo sobre SNMP, IPMI, protocolos JMX, banco de dados MySQL e python.Como reduzir o peso dessa coisa? Haha, mas ainda é bom como material de aprendizado.
3. Análise e projeto de plataforma de monitoramento e alarme
Além dos requisitos e princípios semelhantes, a grande diferença em relação aos textos online é que é fornecido o diagrama de blocos do sistema, que pode ser a necessidade de trabalhos acadêmicos.
No diagrama lógico de toda a plataforma, as setas à esquerda referem-se aos nomes das camadas à direita.A princípio pensei que fosse a saída de dados.
Este quadro é duvidoso, este é o fluxo de dados do Agente. A transmissão de dados do Agente utiliza o serviço Snmpd?
4. Realização e aplicação da plataforma
A implementação e aplicação da plataforma é construir uma solução de monitoramento Zabbix. Existe um método de usar Python para ler o host no Excel e realizar modificação em lote. Esse é o ponto inovador do artigo, e os demais são basicamente consistentes com o manual.
O autor fornece todo o código no apêndice, usando a API do zabbix. Esta deve ser uma pequena ferramenta que pode ser usada com frequência e você pode aprender com ela.
5. Otimização de desempenho e teste da plataforma de monitoramento e alarme
Inclui principalmente otimização de estrutura, otimização de banco de dados e otimização de parâmetros, e fornece uma comparação de otimização. A estrutura usa proxy; o ajuste do banco de dados começa no mecanismo de banco de dados e no tipo de índice e, em seguida, otimiza os parâmetros do banco de dados; a otimização do zabbix Server inclui principalmente o número de processos, tamanho do cache e frequência de atualização, mas apenas uma imagem é fornecida e não explica por que deve ser otimizada dessa maneira.
reanálise de dúvidas
1. Processo de processamento do agente
Ontem à noite, eu disse que a Figura 3.3 no jornal era suspeita porque vi que SNMPD é um serviço de snmp e MIB (management information base) é um banco de dados para armazenar OIDs, então parece um diagrama de blocos do sistema usando SNMP protocolo para coletar dados.
De fato, é apontado no manual oficial que o Agent possui os três processos a seguir:
-
collect_thread coleta periodicamente informações básicas, principalmente memória e CPU, armazenadas na memória compartilhada
-
listener_thread é usado para receber tarefas de coleta atribuídas pelo servidor ou proxy, coleta passiva
-
active_checks_thread Coleta e relatórios ativos
Os três processos aqui são fáceis de entender, um é coletar indicadores, um é aceitar tarefas do servidor e o último é relatar dados.
Também encontrei um diagrama da estrutura do programa Agent na Internet, e a estrutura acima também pode ser produzida.
2. Design Ideal do Servidor
No artigo de ontem, apenas uma configuração de otimização de servidor foi fornecida ontem, e o motivo não foi fornecido, muito menos mais métodos de configuração. Aqui estão outras soluções de configuração, que serão estudadas com mais detalhes posteriormente.
Arquivo de configuração do servidor Zabbix
#ListenPort=10051
#porta de escuta
# SourceIP=
#No caso de endereços múltiplos, especifique qual endereço usar para comunicação
# LogType=arquivo
#A maneira de especificar o log é gravar no arquivo
LogFile=/var/log/zabbix/zabbix_server.log
#Especifique o caminho de armazenamento do arquivo de log, o usuário precisa ter permissão para o diretório;
# LogFileSize=1
# Regravação de log, geralmente não aberta
# DebugLevel=3
#Nível de log; quando você precisa cometer um erro, pode ajustar o nível de depuração para ver com mais clareza. Depois que o erro for concluído, volte ao nível de log original, caso contrário, o log preencherá o espaço em disco
PidFile=/apps/zabbix-server/run/zabbix_server.pid
#Caminho do arquivo PID
SocketDir=/apps/zabbix-server/run/
#Especifique o caminho do arquivo socket
DBHost=
#Endereço do banco de dados conectado
DBName=zabbix_server
banco de dados #Name
DBUser=
#Conta conectada
DBPassword=
#senha de conexão
Configuração de otimização do servidor Zabbix
# HistoryStorageURL=
#Especifique o endereço do servidor elasticsearch, salve os dados históricos do zabbix no ES, otimize o desempenho do zabbix e precise de uma nova versão do zabbix para oferecer suporte
# HistoryStorageTypes=uint,dbl,str,log,text
Tipos de índice para #elasticsearch
# HistoryStorageDateIndex=0
#Salve dados históricos em diferentes índices elasticsearch
# ExportDir=
#Define o diretório de eventos de gatilho de exportação em tempo real, monitorando valores de coleta de itens e dados de tendências
# ExportFileSize=1G
#Defina o tamanho máximo de cada arquivo exportado
StartPollers=6
# Especifique para abrir vários processos para coletar dados do agente; o número de processos gerais corresponde ao número de núcleos da CPU e o intervalo é de 0 a 1000
# StartIPMIPollers=1
# Especifique para abrir vários processos para coletar dados do IPMI, você precisa abrir o IPMI com antecedência, caso contrário, um erro será relatado, o intervalo é 0-1000
StartPreprocessors=6
#Quantos processos são pré-iniciados para processar dados do agente zabbix, o intervalo é 0-1000
# StartPollersUnreachable=1
#Quantos processos iniciar para detectar hosts inacessíveis em rotação, o intervalo é 0-1000
Iniciar caçadores = 5
#Quantos processos são pré-iniciados para lidar com operações relacionadas ao gatilho, o intervalo é 0-1000
StartPingers=5
#Quantos processos iniciar para detecção de ping, usado para ping de dispositivos de rede e hosts, o intervalo é 0-1000
StartDiscoverers=6
#Quantos processos iniciar para descoberta automática, como descoberta automática de disco, descoberta automática de rede, o número de processos gerais não deve exceder o número de núcleos de CPU do host, o intervalo é 0-250
StartHTTPPollers=3
# Ao realizar o acesso à web, quantos processos são iniciados para lidar com o acesso à web, o intervalo é 0-1000
StartTimers = 3
#Número de processos do timer, o timer é usado para calcular o tempo de ocorrência do problema e sincronização de etapas, etc., usado para envio recursivo de e-mails ao acionar um alarme, etc., faixa de 1 a 1000
# StartEscalators=1
O número do processo inicial do processo #elasticsearch, o número de processos usados para processar as etapas automáticas na ação, 0-100
# StartAlerts=3
#O número de pré-início do processo de alarme, 0-100
#JavaGateway=
#zabbix é escrito em php e não pode acessar diretamente programas java, então o javagateway é usado. O javagateway é conectado ao zabbix em uma extremidade e ao ambiente java na outra extremidade para coletar indicadores de recursos do ambiente java. Um javagateway pode se conectar para vários serviços java; especifique o endereço javagateway
#JavaGatewayPort=10052
#javagatewayPorta de escuta
# StartJavaPollers=0
#Quantos processos pré-iniciar para coletar dados java em rotação, 0-1000
# StartVMwareCollectors=0
#É usado para definir a instância do host vmware esxi de monitoramento, se for 0, não será usado. Se você deseja monitorar o host esxi, o valor mínimo é 1. Defina o número correspondente de acordo com o número de esxi de monitoramento .Zabbix monitora vmware, você precisa usar o template para monitoramento vmware ;0-250
Frequência VMware = 60
#Monitore o intervalo de tempo para o vmware obter os dados mais recentes, em segundos
# VMwarePerfFrequency=60
#Monitore o intervalo de tempo dos dados de desempenho do vmware
# VMwareCacheSize=8M
#vmware tamanho do cache de dados ocupará a memória do servidor zabbix server
# VMwareTimeout=10
#vmware tempo limite para obter dados
SNMPTrapperFile=/apps/zabbix-server/run/zabbix_traps.tmp
#Caminho temporário do arquivo de gatilho SNMP
IniciarSNMPTrapper=1
#SNMP trigger process number, o intervalo é 0-1, 1 significa aberto
# ListenIP=0.0.0.0
endereço de escuta do servidor #zabbix
# HousekeepingFrequency=1
#Quantas horas para limpar os dados históricos do banco de dados do agente, o padrão é 1 hora, o intervalo é 0-24; quando o tempo de armazenamento de dados históricos definido no item de monitoramento e o tempo de armazenamento de dados de tendência exceder o tempo especificado, ele será limpo; os dados de tendência salvarão o valor máximo, o valor mínimo e o valor médio dos dados dentro de uma hora; dados históricos são para consultar os dados de cada item de monitoramento são dados históricos
# MaxHousekeeperDelete=5000
#O número máximo de linhas para excluir dados históricos de cada vez, o intervalo é 0-1000000
CacheSize=128M
#O tamanho do cache usado para armazenar host, item de gerenciamento e dados de acionamento; o intervalo é 128K-8G e a configuração geral é de 1 a 2 G
CacheUpdateFrequency = 300
#zabbix atualiza a frequência dos dados em cache, em segundos, intervalo 1-3600
StartDBSyncers=4
Quantos processos o #zabbix começa a sincronizar dados com o banco de dados, incluindo consultas; 0-100
HistoryCacheSize=2G
# Tamanho do cache de dados históricos, 128K-2G
HistoryIndexCacheSize=128M
#Cache de informações de índice de dados históricos, 128K-2G
TrendCacheSize=16M
# É usado para definir quanta memória compartilhada do sistema é usada para armazenar em cache os dados de tendência calculados. Este parâmetro pode afetar a pressão de leitura do banco de dados até certo ponto, e o intervalo é 128K-2G
ValueCacheSize=16M
#Tamanho da memória compartilhada usada para armazenar em cache as solicitações de dados históricos do projeto, 128K-64G
Tempo limite = 30
#Especificar a quanto tempo o agente não retorna os dados consultados pelo servidor, irá expirar, 1-30
TrapperTimeout = 300
#O tempo máximo para o gatilho processar dados, em segundos; 1-300
Período Inacessível=60
#Quando o host está inacessível por quantos segundos, é definido como o host está indisponível, a unidade é segundos, 1-3600
Atraso indisponível=60
#Quando o host está indisponível, com que frequência verificar a disponibilidade do host, intervalo de 1 a 3600
UnreachableDelay=15
#Quando o host está inacessível, com que frequência verificar a disponibilidade do host, 1-3600
AlertScriptsPath=${datadir}/zabbix/alertscripts
#O caminho do script de alarme de monitoramento depende do parâmetro datadir em tempo de compilação, como /apps/zabbix-server/share/zabbix/alertscripts
# FpingLocation=/usr/sbin/fping
#Especifique a localização do comando fping, fping é usado para testar a conectividade de rede; você pode usar apt install fping para instalar
# Fping6Location=/usr/sbin/fping6
Localização do comando para #fping6
LogSlowQueries=3000
#Especifique quanto tempo o resultado não é retornado, é um log lento (em milissegundos), somente quando o nível do log é 3, 4/5, 0 significa sem gravação, o intervalo é 1-3600000
# TmpDir=/tmp
#Diretório de armazenamento de arquivo temporário
StartProxyPollers=1
#Especifique quantos processos o servidor zabbix começa a se comunicar com o proxy. Este é um proxy passivo, e o servidor zabbix se conecta ativamente ao proxy, e o proxy aceita passivamente a conexão do servidor. Geralmente, é necessário garantir que um servidor processo interage com um proxy
ProxyConfigFrequency = 60
#proxy modo passivo, quantos segundos o servidor sincroniza o arquivo de configuração (item de monitoramento) para o proxy, este parâmetro é usado apenas para o modo passivo proxy, o intervalo é 1-3600*24*7; se um novo nó de agente é adicionado através do zabbix web, quanto tempo Sincronize o arquivo de configuração com o proxy uma vez por vez. Depois que o proxy receber o arquivo de configuração, ele sincronizará o arquivo de configuração com o host do agente novamente, para que o host do agente possa obter os itens de monitoramento a serem coletados no arquivo de configuração.
ProxyDataFrequency=60
#No modo passivo, quantos segundos o servidor zabbix solicita dados históricos do proxy, o proxy relatará os dados de monitoramento do agente ao servidor dentro do tempo especificado, 1-3600
# AllowRoot=0
#Se é permitido iniciar o zabbix como root, se você quiser permitir, altere para 1
Usuário=zabbix
#Especifique o usuário que inicia o zabbix
# Incluir=
#Importar o arquivo de configuração do caminho especificado
# StatsAllowedIP=
#Defina o endereço que permite o acesso ao servidor zabbix
depois de ler
O artigo menciona várias vezes o monitoramento da rede de uma determinada empresa. Isso deveria ser um resumo de um projeto específico de monitoramento de rede. A tecnologia utilizada não é difícil, mas a estrutura, o processo etc. manuais e artigos on-line podem ser úteis para uma melhor compreensão do monitoramento.
Texto original: Alarme de monitoramento de servidores e otimização de desempenho baseado em Zabbix
Preste atenção à conta oficial e a resposta em segundo plano " Baseado no Zabbix para realizar monitoramento de servidor e otimização de alarme e desempenho" pode obter o texto original e aprender juntos.