Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

5 Configuração do TimescaleDB

Visão geral

O Zabbix suporta TimescaleDB, uma solução de banco de dados baseada em PostgreSQL de particionando automaticamente os dados em pedaços baseados em tempo para oferecer suporte mais rápido desempenho em escala.

Atualmente TimescaleDB não é suportado pelo Zabbix procurador.

As instruções nesta página podem ser usadas para criar o banco de dados TimescaleDB ou migrando de tabelas PostgreSQL existentes para TimescaleDB.

Configuração

Assumimos que a extensão TimescaleDB já foi instalada no servidor de banco de dados (veja instalação instruções).

A extensão TimescaleDB também deve ser habilitada para o banco de dados específico por executando:

echo "CRIAR EXTENSÃO SE NÃO EXISTIR timescaledb CASCADE;" | sudo -u postgres psql zabbix

A execução deste comando requer privilégios de administrador de banco de dados.

Se você usa um esquema de banco de dados diferente de 'público', você precisa adicione uma cláusula SCHEMA ao comando acima. Por exemplo.:
echo "CRIAR EXTENSÃO SE NÃO EXISTE timescaledb SCHEMA yourschema CASCADE;" | sudo -u postgres psql zabbix

Em seguida, execute o script timescaledb.sql localizado em database/postgresql. Para novas instalações, o script deve ser executado após o O banco de dados PostgreSQL foi criado com esquema/dados iniciais (veja criação de banco de dados):

cat /usr/share/doc/zabbix-sql-scripts/postgresql/timescaledb.sql | sudo -u zabbix psql zabbix

A migração do histórico existente e dos dados de tendência pode levar muito tempo. O servidor Zabbix e o frontend devem estar inativos durante o período de migração.

O script timescaledb.sql define os seguintes parâmetros de manutenção:

  • Substituir o período do histórico do item
  • Substituir período de tendência do item

A fim de usar a arrumação particionada para o histórico e as tendências, tanto essas opções devem estar ativadas. É possível usar o particionamento TimescaleDB apenas para tendências (definindo Substituir período de tendência do item) ou apenas para histórico (Substituir o período do histórico do item).

Para PostgreSQL versão 10.2 ou superior e TimescaleDB versão 1.5 ou superior, o script timescaledb.sql define dois parâmetros adicionais:

  • Ativar a compactação
  • Comprimir registros com mais de 7 dias

Todos esses parâmetros podem ser alterados em AdministraçãoGeralArrumação 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.

Compression can be used only if both Override item history period and Override item trend period options are enabled.

All of these parameters can be changed in AdministrationGeneralHousekeeping after the installation.

You may want to run the timescaledb-tune tool provided by TimescaleDB to optimize PostgreSQL configuration parameters in your postgresql.conf.

Compressão do TimescaleDB

A compressão nativa do TimescaleDB é suportada a partir do Zabbix 5.0 para PostgreSQL versão 10.2 ou superior e TimescaleDB versão 1.5 ou superior para todas as tabelas Zabbix que são gerenciadas pelo TimescaleDB. Durante a atualização ou migração para o TimescaleDB, a compactação inicial das tabelas grandes pode levar muito tempo.

Observe que a compactação é compatível com a licença "timescale" da comunidade de escala de tempo e não é compatível com a licença "apache" do Apache 2.0. A partir do Zabbix 6.0.7, o Zabbix detecta se a compressão é suportada. Se não for suportado, uma mensagem de aviso será gravada no log do servidor Zabbix e os usuários não poderão habilitar a compactação no frontend.

Os usuários são incentivados a se familiarizar com a documentação de compactação do TimescaleDB antes de usar a compactação.

Observe que existem certas limitações impostas pela compactação, especificamente:

  • Modificações de partes compactadas (inserts, deletes, updates) não são permitidas
  • Alterações de esquema para tabelas compactadas não são permitidas.

As configurações de compactação podem ser alteradas no bloco Compressão de histórico e tendências na seção AdministraçãoGeralHousekeeping do Zabbix frontend.

Parâmetro Padrão Comentários
Enable compression Enabled Marcar ou desmarcar a caixa de seleção não ativa/desativa a compactação imediatamente. Como a compactação é feita pelo Housekeeper, as alterações entrarão em vigor em até 2 vezes o HousekeepingFrequency (definido em zabbix_server.conf)

Após desabilitar a compactação, novos fragmentos que caem no período de compactação não serão compactados. No entanto, todos os dados compactados anteriormente permanecerão compactados. Para descompactar partes compactadas anteriormente, siga as instruções na documentação do TimescaleDB.

Ao atualizar de versões mais antigas do Zabbix com suporte a TimescaleDB, a compactação não será habilitada por padrão.
Compress records older than 7d Este parâmetro não pode ser inferior a 7 dias.

Devido à imutabilidade dos fragmentos compactados, todos os dados atrasados (por exemplo, dados atrasados por um proxy) que forem mais antigos que esse valor serão descartados.