Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.
Table of Contents

11 Notas de atualização para 7.0.0

Estas notas são para atualização do Zabbix 6.4.x para o Zabbix 7.0.0.

Todas as notas estão agrupadas em:

  • Alterações incompatíveis - alterações que podem quebrar instalações existentes e outras informações críticas relacionadas ao processo de atualização
  • Outras - todas as demais informações descrevendo as mudanças na funcionalidade do Zabbix

Veja também:

  • Procedimento de atualização para todas as informações relevantes sobre atualização a partir de versões anteriores ao Zabbix 6.4.0;
  • Atualizando cluster HA para instruções sobre atualização de servers em um cluster de alta disponibilidade (HA).

Processo de atualização

Para concluir uma atualização bem-sucedida do Zabbix server no MySQL/MariaDB, pode ser necessário definir GLOBAL log_bin_trust_function_creators = 1 no MySQL se o log binário estiver ativado, não houver privilégios de superusuário e log_bin_trust_function_creators = 1 não estiver definido no arquivo de configuração do MySQL.

Para definir a variável usando o console do MySQL, execute:

mysql> SET GLOBAL log_bin_trust_function_creators = 1;

Após a conclusão bem-sucedida da atualização, esta opção pode ser desativada:

mysql> SET GLOBAL log_bin_trust_function_creators = 0;

Mudanças incompatíveis

Falha do servidor com TimescaleDB após atualização para 7.0.1 a partir de 7.0.0

Atualizar para o Zabbix 7.0.1 (ou posterior) a partir do Zabbix 7.0.0 com TimescaleDB resulta em uma falha do servidor. Esse problema é causado por uma solução alternativa para um problema de job de compressão na tabela auditlog no Zabbix 7.0 que altera irreversivelmente a política de compressão da tabela auditlog.

Veja problemas conhecidos para detalhes de como corrigir manualmente a tabela auditlog.

Se você ainda não atualizou para o Zabbix 7.0.0, observe que não deve haver tais problemas para atualizações de versões do Zabbix anteriores à 7.0 para a 7.0.1. Para instruções de atualização, consulte Atualizando o schema do TimescaleDB.

Erro de restauração do banco de dados com PostgreSQL/TimescaleDB após atualização da versão 7.0.0-7.0.4

Usar o pg_restore para restaurar um backup do PostgreSQL ou TimescaleDB criado no Zabbix 7.0.0-7.0.4 resultará em um erro de função base36_decode ausente, fazendo com que a restauração falhe. Esse erro ocorre ao restaurar um backup criado com pg_dump.

Veja problemas conhecidos para detalhes sobre como corrigir esse problema manualmente antes de criar o backup.

Se você ainda não atualizou para o Zabbix 7.0.0, observe que não deve haver tais problemas para atualizações de versões anteriores ao Zabbix 7.0 para a 7.0.5. Para instruções de atualização, consulte Atualizando o schema do TimescaleDB.

Escape de barras invertidas nos parâmetros da função de histórico

O escape adequado de barras invertidas foi adicionado nos parâmetros de string da função de histórico.

Como barras invertidas adicionais são adicionadas durante a atualização de versões do Zabbix anteriores à 7.0, isso leva a parâmetros mais longos, o que pode resultar em funções de trigger quebradas se o comprimento do parâmetro exceder o tamanho máximo de dados de 255 caracteres.

Para evitar esse problema, sugere-se mover manualmente parâmetros longos para macros de usuário antes da atualização.

Observe que, desde o Zabbix 7.0.11, verificações adicionais para o comprimento do parâmetro resultante foram adicionadas para atualizações de versões do Zabbix anteriores à 7.0. Se o comprimento resultante exceder o tamanho máximo, tais parâmetros não são atualizados, enquanto uma mensagem de aviso é impressa nos logs pedindo aos usuários que corrijam manualmente os parâmetros listados.

Veja também problemas de atualização relacionados ao escape.

Versão mínima do PHP necessária

A versão mínima do PHP necessária foi alterada de 7.4.0 para 8.0.0.

Local padrão para o arquivo de configuração do agent no Windows

O local padrão onde o agent do Zabbix no Windows procura o arquivo de configuração foi alterado. Agora o agent o procura no diretório onde o binário do agent zabbix_agentd.exe está localizado (em vez de C:\zabbix_agentd.conf, como anteriormente).

O agent 2 do Zabbix no Windows já procurava o arquivo de configuração padrão no diretório onde o binário zabbix_agent2.exe está localizado. No entanto, na nova versão o agent 2 espera que o arquivo de configuração seja nomeado como zabbix_agent2.conf (em vez de zabbix_agent2.win.conf)

Veja também: Instalando o agent do Zabbix no Windows.

Valores vazios permitidos na configuração do plugin do agent 2

Agora, valores vazios são permitidos nos parâmetros de configuração relacionados ao plugin no agent 2 do Zabbix.

TimescaleDB 1.x não é mais suportado

O suporte ao TimescaleDB 1.x foi removido.

Tipos de dados de precisão dupla no TimescaleDB

Antes de atualizar para o Zabbix 7.0.0, é necessário atualizar manualmente o TimescaleDB para usar tipos de dados de precisão dupla se o TimescaleDB for usado com compressão. Você pode saber se o TimescaleDB não está usando tipos de dados de precisão dupla pelo aviso na seção Informações do sistema do frontend ou no log do server do Zabbix: "O banco de dados não foi atualizado para usar valores de precisão dupla. O suporte para o tipo numérico antigo será removido em versões futuras."

Para mais informações, consulte Atualizando para valores numéricos de faixa estendida.

Auditlog convertido em hypertable no TimescaleDB

A tabela auditlog foi convertida em hypertable no TimescaleDB em novas instalações para se beneficiar do particionamento automático por tempo (7 dias por padrão) e melhor desempenho.

Para atualizar com sucesso instalações existentes, consulte Atualizando o schema do TimescaleDB.

Veja também: Versões do TimescaleDB suportadas

Tabela de banco de dados separada para proxies

Os registros de proxy foram movidos da tabela hosts e agora são armazenados na nova tabela proxy.

Além disso, os dados operacionais dos proxies (como último acesso, versão, compatibilidade) foram movidos da tabela host_rtdata e agora são armazenados na nova tabela proxy_rtdata.

Há também um novo objeto proxy na API. Todas as operações com proxies devem ser atualizadas para serem feitas por meio desse novo objeto proxy.

Tempo limite de execução da consulta para itens de monitoramento de banco de dados

Com base nas alterações na configuração de tempo limite do item, tanto o tempo limite de login ODBC quanto o tempo limite de execução da consulta para itens de monitoramento de banco de dados agora são limitados ao valor do parâmetro Timeout definido no formulário de configuração do item.

Itens de agent/agent2 atualizados

  • wmi.get e wmi.getall, quando usados com o Zabbix agent 2, agora retornam um JSON com valores booleanos representados como strings (por exemplo, "RealTimeProtectionEnabled": "True" em vez de "RealTimeProtectionEnabled": true retornado anteriormente) para corresponder ao formato de saída desses itens no Zabbix agent;
  • oracle.ts.stats possui um novo parâmetro conname para especificar o nome do container de destino. O formato JSON dos dados retornados foi atualizado. Quando nenhum tablespace, type ou conname for especificado nos parâmetros da chave, os dados retornados incluirão um nível adicional de JSON com o nome do container, permitindo a diferenciação entre containers.
  • Itens net.dns.* não podem mais ser configurados sem o parâmetro name. Embora sempre listado como obrigatório, o parâmetro name, se omitido, anteriormente era resolvido para um valor padrão (zabbix.com), o que não é mais o caso.

Para a lista de alterações de itens que não quebram a compatibilidade, consulte Novidades no Zabbix 7.0.0.

Traps SNMP com alta disponibilidade do Zabbix

O Zabbix agora pode ler arquivos de trap SNMP do local correto caso o nó ativo seja alternado em uma configuração de alta disponibilidade.

No entanto, para que essa funcionalidade funcione, é necessário atualizar o formato de data/hora em todos os scripts bash, perl e SNMPTT para "%Y-%m-%dT%H:%M:%S%z" (ou seja, 2024-01-10T11:56:14+0300).

Tamanho máximo e número de widgets do dashboard aumentados

A largura padrão foi aumentada 3 vezes para todos os widgets. Observe que, se você estiver usando widgets personalizados, talvez seja necessário atualizar os respectivos parâmetros do arquivo manifest.json (por exemplo, ao configurar um widget Clock personalizado, o parâmetro width deve ser alterado de 4 para 12).

Agora, um widget pode ter até 72 colunas de largura (anteriormente 24) e de 1 a 64 linhas de altura (anteriormente de 2 a 32). Portanto, o dashboard agora pode conter até 72 widgets horizontalmente.

Histórico de item e widgets de Texto simples

O novo widget de dashboard Histórico de item substituiu o widget Texto simples, oferecendo várias melhorias.

Ao contrário do widget Texto simples, que exibia apenas o dado mais recente do item em texto simples, o widget Histórico de item suporta várias opções de exibição para múltiplos tipos de item (numérico, caractere, log, texto e binário). Por exemplo, ele pode mostrar barras de progresso ou indicadores, imagens para tipos de dados binários (útil para itens de navegador) e destacar valores de texto (útil para monitoramento de arquivos de log).

Após a atualização, todos os widgets Texto simples previamente configurados serão automaticamente substituídos por widgets Histórico de item, mantendo as mesmas configurações. No entanto, quaisquer scripts de API que referenciem o widget Texto simples devem ser atualizados manualmente.

Alterações na resolução de certas macros internas após a atualização para 7.0.4

No Zabbix 7.0.4, o comportamento de resolução das macros {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {EVENT.CAUSE.*}, {EVENT.TAGS.*} e {EVENT.SYMPTOMS} foi corrigido para garantir consistência com outras macros internas. Agora, elas serão resolvidas como *UNKNOWN* se ocorrer um erro ao avaliar seu valor.

Como resultado dessa alteração, para garantir o funcionamento adequado, é necessário atualizar os tipos de mídia para as seguintes integrações: iTop, Jira Service Desk, ManageEngine ServiceDesk, SolarWinds Service Desk.

Essa alteração também pode afetar quaisquer scripts personalizados ou integrações que utilizem as macros mencionadas acima.

Mudanças na API

Veja a lista de mudanças na API no Zabbix 7.0.0.

Outros

Oracle DB obsoleto

O suporte ao Oracle como banco de dados backend está obsoleto desde o Zabbix 7.0 e espera-se que seja completamente removido em versões futuras.

Verificação de atualização de software

Uma verificação de atualização de software agora é adicionada por padrão a novas instalações e instalações existentes - o frontend do Zabbix se comunicará com o endpoint público do Zabbix para verificar atualizações.

Você pode desabilitar essa verificação definindo AllowSoftwareUpdateCheck=0 na configuração do server.

Valores de ponto flutuante truncados para itens inteiros

Agora, se um valor de ponto flutuante for recebido para um item inteiro sem sinal, o valor será truncado da parte decimal e salvo como um inteiro. Anteriormente, um valor de ponto flutuante tornava um item inteiro não suportado.

Formato de hora dos EUA

As exibições de hora e data no frontend agora estão em conformidade com o padrão de exibição de hora/data dos EUA quando o idioma padrão (en_US) do frontend é usado.

Antes Agora

Pollers assíncronos

Após a atualização, todas as verificações de agent, HTTP agent e SNMP walk[OID] serão movidas para pollers assíncronos.

Detectando recursos da biblioteca cURL em tempo de execução

Anteriormente, os recursos da biblioteca cURL eram detectados no momento da compilação do Zabbix server, proxy ou agent. Se os recursos do cURL fossem atualizados, para utilizá-los, o respectivo componente do Zabbix precisava ser recompilado.

Agora, apenas um reinício é necessário para que os recursos atualizados da biblioteca cURL fiquem disponíveis no Zabbix. A recompilação não é mais necessária. Isso é válido para o Zabbix server, proxy ou agent.

Além disso:

  • A versão mínima exigida do cURL em tempo de compilação foi elevada para 7.19.1;
  • Ao ser compilado, o Zabbix apenas verifica se a biblioteca cURL está disponível (se solicitado) e atende ao requisito de versão;
  • Ao emitir um erro da biblioteca cURL em tempo de execução, a versão em uso será adicionada (por exemplo, "A biblioteca cURL não suporta SSL/TLS (usando a versão 7.88.1)");
  • Quando o Zabbix server é iniciado e a autenticação SMTP é registrada, ele escreverá a disponibilidade da autenticação SMTP da biblioteca cURL em uso.

Alterações na configuração do timeout do item

Após a atualização, os timeouts globais para todos os tipos de item suportados serão definidos com base no valor do parâmetro Timeout do arquivo de configuração do server. Se um proxy estiver configurado, por padrão, ele usará as configurações globais de timeout do server.

Ao usar um server atualizado (versão 7.0.0 ou mais recente) com um proxy ou agent mais antigo, o proxy ou agent funcionará como antes:

  • o proxy usará o parâmetro Timeout do arquivo de configuração do proxy;
  • o agent usará o parâmetro Timeout do arquivo de configuração do agent.

Os parâmetros de timeout foram removidos dos arquivos de configuração dos plugins Modbus e MQTT. Os timeouts de execução das requisições agora podem ser definidos usando o formulário de configuração do item.

Itens de navegador

Um novo tipo de item - Item de navegador - foi adicionado ao Zabbix, permitindo o monitoramento de sites e aplicações web complexas usando um navegador. Itens de navegador permitem a execução de código JavaScript definido pelo usuário para simular ações relacionadas ao navegador, como clicar, inserir texto, navegar por páginas da web, etc.

Além disso, este recurso adiciona as seguintes alterações:

  • O template Website by Browser foi adicionado aos templates prontos para uso;
  • O tipo de item ITEM_TYPE_BROWSER (22) foi adicionado à exportação/importação de configuração de item, regra de descoberta de baixo nível e protótipo de item de template ou host;
  • Os parâmetros de arquivo de configuração do Zabbix server/proxy StartBrowserPollers e WebDriverURL foram adicionados;
  • O timeout do item de navegador foi adicionado aos timeouts do proxy ou aos timeouts globais (se um proxy não for usado);
  • O parâmetro de linha de comando -w <webdriver url> para habilitar o monitoramento de navegador foi adicionado à utilidade de linha de comando zabbix_js.

Concorrência na descoberta de rede

Na nova versão, o processo de descoberta de rede foi reformulado para permitir a concorrência entre as verificações de serviço. Um novo processo de gerenciador de descoberta foi adicionado juntamente com um número configurável de workers de descoberta (ou threads). O gerenciador de descoberta processa as regras de descoberta e cria um job de descoberta para cada regra com tarefas (verificações de serviço). As verificações de serviço são coletadas e executadas pelos workers de descoberta.

O parâmetro StartDiscoverers agora determina o número total de workers de descoberta disponíveis para a descoberta. O número padrão de StartDiscoverers foi aumentado de 1 para 5, e o intervalo de 0-250 para 0-1000. Os processos discoverer das versões anteriores do Zabbix foram removidos.

Além disso, o número de workers disponíveis para cada regra agora é configurável no frontend. Este parâmetro é opcional. Durante a atualização, ele será definido como "Um", como nas versões anteriores do Zabbix.

Ícones substituídos por fontes

Todos os ícones no frontend foram trocados de imagens para fontes.

Filtro de dados mais recentes

Em MonitoramentoDados mais recentes, o subfiltro e os dados não são mais exibidos por padrão se o filtro não estiver definido. Observe, no entanto, que os filtros salvos anteriormente que foram definidos usando apenas o subfiltro permanecem inalterados. Nesses casos, o subfiltro permanecerá visível e os dados serão exibidos mesmo sem que o filtro principal seja definido.

Parâmetros de configuração

O valor padrão de vários parâmetros de configuração foi alterado:

  • O parâmetro de configuração BufferSize para o Zabbix agent 2 foi aumentado de 100 para 1000;
  • O parâmetro de configuração Plugins.<PluginName>.System.Capacity para o Zabbix agent 2 foi aumentado de 100 para 1000 (máximo). Observe que o parâmetro Plugins.<PluginName>.Capacity, obsoleto no Zabbix 6.0, foi removido completamente;
  • O parâmetro de configuração StartAgents para o Zabbix agent foi aumentado de 3 para 10. Observe que, para sistemas menores (ou seja, Raspberry Pi), o valor padrão pode permanecer 3.

Essas alterações não afetam instalações existentes onde esses parâmetros estão definidos explicitamente.

Cálculos agregados

Várias funções agregadas foram atualizadas. Agora:

  • As funções agregadas agora também suportam tipos não numéricos para cálculo. Isso pode ser útil, por exemplo, com as funções count e count_foreach.
  • As funções agregadas count e count_foreach suportam os parâmetros opcionais operator e pattern, que podem ser usados para ajustar a filtragem de items e contar apenas valores que correspondam a determinados critérios.
  • Todas as funções foreach não incluem mais items não suportados na contagem.
  • A função last_foreach, anteriormente configurada para ignorar o argumento de período de tempo, agora o aceita como parâmetro opcional.

Tipo de valor numérico antigo (float) removido

Desde o Zabbix 5.0, o tipo de dado numérico (float) suporta precisão de aproximadamente 15 dígitos e intervalo de aproximadamente -1,79E+308 a 1,79E+308. O tipo numérico antigo foi desabilitado, mas ainda era suportado. A partir do Zabbix 6.4, ele foi depreciado e, a partir do Zabbix 7.0, foi totalmente removido.

Se sua instalação não foi atualizada para usar valores numéricos de intervalo estendido, o seguinte aviso é exibido em RelatóriosInformações do sistema: "Tabelas de histórico do banco de dados atualizadas: Não. O suporte ao tipo numérico antigo está depreciado. Atualize para valores numéricos de intervalo estendido".

Ao atualizar para o Zabbix 7.0, os seguintes bancos de dados são atualizados automaticamente:

  • MySQL
  • PostgreSQL/TimescaleDB (sem compressão)
  • Oracle

No entanto, para Oracle, versões antigas do MySQL e instalações grandes, recomenda-se atualizar o tipo de dado manualmente antes de atualizar para o Zabbix 7.0.

Para TimescaleDB com compressão, o banco de dados deve ser atualizado manualmente.

Para detalhes sobre a atualização, consulte Atualizando para valores numéricos de intervalo estendido.

Definindo o tipo de inicialização do serviço do agent no Windows

A opção para definir o tipo de inicialização do serviço do agent/agent 2 do Zabbix no Windows (-S --startup-type) foi adicionada. Esta opção permite configurar o serviço do agent/agent 2 para iniciar automaticamente na inicialização do Windows (automatic), após a inicialização dos serviços iniciados automaticamente ter sido concluída (delayed), quando iniciado manualmente por um usuário ou aplicativo (manual) ou para desabilitar o serviço completamente (disabled).

Ao realizar a instalação do agent do Windows a partir do MSI, o tipo de inicialização padrão no Windows Server 2008/Vista e versões posteriores agora é delayed se não for especificado de outra forma no parâmetro de linha de comando STARTUPTYPE parâmetro de linha de comando. Isso melhora a confiabilidade e o desempenho do serviço do agent/agent 2 do Zabbix no Windows, especialmente durante reinicializações do sistema.

Templates

Para novos templates e alterações em templates existentes, consulte Alterações em templates.

Nova estrutura de diretórios para arquivos relacionados ao banco de dados

Ao instalar o Zabbix a partir de pacotes e preparar o schema do banco de dados, a localização dos arquivos relacionados ao banco de dados foi alterada para corresponder melhor à estrutura de arquivos nas fontes:

  • Arquivos de inicialização base (schema.sql, data.sql, images.sql) estão localizados na raiz do diretório do banco de dados.
  • Arquivos/patches opcionais para atualização de tabelas do banco de dados estão localizados no diretório option-patches.
  • Extensões e complementos do banco de dados agora são subdiretórios, nomeados de acordo com a extensão e localizados no respectivo diretório do banco de dados.
  • Alterações específicas do TimescaleDB:
    • A abreviação tsdb foi substituída por timescaledb.
    • O diretório option-patches inclui os subdiretórios with-compression e without-compression; estes contêm arquivos/patches opcionais para atualização de tabelas do banco de dados dependendo das configurações de compressão do TimescaleDB.
    • O arquivo de criação do schema hypertable para o TimescaleDB foi movido para database/postgresql/timescaledb/schema.sql.

Além disso, observe as seguintes alterações:

  • Todos os arquivos history_pk_*.sql foram renomeados para history_upgrade_*.sql, e um arquivo trends_upgrade.sql foi adicionado para melhorar os scripts de atualização do banco de dados.
  • O arquivo double.sql foi removido devido à remoção do antigo tipo de valor numérico (float).

Abaixo está uma comparação da estrutura de diretórios anterior e atual para os bancos de dados MySQL e PostgreSQL.

# Anterior:                                         # Atual:
       
       database                                            database
       ├── mysql                                           ├── mysql
       │  ├── data.sql                                     │  ├── option-patches
       │  ├── double.sql                                   │  │  └── history_upgrade_prepare.sql
       │  ├── history_pk_prepare.sql                       │  ├── data.sql
       │  ├── images.sql                                   │  ├── images.sql
       │  └── schema.sql                                   │  └── schema.sql
       │                                                   │
       │                                                   │
       ├── postgresql                                      ├── postgresql
       │  ├── tsdb_history_pk_upgrade_no_compression       │  ├── option-patches
       │  │  ├── history_pk.sql                            │  │  └── history_upgrade_prepare.sql
       │  │  ├── history_pk_log.sql                        │  ├── timescaledb
       │  │  ├── history_pk_str.sql                        │  │  ├── option-patches
       │  │  ├── history_pk_text.sql                       │  │  │  ├── with-compression
       │  │  └── history_pk_uint.sql                       │  │  │  │  ├── history_upgrade.sql
       │  ├── tsdb_history_pk_upgrade_with_compression     │  │  │  │  ├── history_upgrade_log.sql
       │  │  ├── history_pk.sql                            │  │  │  │  ├── history_upgrade_str.sql
       │  │  ├── history_pk_log.sql                        │  │  │  │  ├── history_upgrade_text.sql
       │  │  ├── history_pk_str.sql                        │  │  │  │  ├── history_upgrade_uint.sql
       │  │  ├── history_pk_text.sql                       │  │  │  │  └── trends_upgrade.sql
       │  │  └── history_pk_uint.sql                       │  │  │  └── without-compression
       │  ├── data.sql                                     │  │  │     ├── history_upgrade.sql
       │  ├── double.sql                                   │  │  │     ├── history_upgrade_log.sql
       │  ├── history_pk_prepare.sql                       │  │  │     ├── history_upgrade_str.sql
       │  ├── images.sql                                   │  │  │     ├── history_upgrade_text.sql
       │  ├── schema.sql                                   │  │  │     ├── history_upgrade_uint.sql
       │  └── timescaledb.sql                              │  │  │     └── trends_upgrade.sql
       │                                                   │  │  └── schema.sql
       │                                                   │  ├── data.sql
       │                                                   │  ├── images.sql
       │                                                   │  └── schema.sql
       ├── ...                                             ├── ...

Atualize seus scripts, se houver, que contenham referências à estrutura de diretórios ou arquivos anteriores.

Protocolo JSON para verificações passivas do agent

Um protocolo baseado em JSON para verificações passivas do agent foi implementado.

Para compatibilidade com agents mais antigos, foi adicionado um failover para o antigo protocolo de texto simples. Se o agent retornar "ZBX_NOTSUPPORTED", o Zabbix irá armazenar em cache a interface como protocolo antigo e tentar novamente a verificação enviando apenas a chave do item em texto simples.

O Zabbix get agora pode ser executado com uma nova opção -P --protocol <valor>, onde "valor" pode ser:

  • auto - conecta usando o protocolo JSON, faz fallback e tenta novamente com o protocolo de texto simples (padrão);
  • json - conecta usando a chave do protocolo JSON;
  • plaintext - conecta usando o protocolo de texto simples, onde apenas a chave do item é enviada.

Se uma chave de item não for suportada, o Zabbix get agora retornará o código de saída 1 em vez de 0.