Em meados de maio foi lançada a versão Zabbix 5.0, e organizamos uma série de encontros online em diversos idiomas com o objetivo de demonstrar claramente à comunidade todas as mudanças e inovações. Convidamos você a ler o relatório de Alexey Vladyshev, diretor executivo e criador do Zabbix, no qual ele descreve passo a passo o que há de novo no Zabbix 5.0.
Zabbix 4.2 e Zabbix 4.4
Vamos começar com as mudanças que apareceram na versão Zabbix 4.0 em relação ao uso das versões LTS.
Na versão Zabbix 4.2, lançada em abril de 2019, surgiram os seguintes recursos:
Monitoramento de aceleração de alta frequência que permite escalonamento e maior NVPS, significando detecção e alertas mais rápidos de problemas sem sobrecarregar o Zabbix.
Coletando dados usando um agente HTTP.
Suporte para coleta de dados do Prometheus Pro.
O pré-processamento suporta validação e JavaScript, o que permite transformar quaisquer dados coletados.
Pré-processamento do lado do proxy, que permite um dimensionamento mais eficiente com proxies.
Gerenciamento aprimorado de tags - metainformações no nível do evento e do problema, com as quais é conveniente trabalhar, porque as tags são suportadas tanto no nível do modelo quanto no nível do host.
Em setembro passado, foi lançado o Zabbix 4.4, que oferecia os seguintes recursos:
Novo agente Zabbix.
Suporte a webhook para alertas e notificações, permitindo integração com sistemas externos.
Suporte ao TimescaleDB.
A base de conhecimento integrada para métricas e gatilhos tornou-se visível para os usuários do Zabbix. Por exemplo, os usuários podem usar descrições de itens e gatilhos em Monitoramento > Dados mais recentes.
Um novo padrão para modelos.
Zabbix5.0
Hoje falaremos sobre o lançamento LTS do Zabbix 5.0, que terá suporte por 5 anos. O suporte para a versão 4.4 termina após um mês. A versão LTS do Zabbix 3.0 terá suporte por mais 3,5 anos.
O Zabbix fornece monitoramento de muitas coisas, cuja lista pode ser especificada na página http://www.zabbix.com/integrations, onde são apresentados templates e plugins de monitoramento, inclusive para o novo agente.
Modelos disponíveis para monitoramento e integração
Além disso, existem possibilidades de integração com diversos sistemas, incluindo sistemas de tickets, sistemas ITSM e sistemas de entrega de mensagens utilizando Webhook.
Opções de integração
O Zabbix 5.0 expandiu o suporte integrado para integração com vários sistemas de tickets, bem como sistemas de alerta:
Integração com vários sistemas
A lista de modelos integrados para monitoramento de aplicativos e dispositivos foi ampliada:
Modelos integrados para monitoramento de aplicativos e dispositivos
Todas as atualizações estão disponíveis para download em Repositório Git.
Qualquer usuário ou desenvolvedor pode participar do Zabbix com produtos prontos – templates ou plugins, através de um procedimento simples:
Revisão da aplicação pela equipe de desenvolvimento. Se um plugin ou template estiver em conformidade com os padrões Zabbix, ele será incluído no produto e o trabalho de tal desenvolvedor será oficialmente suportado pela equipe Zabbix.
Zabbix é um software de código aberto que pode ser visualizado, estudado e modificado. O usuário tem a oportunidade de usar livremente o produto, participar do refinamento do programa ou usar o código para seus próprios novos programas. Por outro lado, a equipe Zabbix faz todos os esforços para garantir que o Zabbix possa ser facilmente instalado em diversas plataformas.
Os desenvolvedores Zabbix oferecem pacotes para quase todas as distribuições mais populares e diversas plataformas de virtualização. Além disso, o Zabbix pode ser instalado em uma nuvem pública com um clique. O Zabbix também está disponível nas plataformas Red Hat Openshift ou OpenStack.
Pacotes Zabbix para distribuições e plataformas
Suporte 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 de coleta de dados que podem ser executados por horas.
Suporta varreduras ativas paralelas e conexões persistentes com sistemas externos, o que é útil, por exemplo, para monitoramento eficaz de bancos de dados.
Suporta traps e eventos, o que é importante para monitorar, por exemplo, dispositivos MQTT.
A nova versão do agente é fácil de instalar (já que o novo agente suporta todas as funcionalidades anteriores).
Além disso, o novo agente do Zabbix 5.0 oferece suporte para armazenamento persistente de dados. Anteriormente, as informações não enviadas eram armazenadas apenas na memória buffer do agente, mas na nova versão é possível configurar o armazenamento dessas informações em disco.
Armazenamento permanente de dados
Isto é importante no caso de monitoramento de sistemas críticos e comunicações instáveis, pois uma grande quantidade de dados críticos é armazenada antes de ser enviada ao servidor Zabbix. A opção também é útil para conexões via satélite que podem não estar disponíveis por longos períodos de tempo. IMPORTANTE! O Zabbix 5.0 mantém suporte para o Zabbix Agent 1.
Mudanças de segurança no Zabbix 5.0
1. A nova versão suporta proxy HTTP para webhook, que permite fazer conexões do servidor Zabbix com sistemas de alerta externos de forma mais segura e controlada.
Caso você precise integrar um servidor Zabbix em uma rede local com um sistema externo, por exemplo, JIRA na nuvem, você pode manter a conexão através de um proxy HTTP, o que melhora a controlabilidade e confiabilidade da conexão.
2. Tanto para o agente antigo quanto para o novo, é possível selecionar quais cheques devem estar disponíveis em um determinado agente. Por exemplo, você pode limitar o número de verificações, essencialmente criando listas brancas e negras, e definir chaves suportadas.
Lista de permissões 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 selecionar algoritmos de criptografia para todos os componentes do Zabbix para evitar o uso de cifras inseguras para conexões TLS. Isto é importante para monitorar ambientes onde se aplicam determinados padrões de segurança.
Selecionando algoritmos de criptografia para conexões TLS
4. O Zabbix 5.0 introduziu suporte para conexões criptografadas com o banco de dados. Atualmente, apenas conexões criptografadas com PostgreSQL e MySQL estão disponíveis.
Conexões de banco de dados criptografadas
5. O Zabbix 5.0 mudou de MD5 para SHA256 para armazenar hashes de senhas de usuários no banco de dados, pois este é o algoritmo mais seguro no momento.
6. O Zabbix 5.0 suporta macros de usuário secretas para armazenar qualquer informação sensível, como senhas e tokens de API, às quais os usuários finais não têm acesso.
Macros secretas
7. Todas as conexões do Zabbix com sistemas externos e conexões internas com agentes são seguras. A criptografia é suportada usando certificados TLS ou usando uma criptografia de chave pré-compartilhada para conexão com agentes e proxies ou HTTPS. A segurança do lado do agente pode ser aprimorada por meio de listas brancas e negras. A interface funciona via HTTPS.
Conexões seguras
8. Suporte SAML para fornecer um ponto único de autenticação com um provedor de serviços de identidade confiável, para que as credenciais do usuário não saiam do firewall.
Identidade SAML
O suporte 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, bem como Azure, AWS ou Google Cloud Platform.
Facilidade de uso do Zabbix 5.0
1. Interface de usuário otimizada para telas amplas. Movemos o menu da parte superior, onde sempre há espaço para espaço, para o lado esquerdo da tela. O menu ainda é exibido nos modos completo, mínimo e oculto.
Interface otimizada para tela ampla
2. Copiando widgets de painéis permite criar novos PAINÉIS muito rapidamente. Para fazer isso, você precisa selecionar o widget desejado no PAINEL, clicar em Copiar
Copiando um widget
e insira o widget no painel desejado.
Colando um widget copiado
3. Exportar gráficos. Para copiar o gráfico e enviá-lo, por exemplo, por email, você pode obter o gráfico no formato PNG selecionando o widget desejado e clicando Baixe a imagem.
Exportar gráficos
4. Filtrar por tags: problema por gravidade e hosts problemáticos. Tornou-se possível, por exemplo, coletar dados sobre todos os problemas associados a um nó de rede em um data center.
Filtrar por tags
5. Suporte para módulos para estender a interface Zabbix. Para instalar um módulo independente, você precisa 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, por exemplo, adicionar itens.
Qualquer usuário pode escrever e integrar um módulo. Para isso, o módulo é copiado para a pasta de módulos, após o que fica visível na interface, onde pode ser ligado e desligado.
Adicionando um novo módulo
6. Facilidade de navegação pelos recursos associados aos nós da rede. Em Monitoramento > Hosts é exibida uma lista de dispositivos que o Zabbix monitora: hosts, serviços, dispositivos de rede, etc. Além disso, é possível navegar rapidamente pelas telas, gráficos e problemas de dispositivos específicos.
Removemos as guias Monitoramento > Gráficos e Monitoramento > Webs, e toda a navegação é feita através Monitoramento > Hosts. As informações exibidas podem ser filtradas, inclusive por tags, o que permite exibir dispositivos desabilitados
Navegando em recursos relacionados a nós de rede
Por exemplo, você pode selecionar dispositivos classificados como serviços de usuário final selecionando ‘e eficaz', bem como definir o nível de importância desses problemas.
Opções de filtragem
7. Nova operação de pré-processamento – ‘Substituir’ permite que você faça diversas coisas úteis que antes só podiam ser feitas usando expressões regulares, que são bastante complexas para muitos usuários. Substituir permite que você substitua realmente uma string ou caractere por outro, permitindo simplesmente converter os dados recebidos em formato de texto em uma representação numérica.
Substituir operador
8. Operador JSONPath, que permite extrair nomes de atributos de uma forma conveniente
Operador para JSONPath
9. Exibir mensagens de e-mail do Zabbix. Nas versões anteriores, todos os emails do Zabbix na pasta Caixa de entrada foram exibidos em uma lista. A partir do Zabbix 5.0, as mensagens serão agrupadas por problema.
Agrupando 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á negado.
Suporte para macros personalizadas
11. Mudança em massa de macros de usuário para nós de rede. Na nova versão, você pode abrir uma lista de modelos, selecionar uma lista de hosts e adicionar macros ou alterar os valores das macros existentes,
Adicionar e editar macros personalizadas
e também excluir determinadas ou todas as macros dos modelos selecionados para nós de rede.
Removendo macros individuais ou de todos os usuários
12. Controle do formato da mensagem no nível do método de notificação. Em Tipos de mídia aba apareceu Modelos de mídia com modelos de mensagens.
Modelos de Método de Notificação
Você pode definir diferentes modelos para diferentes tipos de mensagens.
Definindo um modelo para um tipo de mensagem
Nas versões anteriores, era necessário gerenciar essas mensagens no nível de ação, definindo as mensagens e o item padrão.
Gerenciando modelos no nível da atividade
Na nova versão, tudo pode ser definido em nível global e, em nível de mensagem, as configurações globais podem ser reescritas.
Gerencie modelos globalmente
Para a maioria dos usuários, é suficiente definir formatos de modelo no nível do método de mídia. Além disso, após importar um novo método de notificação, todos os formatos de modelo correspondentes já fazem parte dele.
13. Uso mais amplo de JavaScript. JavaScript é usado para pré-processamento de scripts, Webhook, etc. Na linha de comando, trabalhar com JavaScript não é fácil.
Zabbix 5.0 usa um novo utilitário - zabbix_js, que executa JavaScript que aceita dados, os processa e gera valores de saída.
Utilitário zabbix_js
Exemplos de uso do utilitário zabbix_js
14. Suporte para operações de texto com expressões de gatilho permite verificar as versões dos componentes instalados, comparar valores com quaisquer constantes, e a constante pode ser uma macro personalizada,
compare o último valor com o anterior, por exemplo, quando se trata de dados de texto,
{host:text.last()}<>{host.text.prev()}
ou
{host:text.last(#1)}<>{host.text.prev(#2)}
ou compare valores de texto de diferentes métricas.
{hostA:textA.last()}={hostB:textB.last()}
15. Automação e descoberta.
Novas verificações JMX estão disponíveis para recuperar e descobrir uma lista de contadores JMX, o que é muito útil para, por exemplo, monitorar aplicações Java, bem como automatizar a criação de itens de monitoramento, métricas, gatilhos e gráficos.
jmx.get[]
и
jmx.discovery[]
Verificações JMX
A nova versão possui uma chave para monitorar contadores de desempenho do Windows, que é suportada por agentes antigos e novos em russo e inglês e permite, por exemplo, detectar o número de processadores, sistemas de arquivos, serviços, etc.
Monitorando contadores de desempenho do Windows usando uma chave contador_perf
O monitoramento ODBC ficou muito mais fácil. Anteriormente, todos os parâmetros para monitoramento ODBC tinham que ser descritos em um arquivo externo /etc/odbc.ini, que não era acessível pela interface do Zabbix. Na nova versão, quase todos os parâmetros podem fazer parte da chave métrica.
Chave métrica com descrição dos parâmetros
Na nova versão, você pode definir o nome do servidor e a porta em nível métrico, e o nome e a senha para acesso usando macros secretas para segurança.
Usando macros secretas
Ao utilizar o protocolo IPMI para monitoramento de equipamentos, tornou-se possível criar templates mais simples para automação utilizando ipmi.get.
ipmi.get
16. Testando elementos de dados da interface. O Zabbix 5.0 introduziu a capacidade de testar alguns itens e, mais importante, modelos de itens da interface.
Testando Elementos de Dados
Quaisquer problemas que surjam são exibidos na interface.
Exibindo problemas na interface
Um algoritmo semelhante é usado para modelos de itens. Além disso, se algum item de dados não for suportado, você poderá descobrir por que ele falhou simplesmente clicando Test.
17. Testando métodos de notificação, que apareceu no Zabbix 4.4, é preservado, o que é importante na integração do Zabbix com outros sistemas, por exemplo, sistemas de tickets.
Testando métodos de notificação
18. Suporte para macros personalizadas para protótipos de itens. Você pode usar macros LLD para definir valores de macro personalizados.
Usando macros LLD para definir valores de macro personalizados
19. Suporte de dados Float64, que são necessários principalmente para monitorar valores muito grandes, são necessários no Zabbix para suportar dados recebidos de agentes Prometheus.
Se você instalar o Zabbix 5.0, a migração automática dos dados para o padrão Float64 não ocorre. O usuário ainda tem a opção de usar tipos de dados antigos. Os scripts de migração Float64 são executados manualmente e alteram os tipos de dados nas tabelas históricas. A substituição automática não é usada porque leva muito tempo.
20. Escalabilidade aprimorada do Zabbix 5.0: otimização da interface e eliminação de gargalos
As listas suspensas, por exemplo para seleção de hosts, foram eliminadas porque esse recurso não é escalonável.
Existem limites “integrados” para tamanhos de mesa Visão geral.
Novas oportunidades surgiram em Monitoramento > Hosts > Gráficos.
A função de paginação apareceu (Monitoramento > Hosts > Web) onde não estava.
21. Compressão melhorada
A compactação no Zabbix é baseada em uma extensão para PostgreSQL - TimescaleDB (desde Zabbix 4.4). O TimescaleDB fornece particionamento automático de banco de dados e melhora o desempenho do banco de dados porque o desempenho do TimescaleDB é praticamente independente do tamanho do banco de dados.
No Zabbix 5.0 Administração > Geral > Limpeza Você pode configurar, por exemplo, a compactação de dados com mais de 7 dias. Isso reduz significativamente o espaço em disco necessário (em quase dez vezes, segundo os usuários), o que melhora a economia de espaço em disco e melhora o desempenho.
Compactação com TimescaleDB
22. Configurando SNMP no nível da interface. No Zabbix 5.0, em vez de três tipos de elementos de dados, apenas um é usado - agente SNMP. Todos os atributos SNMP foram movidos para o nível da interface do host, o que torna possível simplificar modelos, alternar entre versões SNMP, etc.
Configurando o SNMP no nível da interface
23. Dependência do monitoramento da disponibilidade dos nós da rede na disponibilidade de um proxy permite exibir o problema de disponibilidade de proxy como prioridade em caso de indisponibilidade de nós da rede ao monitorar usando um gatilho com a função sem dados:
{HostA:item.nodata(1m)}=1
A disponibilidade dos nós da rede é determinada pela disponibilidade do proxy
Função sem dados por padrão leva em consideração a disponibilidade do proxy. Para uma verificação mais rigorosa que não leva em consideração a disponibilidade do proxy, é utilizado o segundo parâmetro - rigoroso:
{HostA:item.nodata(1m,strict)}=1
24. Gerenciando regras de descoberta de baixo nível. O Zabbix 5.0 introduziu um filtro LLD que permite visualizar regras de detecção não suportadas
Filtro LLD
25. Capacidade de não reconhecer o problema (desconhecer) permite corrigir erros e é útil na criação de fluxos de trabalho que dependem da confirmação do problema.
Desconhecer o problema
26. Alteração das regras de descoberta de baixo nível — a capacidade de adicionar exceções ao detectar objetos como resultado do monitoramento de sistemas de arquivos, o que permite a detecção de baixo nível para criar ou não certos objetos, gatilhos, elementos de dados, etc., alterar a gravidade dos problemas, adicionar tags para determinados objetos , exclua objetos, por exemplo, sistemas de arquivos temporários, da pesquisa, altere 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, você pode alterar o nível de prioridade do acionador para sistemas de arquivos Oracle descobertos e deixar o nível de prioridade do acionador para outros sistemas de arquivos no mesmo nível.
Alterando o nível de prioridade dos acionadores para sistemas de arquivos individuais
27. Novas macros no Zabbix 5.0 permitem melhorar a qualidade do monitoramento.
Novas macros no Zabbix 5.0
28. Outras inovações 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 fácil! Instale e execute novos binários de servidor e arquivos de front-end, e o servidor atualizará automaticamente seu banco de dados.
Informações sobre o procedimento de atualização do Zabbix estão disponíveis em: https://www.zabbix.com/documentation/current/manual/installation/upgrade_notes_500
IMPORTANTE!
A atualização dos dados históricos para o formato Float64 é opcional.
Os dados do TimescaleDB são somente leitura.
Versão mínima necessária do PHP7.2.
DB2 não é suportado como backend para servidor Zabbix
(!) Vídeos e slides de apresentações de Alexey Vladyshev e outros palestrantes do Zabbix Meetup Online (Russo) podem ser visualizados aqui.