Em meados de maio, foi lançada a versão Zabbix 5.0, e organizamos uma série de meetups online em diferentes idiomas com o objetivo de demonstrar claramente à comunidade todas as mudanças e inovações. Convidamos você a conferir a apresentação do CEO e criador do Zabbix, Alexey Vladyshev, na qual ele discutiu passo a passo as novidades do Zabbix 5.0.

Zabbix 4.2 e Zabbix 4.4
Começaremos com as mudanças introduzidas na versão Zabbix 4.0, em função do uso de versões LTS.
Na versão Zabbix 4.2, lançada em abril de 2019, surgiram as seguintes funcionalidades:
- Monitoramento de alta frequência com throttling, que proporciona escalabilidade e aumento de NVPS, significando uma detecção mais rápida de problemas e direcionamento de notificações sem grande carga para o Zabbix.
- Coleta de dados utilizando um agente HTTP.
- Suporte à coleta de dados do Prometheus Pro.
- A pré-processamento suporta validação e JavaScript, permitindo a transformação de quaisquer dados coletados.
- Pré-processamento do lado do proxy, que garante escalabilidade mais eficiente por meio do proxy.
- Gerenciamento de tags melhorado — metainformação em nível de eventos e problemas, que é fácil de trabalhar, pois as tags são suportadas tanto em nível de templates quanto em nível de nós de rede.
Em setembro do ano passado, foi lançada a versão Zabbix 4.4, que ofereceu as seguintes funcionalidades:
- Novo agente Zabbix.
- Suporte a Webhook para notificações e alertas, permitindo a integração com sistemas externos.
- Suporte ao TimescaleDB.
- Uma base de conhecimento embutida para métricas e gatilhos tornou-se visível para os usuários do Zabbix. Por exemplo, os usuários podem usar a descrição dos itens de dados e gatilhos em Monitoring > Latest data.
- Novo padrão para templates.
Zabbix 5.0
Hoje falaremos sobre o lançamento LTS do Zabbix 5.0, que será suportado por 5 anos. O suporte para a versão 4.4 será encerrado em um mês. O lançamento LTS do Zabbix 3.0 terá suporte por mais 3,5 anos.
O Zabbix oferece monitoramento de muitas coisas, cuja lista pode ser refinada na página , onde estão apresentados templates para monitoramento e plugins, incluindo para o novo agente.

Templates disponíveis para monitoramento e integração
Além disso, há possibilidades de integração com vários sistemas, incluindo sistemas de tickets, sistemas ITSM e sistemas de entrega de mensagens através de Webhook.

Recursos de integração
No Zabbix 5.0, o suporte interno para integração com vários sistemas de tíquetes e sistemas de notificações foi ampliado:

Integração com diversos sistemas
A lista de modelos incorporados para monitoramento de aplicações e dispositivos foi ampliada:

Modelos incorporados para monitoramento de aplicações e dispositivos
Todas as atualizações estão disponíveis para download em .
Qualquer usuário ou desenvolvedor pode participar do Zabbix com contribuições prontas – modelos ou plugins, utilizando um procedimento simples:
- Assinatura do Acordo de Contribuição do Zabbix (ZCA) em .
- Criação de Pull Request em .
- Avaliação do pedido pela equipe de desenvolvedores. Se o plugin ou modelo atender aos padrões do Zabbix, ele será incluído no produto, e o trabalho desse desenvolvedor será oficialmente apoiado pela equipe do Zabbix.
Zabbix é um software livre de código aberto, disponível para visualização, estudo e modificação. Os usuários têm a liberdade de usar o produto, participar da melhoria do programa ou usar o código para seus novos projetos. Por outro lado, a equipe do Zabbix faz o possível para que o Zabbix possa ser facilmente instalado em várias plataformas.
Os desenvolvedores do Zabbix oferecem pacotes para praticamente todas as distribuições mais populares e várias plataformas de virtualização. Além disso, o Zabbix pode ser instalado em um clique na nuvem pública. O Zabbix também está disponível nas plataformas Red Hat Openshift ou OpenStack.

Pacotes do Zabbix para distribuições e plataformas
Suporte ao Zabbix Agent 2 para Windows e Linux
O novo Zabbix Agent 2 é uma das melhores soluções do mercado.
- Oferece uma estrutura baseada em plugins e suporta scripts para coleta de dados, que podem operar continuamente.
- Suporta verificações ativas paralelas, conexões permanentes com sistemas externos, o que é útil, por exemplo, para monitoramento eficiente de bancos de dados.
- Suporta armadilhas e eventos, o que é importante para monitoramento de dispositivos MQTT, por exemplo.
- A nova versão do agente é fácil de instalar (pois o novo agente mantém todas as funcionalidades anteriores).
Além disso, o novo agente no Zabbix 5.0 oferece suporte ao armazenamento persistente de dados. Anteriormente, informações não enviadas eram armazenadas apenas na memória buffer do agente, enquanto na nova versão, é possível configurar o armazenamento dessas informações em disco.

Armazenamento permanente de dados
Isso é importante no monitoramento de sistemas críticos e comunicações instáveis, uma vez que uma grande quantidade de dados essenciais é preservada até serem enviados ao servidor Zabbix. A opção também é útil para conexões via satélite, que podem ficar inacessíveis por longos períodos.
IMPORTANTE! No Zabbix 5.0, é mantido o suporte ao Zabbix Agent 1.
Mudanças no sistema de segurança no Zabbix 5.0
1. A nova versão suporta HTTP proxy para webhook, permitindo que conexões do servidor Zabbix com sistemas externos de notificação sejam realizadas de forma mais segura e gerenciável.
Se for necessária a integração do servidor Zabbix em uma rede local com um sistema externo, como JIRA na nuvem, a conexão pode ser mantida através de um HTTP proxy, o que melhora o controle e a confiabilidade da conexão.
2. Para o agente antigo e o novo, há a possibilidade de escolher quais verificações devem estar disponíveis em um determinado agente. Por exemplo, é possível limitar o número de verificações, criando listas brancas e negras, definindo as chaves suportadas.
- Lista branca para verificações relacionadas ao MySQL
AllowKey=mysql[*] DenyKey=* - Lista negra para negar todos os scripts de shell
DenyKey=system.run[*] - Lista negra para negar acesso a /etc/password
DenyKey=vfs.file.contents[/etc/passwd,*]
3. É possível escolher algoritmos de criptografia para todos os componentes do Zabbix, evitando o uso de cifradores inseguros para conexões TLS. Isso é importante para monitoramento em ambientes que requerem determinados padrões de segurança.

Escolha de algoritmos de criptografia para conexões TLS
4. O Zabbix 5.0 passou a suportar conexões criptografadas com bancos de dados. No momento, apenas a conexão criptografada com PostgreSQL e MySQL está disponível.

Conexões criptografadas com bancos de dados
5. O Zabbix 5.0 passou de MD5 para SHA256 para armazenar hashes de senhas de usuários no banco de dados, pois atualmente esse é o algoritmo mais seguro.
6. O Zabbix 5.0 suporta macros secretas de usuário para armazenar qualquer informação confidencial, como senhas e tokens de API, que não são acessíveis aos usuários finais.

Macros secretas
7. Todas as conexões Zabbix com sistemas externos e conexões internas com agentes são seguras. O suporte é fornecido para criptografia usando certificados TLS ou para criptografia com chave pré-compartilhada (pre-shared key encryption) para a conexão com agentes e com proxies, ou HTTPS. A segurança do lado dos agentes pode ser reforçada com listas brancas e listas negras. A interface opera através de HTTPS.

Conexões seguras
8. Suporte ao SAML para garantir um único ponto de autenticação de um fornecedor de serviços de identidade confiável, de modo que as credenciais do usuário não saiam dos limites do firewall.

Autenticação SAML
O suporte ao SAML permite integrar o Zabbix com vários provedores de serviços de identidade locais e em nuvem, como Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, além de Azure, AWS ou Google Cloud Platform.
Facilidade de uso do Zabbix 5.0
1. Interface de usuário otimizada para telas largas. Transferimos o menu da parte superior, onde sempre falta espaço, para o lado esquerdo da tela. O menu ainda é exibido em modo completo, mínimo e oculto.

Interface otimizada para tela larga
2. Cópia de widgets de painéis permite criar novos PAINÉIS muito rapidamente. Para isso, no PAINEL, é necessário selecionar o widget desejado, pressionar Copiar

Cópia de widget
e colar o widget no painel desejado.

Inserção de widget copiado
3. Exportação de gráficos. Para copiar um gráfico e enviá-lo, por exemplo, por e-mail, você pode obter o gráfico em formato PNG, selecionando o widget desejado e clicando em Baixar imagem.

Exportação de gráficos
4. Filtragem por tags: Problema por severidade e Problemas hosts. Agora é possível, por exemplo, reunir em um único data center dados sobre todos os problemas relacionados a um nó de rede.

Filtragem por tags
5. Suporte a módulos para expandir a interface do Zabbix. Para instalar um módulo independente, é necessário copiá-lo para um diretório específico. Os módulos permitem expandir a funcionalidade existente da interface, criar novas páginas, alterar a estrutura do menu, como adicionar itens.
Qualquer usuário pode escrever e integrar um módulo. Para isso, o módulo é copiado para a pasta modules, após o que se torna visível para a interface, onde pode ser ativado ou desativado.

Adicionando um novo módulo
6. Facilidade de navegação pelos recursos relacionados aos nós de rede. No Monitoramento > Hosts é exibida uma lista de dispositivos monitorados pelo Zabbix: nós de rede, serviços, dispositivos de rede, etc. Além disso, a navegação rápida para telas, gráficos e problemas de dispositivos específicos está disponível.
Removemos as guias Monitoramento > Gráficos e Monitoramento > Webs, e toda a navegação é feita através de Monitoramento > Hosts. As informações exibidas podem ser filtradas, inclusive por tags, o que permite mostrar dispositivos desativados

Navegação pelos recursos relacionados aos nós de rede
Por exemplo, é possível selecionar dispositivos que pertencem a serviços de usuários finais, escolhendo ‘Service’, além de definir o nível de prioridade desses problemas.

Recursos de filtragem
7. Nova operação de pré-processamento — ‘Substituição‘ permite realizar várias tarefas úteis que antes só poderiam ser feitas com expressões regulares, bastante complexas para muitos usuários.
Replace permite efetivamente substituir uma string ou símbolo por outros, o que torna simples converter dados recebidos em formato de texto para uma representação numérica.

Operador Replace
8. Operador JSONPath, que permite extrair os nomes dos atributos de forma conveniente

Operador para JSONPath
9. Exibição de mensagens de e-mail do Zabbix. Nas versões anteriores, todas as mensagens de e-mail do Zabbix na pasta Entrantes eram exibidas em lista. A partir do Zabbix 5.0, as mensagens serão agrupadas por problemas.

Agrupamento de mensagens de e-mail do Zabbix
10. Suporte a macros personalizadas para IPMI para nome de usuário e senha. Se macros secretas forem usadas para nome de usuário e senha, o acesso ao seu valor será restrito.

Suporte a macros personalizadas
11. Alteração em massa de macros personalizadas para nós de rede. Na nova versão, é possível abrir uma lista de templates, selecionar uma lista de nós de rede e adicionar macros ou mudar valores de macros existentes,

Adicionar e alterar macros personalizadas
bem como excluir determinadas ou todas as macros dos templates selecionados para nós de rede.

Exclusão de macros personalizadas específicas ou todas
12. Controle do formato das mensagens no nível do método de notificação. No Tipos de mídia apareceu a guia Templates de mídia com templates de mensagens.

Modelos de notificações
Para diferentes tipos de mensagens, é possível definir diferentes modelos.

Definindo o modelo para o tipo de mensagens
Nas versões anteriores, era necessário gerenciar essas mensagens a nível de ações, definindo as mensagens e o assunto padrão.

Gerenciamento de modelos a nível de ações
Na nova versão, tudo pode ser definido em um nível global, e em nível de mensagens — reescrever as configurações globais.

Gerenciamento de modelos a nível global
Para a maioria dos usuários, é suficiente definir os formatos de modelos em nível de método de notificação. Além disso, após a importação de um novo método de notificação, todos os formatos de modelos correspondentes já fazem parte dele.
13. Uso ampliado do JavaScript. JavaScript é utilizado para scripts de pré-processamento, para Webhook, etc. Na linha de comando, trabalhar com JavaScript não é fácil.
No Zabbix 5.0, uma nova ferramenta é utilizada — zabbix_js, que executa JavaScript, que recebe dados, processa-os e gera saídas.

Ferramenta zabbix_js

Exemplos de uso da ferramenta zabbix_js
14. Suporte a operações textuais com expressões de gatilho permite verificar versões de componentes instalados, comparar valores com quaisquer constantes, onde uma constante pode ser um macro do usuário,
{host:zabbix.version.last()}="5.0.0"
{host:zabbix.version.last()}="{$ZABBIX.VERSION}comparar o último valor com o anterior, por exemplo, quando se trata de dados textuais,
{host:text.last()}<>{host.text.prev()}ou
{host:text.last(#1)}<>{host.text.prev(#2)}ou comparar valores textuais de diferentes métricas.
{hostA:textA.last()}={hostB:textB.last()}15. Automação e descoberta.
- Novas verificações JMX estão disponíveis para obter e descobrir a lista de contadores JMX, o que é muito útil, por exemplo, para monitoramento de aplicativos Java, além da automação na criação de itens de monitoramento, métricas, gatilhos e gráficos.
jmx.get[]e
jmx.discovery[]
Verificações JMX - Na nova versão, uma chave foi introduzida para monitorar contadores de desempenho do Windows, que é suportada tanto por agentes antigos quanto novos em inglês e russo, e permite, por exemplo, descobrir a quantidade de processadores, sistemas de arquivos, serviços, etc.

Monitoramento de contadores de desempenho do Windows com a chave perf_counter - O monitoramento ODBC tornou-se muito mais simples. Anteriormente, todos os parâmetros para o monitoramento ODBC precisavam ser descritos em um arquivo externo /etc/odbc.ini, que não era acessível pela interface do Zabbix. Na nova versão, praticamente todos os parâmetros podem ser parte da chave de métrica.

Chave de métrica com descrição dos parâmetrosNa nova versão, é possível definir o nome do servidor e a porta no nível da métrica, enquanto o nome e a senha para acesso podem ser utilizados através de macros secretas para segurança.

Uso de macros secretas - Com o uso do protocolo IPMI para monitoramento de hardware, surgiu a possibilidade de criar templates mais simples para automação com o ipmi.get.

ipmi.get
16. Teste de elementos de dados a partir da interface. No Zabbix 5.0, surgiu a possibilidade de testar alguns elementos de dados e, o que é mais importante, templates de elementos de dados a partir da interface.

Teste de elementos de dados
Quaisquer problemas que surgirem são exibidos na interface.

Exibição de problemas na interface
Um algoritmo semelhante é utilizado para templates de elementos de dados. Além disso, se algum elemento de dado não for suportado, para descobrir a razão da falha, basta clicar em Test.
17. Teste de métodos de alerta, que foi introduzido no Zabbix 4.4 e é importante na integração do Zabbix com outros sistemas, como sistemas de tickets.

Teste de métodos de alerta
18. Suporte a macros personalizadas para prototypes de elementos de dados. Para determinar os valores de macros personalizadas, é possível utilizar macros LLD.

Uso de macros LLD para determinar valores de macros personalizadas
19. Suporte a dados Float64, que são necessários, principalmente, para monitorar valores muito grandes, requerem suporte no Zabbix para dados recebidos de agentes Prometheus.
No caso da instalação do Zabbix 5.0, a migração automática de dados para o tipo padrão Float64 não acontece. O usuário ainda tem a opção de usar os tipos de dados antigos. Os scripts de migração para Float64 são executados manualmente e alteram os tipos de dados nas tabelas históricas. A substituição automática não é utilizada devido ao longo tempo que consome.
20. Melhoria da escalabilidade do Zabbix 5.0: otimização da interface e eliminação de 'gargalos'
- As listas suspensas foram removidas, por exemplo, para a seleção de nós de rede, pois essa função não é escalável.
- Limites 'embutidos' foram introduzidos para tamanhos de tabelas Visão Geral.
- Novas funcionalidades foram adicionadas em Monitoramento > Hosts > Gráficos.
- Foi adicionada a função de paginação (Monitoramento > Hosts > Web) onde antes não existia.
21. Compressão aprimorada
A compressão no Zabbix é baseada na extensão para PostgreSQL — TimescaleDB (a partir do Zabbix 4.4). A TimescaleDB oferece particionamento automático do banco de dados e melhora seu desempenho, pois a eficiência da TimescaleDB não depende realmente do tamanho do banco de dados.
No Zabbix 5.0 em Administração > Geral > Manutenção pode-se configurar, por exemplo, a compressão de dados com mais de 7 dias. Isso reduz significativamente o espaço em disco necessário (quase dez vezes, de acordo com os usuários), melhorando a economia de espaço em disco e aumentando a eficiência.

Compressão usando TimescaleDB
22. Configuração de SNMP no nível da interface. No Zabbix 5.0, em vez de três tipos de itens de dados, apenas um é utilizado — agente SNMP. Todos os atributos SNMP foram transferidos para o nível da interface dos nós de rede, simplificando assim os templates, a troca entre versões SNMP, etc.

Configuração de SNMP no nível da interface
23. A dependência de monitoramento da disponibilidade dos nós de rede em relação à disponibilidade do proxy permite exibir o problema de disponibilidade do proxy como prioritário caso os nós de rede estejam indisponíveis ao monitorar usando um gatilho com a função nodata:
{HostA:item.nodata(1m)}=1
A disponibilidade dos nós de rede é determinada pela disponibilidade do proxy
Função nodata que, por padrão, considera a disponibilidade do proxy. Para uma verificação mais estrita, que não leva em conta a disponibilidade do proxy, utiliza-se o segundo parâmetro — strict:
{HostA:item.nodata(1m,strict)}=124. Gerenciamento de regras de descoberta de baixo nível. No Zabbix 5.0, um filtro LLD foi introduzido, permitindo visualizar, entre outras coisas, regras de descoberta não suportadas

Filtro LLD
25. A possibilidade de desmarcar um problema (unacknowledge) permite corrigir erros e é útil na criação de fluxos de trabalho que dependem da confirmação do problema.

Desmarcação do problema
26. Alteração das regras de descoberta de baixo nível —a capacidade de adicionar exceções ao detectar objetos como resultado da monitoração de sistemas de arquivos, que permite, em detecções de baixo nível, criar ou não criar determinados objetos, gatilhos, elementos de dados etc., alterar a importância de problemas, adicionar tags para certos objetos, excluir objetos, como sistemas de arquivos temporários, da busca, mudar o intervalo de atualização de dados, etc.

Exclusão da detecção de baixo nível de sistemas de arquivos temporários
Por exemplo, é possível alterar o nível de prioridade dos gatilhos para sistemas de arquivos Oracle detectados, mantendo o nível de prioridade de gatilhos de outros sistemas de arquivos inalterado.

Mudança do nível de prioridade dos gatilhos para sistemas de arquivos específicos
27. Novos macros no Zabbix 5.0 ajudam a melhorar a qualidade da monitoração.

Novos macros no Zabbix 5.0
28. Outras novidades no Zabbix 5.0:

Melhorias no Zabbix 5.0
29. Fim do suporte

Funcionalidade não suportada
Conclusão
Atualizar para o Zabbix 5.0 é muito simples! Instale e execute novos arquivos binários para o servidor e arquivos do frontend, e o servidor atualizará automaticamente seu banco de dados.
Informações sobre o procedimento de atualização do Zabbix estão disponíveis em:
IMPORTANTE!
- A atualização de dados históricos para o formato Float64 não é obrigatória.
- Os dados do TimescaleDB estão disponíveis apenas para leitura.
- Versão mínima requerida PHP 7.2.
- DB2 não é suportado como backend para o servidor Zabbix
(!) Você pode assistir aos vídeos e slides das apresentações de Alexey Vladychev e outros palestrantes do Zabbix Meetup Online (Russo) .
Fonte: habr.com





