Zabbix 4.2 lançado

Nossa equipe tem o prazer de compartilhar a notícia de que um sistema de monitoramento gratuito e de código aberto foi lançado Zabbix4.2!

Zabbix 4.2 lançado

A versão 4.2 é a resposta para a questão principal da vida, do universo e do monitoramento em geral? Vamos dar uma olhada!

Lembremos que Zabbix é um sistema universal para monitorar o desempenho e disponibilidade de servidores, equipamentos de engenharia e rede, aplicações, bancos de dados, sistemas de virtualização, containers, serviços de TI e serviços web.

O Zabbix implementa um ciclo completo desde a coleta de dados, processamento e transformação, análise dos dados recebidos, e finalização com armazenamento desses dados, visualização e envio de alertas utilizando regras de escalonamento. O sistema também oferece opções flexíveis para expandir a coleta de dados e métodos de alerta, bem como recursos de automação via API. Uma única interface web implementa o gerenciamento centralizado de configurações de monitoramento e distribuição de direitos de acesso a vários grupos de usuários. O código do projeto é distribuído gratuitamente sob uma licença GPLv2.

Zabbix 4.2 é uma nova versão não LTS com um período de suporte oficial reduzido. Para usuários que estão focados em um longo ciclo de vida de produtos de software, recomendamos o uso de versões LTS, como 3.0 e 4.0.

Então, vamos falar sobre os novos recursos e principais melhorias da versão 4.2:

Mais plataformas oficiais

Zabbix 4.2 lançado
Além dos pacotes oficiais existentes, também oferecemos novas compilações para:

  • RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
  • Agente MSI para Windows
  • Imagens Docker

Suporte integrado ao Prometheus para monitoramento de aplicativos

O Zabbix pode coletar dados de várias maneiras (push/pull) de diferentes fontes de dados. São JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agentes e scripts e outras fontes. Agora conheça o suporte do Prometheus!

A rigor, a coleta de dados dos exportadores do Prometheus era possível no passado graças ao tipo de elemento de dados HTTP/HTTPS e às expressões regulares.

No entanto, a nova versão permite trabalhar com o Prometheus da maneira mais eficiente possível devido ao suporte integrado para a linguagem de consulta PromQL. E o uso de métricas dependentes permite coletar e processar dados de forma mais eficiente: você solicita os dados uma vez e então nós os classificamos de acordo com as métricas necessárias.

Zabbix 4.2 lançado
Obtendo o valor de uma métrica específica

É importante observar que a descoberta de baixo nível agora pode usar os dados coletados para gerar métricas automaticamente. Neste caso, o Zabbix converte os dados recebidos para o formato JSON, o que é muito conveniente de trabalhar.

Zabbix 4.2 lançado
Encontrar métricas usando um filtro na linguagem de consulta PromQL

No momento há mais 300 integrações e receitas de monitoramento serviços e aplicativos de terceiros usando Zabbix. O suporte do Prometheus permitirá que você adicione um conjunto completo de aplicativos que possuem exportadores Prometheus oficiais ou com suporte da comunidade. Trata-se do monitoramento de serviços populares, contêineres e recursos de nuvem.

Monitoramento eficaz de alta frequência

Queremos detectar problemas o mais rápido possível? Claro, sem dúvida! Na maioria das vezes, esta abordagem resulta na necessidade de pesquisar dispositivos e recolher dados com demasiada frequência, o que coloca uma carga maior no sistema de monitorização. Como evitar isso?

Implementamos um mecanismo de limitação nas regras de pré-processamento. A limitação, em essência, nos dá a oportunidade de pular valores idênticos.

Vamos supor que estamos monitorando o estado de um aplicativo crítico. A cada segundo verificamos se nosso aplicativo está funcionando ou não. Ao mesmo tempo, o Zabbix recebe um fluxo contínuo de dados de 1 (funcionando) e 0 (não funciona). Por exemplo: 1111111111110001111111111111…

Quando tudo estiver em ordem com nossa aplicação, então o Zabbix recebe um fluxo de apenas uns. Eles precisam ser processados? Em geral não, porque só estamos interessados ​​em alterar o estado da aplicação, não queremos coletar e armazenar tantos dados. Portanto, a limitação permite pular um valor se ele for idêntico ao anterior. Como resultado, receberemos apenas dados sobre a mudança de estado, por exemplo, 01010101... São informações suficientes para detectar problemas!

O Zabbix simplesmente ignora os valores ausentes, eles não são registrados no histórico e não afetam os gatilhos de forma alguma. Do ponto de vista do Zabbix, não há valores faltantes.

Zabbix 4.2 lançado
Ignorar valores duplicados

Ótimo! Agora podemos pesquisar dispositivos com muita frequência e detectar problemas instantaneamente, sem armazenar informações desnecessárias em um banco de dados.

E os gráficos? Eles ficarão vazios por falta de dados! E como saber se o Zabbix está coletando dados se a maior parte desses dados está faltando?

Também pensamos nisso! O Zabbix oferece outro tipo de aceleração, a aceleração com batimentos cardíacos.

Zabbix 4.2 lançado
Uma vez por minuto, verificamos se a métrica está ativa

Neste caso, o Zabbix, apesar do fluxo de dados repetido, irá armazenar pelo menos um valor no intervalo de tempo especificado. Se os dados forem coletados uma vez por segundo e o intervalo for definido para um minuto, o Zabbix transformará o fluxo de unidades a cada segundo em um fluxo a cada minuto. É fácil ver que isso leva a uma compactação de 60 vezes dos dados recebidos.

Agora estamos confiantes de que os dados estão sendo coletados, a função de gatilho nodata() está funcionando e está tudo bem com os gráficos!

Validação dos dados coletados e tratamento de erros

Nenhum de nós deseja coletar dados errados ou não confiáveis. Por exemplo, sabemos que um sensor de temperatura deve retornar dados entre 0°C e 100°C e qualquer outro valor deve ser considerado falso e/ou ignorado.

Agora isso é possível usando regras de validação de dados incorporadas ao pré-processamento para conformidade ou falta de conformidade com expressões regulares, intervalos de valores, JSONPath e XMLPath.

Agora podemos controlar a reação ao erro. Se a temperatura estiver fora da faixa, podemos simplesmente ignorar esse valor, definir um valor padrão (por exemplo, 0°C) ou definir nossa própria mensagem de erro, por exemplo, “Sensor danificado” ou “Substitua a bateria”.

Zabbix 4.2 lançado
A temperatura deve estar entre 0 e 100, ignore o resto

Um bom exemplo do uso da validação é a capacidade de verificar os dados de entrada quanto à presença de uma mensagem de erro e definir esse erro para toda a métrica. Esta é uma funcionalidade muito útil ao recuperar dados de APIs externas.

Qualquer transformação de dados usando JavaScript

Se as regras de pré-processamento integradas não fossem suficientes para nós, agora oferecemos total liberdade usando scripts JavaScript personalizados!

Zabbix 4.2 lançado
Apenas uma linha de código para converter Fahrenheit em Celsius

Isso abre possibilidades infinitas para o processamento de dados recebidos. O benefício prático dessa funcionalidade é que não precisamos mais dos scripts externos que usávamos para fazer qualquer manipulação de dados. Agora tudo isso pode ser feito usando JavaScript.

Agora são possíveis transformação de dados, agregação, filtros, operações aritméticas e lógicas e muito mais!

Zabbix 4.2 lançado
Extraindo informações úteis da saída mod_status do Apache!

Testando pré-processamento

Agora não precisamos adivinhar como funcionam nossos complexos scripts de pré-processamento. Agora existe uma maneira conveniente de verificar se o pré-processamento está funcionando corretamente diretamente na interface!

Zabbix 4.2 lançado

Processamos milhões de métricas por segundo!

Antes do Zabbix 4.2, o pré-processamento era feito exclusivamente pelo servidor Zabbix, o que limitava a capacidade de usar proxies para distribuição de carga.

A partir do Zabbix 4.2, obtemos um escalonamento de carga incrivelmente eficiente por meio do suporte ao pré-processamento do lado do proxy. Agora os proxies fazem isso!

Zabbix 4.2 lançado

Em combinação com o throttling, esta abordagem permite monitoramento em grande escala e alta frequência e milhões de verificações por segundo, sem carregar o servidor Zabbix central. Os proxies processam volumes gigantescos de dados, enquanto apenas uma pequena parte deles chega ao servidor Zabbix devido ao afogamento, uma ou duas ordens de magnitude a menos.

Descoberta de baixo nível mais fácil

Lembre-se de que a descoberta de baixo nível (LLD) é um mecanismo muito poderoso para descobrir automaticamente qualquer tipo de recursos de monitoramento (sistemas de arquivos, processos, aplicativos, serviços, etc.) e criar automaticamente itens de dados, gatilhos, nós de rede baseados neles e outros. objetos. Isso economiza um tempo incrível, simplifica a configuração e permite que um modelo seja usado em hosts com diferentes recursos de monitoramento.

A descoberta de baixo nível exigia JSON especialmente formatado como entrada. É isso, não vai mais acontecer!

O Zabbix 4.2 permite descoberta de baixo nível (LLD) para usar dados arbitrários no formato JSON. Por que isso é importante? Isto permite comunicar, por exemplo, com APIs externas sem recorrer a scripts e utilizar as informações recebidas para criar automaticamente hosts, elementos de dados e gatilhos.

Juntamente com o suporte a JavaScript, isso cria oportunidades fantásticas para a criação de modelos para trabalhar com diversas fontes de dados, como, por exemplo, APIs de nuvem, APIs de aplicativos, dados em XML, formatos CSV e assim por diante.

Zabbix 4.2 lançado
Vinculando JSON com informações sobre processos com LLD

As possibilidades são infinitas!

Suporte TimescaleDB

Zabbix 4.2 lançado

O que é TimescaleDB? Este é o PostgreSQL normal mais um módulo de extensão da equipe TimescaleDB. TimescaleDB promete melhor desempenho devido a algoritmos e estrutura de dados mais eficientes.

Além disso, outra vantagem do TimescaleDB é o particionamento automático de tabelas com histórico. TimescaleDB é rápido e fácil de manter! Porém, devo observar que nossa equipe ainda não fez uma comparação séria de desempenho com o PostgreSQL normal.

No momento, o TimescaleDB é um produto bastante jovem e em rápido desenvolvimento. Use com cuidado!

Fácil gerenciamento de tags

Se anteriormente as tags só podiam ser gerenciadas no nível do acionador, agora o gerenciamento de tags é muito mais flexível. Zabbix suporta tags para templates e hosts!

Todos os problemas detectados recebem tags não só do trigger, mas também do host, bem como dos templates deste host.

Zabbix 4.2 lançado
Definindo tags para um nó de rede

Registro automático mais flexível

O Zabbix 4.2 permite filtrar hosts por nome usando expressões regulares. Isto torna possível criar diferentes cenários de detecção para diferentes grupos de nós da rede. É especialmente conveniente se usarmos regras complexas de nomenclatura de dispositivos.

Descoberta de rede mais flexível

Outra melhoria diz respeito à nomenclatura dos nós da rede. Agora é possível gerenciar nomes de dispositivos durante a descoberta de rede e obter o nome do dispositivo a partir de um valor métrico.

Esta é uma funcionalidade muito necessária, especialmente para descoberta de rede usando SNMP e agente Zabbix.

Zabbix 4.2 lançado
Atribua automaticamente o nome do host local a um nome visível

Verificando a funcionalidade dos métodos de notificação

Agora você pode enviar uma mensagem de teste diretamente da interface da Web e verificar se o método de notificação funciona. Esta funcionalidade é especialmente útil para testar scripts para combinar o Zabbix com vários sistemas de alerta, sistemas de tarefas e outros programas e APIs externos.

Zabbix 4.2 lançado

Monitoramento remoto de componentes da infraestrutura Zabbix

Agora é possível monitorar remotamente métricas internas do servidor e proxy Zabbix (métricas de desempenho e saúde dos componentes Zabbix).

Para que serve? A funcionalidade permite monitorar métricas internas de servidores e proxies de fora, permite detectar e notificar rapidamente sobre problemas mesmo se os próprios componentes estiverem sobrecarregados ou, por exemplo, houver uma grande quantidade de dados não enviados no proxy.

Suporte ao formato HTML para mensagens de e-mail

Agora não estamos limitados ao texto simples e podemos criar lindas mensagens de e-mail, graças ao suporte do formato HTML. É hora de aprender HTML + CSS!

Zabbix 4.2 lançado
As mensagens são mais fáceis de entender mesmo com uso mínimo de HTML

Acesso a sistemas externos a partir de placas de rede

Há suporte para todo um conjunto de novas macros em URLs personalizados para melhor integração de mapas com sistemas externos. Isso permite abrir, por exemplo, um ticket no sistema de tarefas com um ou dois cliques no ícone de um nó da rede.

Zabbix 4.2 lançado
Abra um ticket no Jira com um clique

Uma regra de descoberta pode ser um item de dados dependente

Por que isso é necessário - você pergunta. Isso permite que os dados métricos subjacentes sejam usados ​​tanto para descoberta quanto para coleta direta de dados. Por exemplo, no caso de coletar dados de um exportador Prometheus, o Zabbix fará uma solicitação HTTP e usará imediatamente as informações recebidas para todos os elementos de dados dependentes: valores de métricas e regras de descoberta de baixo nível.

Uma nova maneira de visualizar problemas em mapas

Agora há suporte para imagens GIF animadas em mapas para uma visualização mais visível dos problemas.

Zabbix 4.2 lançado
Dispositivos problemáticos tornaram-se mais visíveis

Extraindo dados de cabeçalhos HTTP no monitoramento da Web

No Web Monitoring, foi adicionada a capacidade de selecionar dados do cabeçalho HTTP recebido.

Isso permite que você crie cenários de monitoramento da Web em várias etapas ou de monitoramento de API de terceiros usando o token de autorização obtido em uma das etapas.

Zabbix 4.2 lançado
Extraindo AuthID do cabeçalho HTTP

Zabbix Sender usa todos os endereços IP

O Zabbix Sender agora envia dados para todos os endereços IP do parâmetro ServerActive no arquivo de configuração do agente.

Zabbix 4.2 lançado

Novo filtro conveniente na configuração do gatilho

A página de configuração de gatilhos agora possui um filtro expandido para seleção rápida e conveniente de gatilhos com base em critérios especificados.

Zabbix 4.2 lançado
Seleção de gatilhos relacionados ao serviço K8S

Mostrar a hora exata

Tudo é simples aqui, agora o Zabbix mostra a hora exata quando você passa o mouse sobre o gráfico.

Zabbix 4.2 lançado

Outras inovações

  • Implementado um algoritmo mais previsível para alterar a ordem dos widgets no painel
  • Capacidade de alterar parâmetros em massa de protótipos de itens de dados
  • Suporte IPv6 para verificações de DNS: "net.dns" e "new.dns.record"
  • Adicionado parâmetro “skip” para verificações “vmware.eventlog”
  • O erro de execução da etapa de pré-processamento inclui o número da etapa

Como faço para atualizar?

Para atualizar de versões anteriores, você só precisa instalar novos binários (servidores e proxies) e uma nova interface. O Zabbix atualizará automaticamente o banco de dados. Não há necessidade de instalar novos agentes.

Estamos realizando webinars gratuitos para quem quiser saber mais sobre o Zabbix 4.2 e ter a oportunidade de tirar dúvidas para a equipe Zabbix. Inscrever-se!

Não se esqueça do popular Canal de telegrama Comunidade Zabbix, onde você sempre pode obter conselhos e respostas para suas perguntas em russo de colegas mais experientes e, se tiver sorte, dos próprios desenvolvedores Zabbix. Recomendado para iniciantes grupo para iniciantes.

Links úteis

- Notas de lançamento
- Notas de atualização
- Artigo original

Fonte: habr.com

Adicionar um comentário