O Zabbix suporta o TimescaleDB, uma solução de banco de dados baseada em PostgreSQL que particiona automaticamente os dados em blocos baseados em tempo para suportar um desempenho mais rápido em grande escala.
Atualmente, o TimescaleDB não é suportado pelo proxy Zabbix.
As instruções nesta página podem ser usadas para os seguintes cenários:
Pré-requisitos: Extensão TimescaleDB de uma versão suportada instalada no servidor de banco de dados. Para instruções de instalação, consulte a documentação do TimescaleDB.
Habilite a extensão TimescaleDB para o banco de dados específico executando:
A execução deste comando requer privilégios de administrador do banco de dados.
Se você usar um schema de banco de dados diferente de 'public', será necessário adicionar uma cláusula SCHEMA ao comando acima. Exemplo:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA yourschema CASCADE;" | sudo -u postgres psql zabbix
Em seguida, execute o script postgresql/timescaledb/schema.sql. Para novas instalações, o script deve ser executado após o banco de dados PostgreSQL regular ter sido criado com o schema/dados iniciais (consulte criação do banco de dados).
Por favor, ignore mensagens de aviso informando que as melhores práticas não estão sendo seguidas ao executar o script schema.sql em TimescaleDB versão 2.9.0 ou superior. Independentemente deste aviso, a configuração será concluída com sucesso.
A migração dos dados existentes de histórico, tendências e log de auditoria pode levar muito tempo. O servidor e o frontend do Zabbix devem estar desligados durante o período de migração.
O script schema.sql define os seguintes parâmetros de limpeza:
Para usar a limpeza particionada para histórico e tendências, ambas as opções devem ser habilitadas. Também é possível habilitar a substituição individualmente, apenas para histórico ou apenas para tendências.
Para PostgreSQL e TimescaleDB, o script postgresql/timescaledb/schema.sql define dois parâmetros adicionais:
Para remover com sucesso os dados compactados pelo housekeeper, as opções Substituir período de histórico do item e Substituir período de tendências do item devem estar ativadas. Se a substituição estiver desativada e as tabelas tiverem blocos compactados, o housekeeper não removerá dados dessas tabelas e avisos sobre configuração incorreta serão exibidos nas seções Housekeeping e Informações do sistema.
Todos esses parâmetros podem ser alterados em Administração → Housekeeping após a instalação.
Você pode querer executar a ferramenta timescaledb-tune fornecida pelo TimescaleDB para otimizar os parâmetros de configuração do PostgreSQL em seu postgresql.conf.
Ao atualizar o Zabbix para uma versão que contém novos hypertables do TimescaleDB, o servidor Zabbix não configura automaticamente esses hypertables (por exemplo, ao atualizar do Zabbix 6.4 para o 8.0, pois as versões 7.0.0 e 7.0.2 introduziram novos hypertables).
Para configurar os novos hypertables do TimescaleDB, siga estas etapas:
postgresql/timescaledb/schema.sql; isso configura os novos hypertables do TimescaleDB. Observe que, desde o Zabbix 7.0.0, o local e o nome do script mudaram de postgresql/timescaledb.sql para postgresql/timescaledb/schema.sql.Ignore as mensagens de aviso informando que as melhores práticas não estão sendo seguidas ao executar o script schema.sql em versões do TimescaleDB 2.9.0 ou superiores. Independentemente desse aviso, a configuração será concluída com sucesso.
A compressão nativa do TimescaleDB é suportada para todas as tabelas do Zabbix que são hypertables do TimescaleDB. Durante a atualização ou migração para o TimescaleDB, a compressão inicial das grandes tabelas pode levar muito tempo.
Observe que a compressão é suportada sob a licença Timescale Community "timescale" e não é suportada sob a licença Apache 2.0 "apache". Se o Zabbix detectar que a compressão não é suportada, uma mensagem de aviso será registrada no log do Zabbix server e os usuários não poderão habilitar a compressão no frontend.
Recomenda-se que os usuários se familiarizem com a compressão na documentação do TimescaleDB antes de usar a compressão.
Observe que existem algumas limitações impostas pela compressão, especificamente:
As configurações de compressão podem ser alteradas no bloco Compressão de histórico, tendências e log de auditoria na seção Administração → Limpeza do frontend do Zabbix.
| Parâmetro | Padrão | Comentários |
|---|---|---|
| Habilitar compressão | Habilitado | Marcar ou desmarcar a caixa de seleção não ativa/desativa a compressão imediatamente. Como a compressão é tratada pelo Housekeeper, as alterações entrarão em vigor em até 2 vezes o número de horas definido em HousekeepingFrequency (configurado em zabbix_server.conf)Após desabilitar a compressão, novos chunks que entrarem no período de compressão não serão comprimidos. No entanto, todos os dados previamente comprimidos permanecerão comprimidos. Para descomprimir chunks previamente comprimidos, siga as instruções na documentação do TimescaleDB. Ao atualizar de versões mais antigas do Zabbix com suporte ao TimescaleDB, a compressão não será habilitada por padrão. |
| Comprimir registros mais antigos que | 7d | Este parâmetro não pode ser inferior a 7 dias. Devido à imutabilidade dos chunks comprimidos, todos os dados atrasados (por exemplo, dados atrasados por um proxy) que sejam mais antigos que esse valor serão descartados. |
Para melhor desempenho na atualização de tendências, você pode querer reduzir o "chunk_time_interval" para as tabelas trends e trends_uint de 30 dias para 7 dias ou menos, dependendo de quantos items usam tendências. O objetivo dessa configuração é aderir às melhores práticas do TimescaleDB e garantir que o tamanho do chunk permaneça dentro dos recursos disponíveis do sistema.