Erros na atualização de versões, ou recuperação de backup de banco de dados do Zabbix

Isaque Profeta
Zabbix Brasil
Published in
3 min readAug 6, 2020

Em resumo, é preciso executar o processo do zabbix_server após atualização ou restauração do banco de dados ANTES de acessar o Frontend PHP no browser.

O problema recorrente

Participo do grupo de Telegram do Zabbix Brasil e várias vezes vejo uma pergunta sobre o mesmo erro quando se tenta fazer a atualização (ou restauração de backup) de versão mais antiga para uma versão mais nova da ferramenta de monitoração Zabbix, erro esse que ocorre quando se tenta acessar o Frontend PHP:

“Database error: The frontend does not match Zabbix database. Current database version (mandatory/optional): 4020000/4020001. Required mandatory version: 4040000. Contact your system administrator.”

“Entender o problema é igual a saber 50% da solução”

Esse erro normalmente acontece porque o Zabbix tem no seu banco de dados uma tabela com um identificador de versão do banco, esse parâmetro pode ser alterado pelo daemon do zabbix_server quando o mesmo inicia. O Frontend PHP tem o mesmo identificador fixo no código de acordo com a versão, e ao ser acesso via web browser ele compara a sua versão Major (Os três dígitos iniciais) com a do Zabbix Server. Alguns exemplos de identificador de versão:

  • Versão 3.4: 3040000
  • Versão 4.0: 4000000
  • Versão 4.4: 4040000
  • Versão 5.0: 5000000

Primeiro caso — Frontend novo com banco de dados velho…

Conforme vimos então, num primeiro caso em que o identificador do banco de dados esteja na versão 4.4 (Id 4040000) e ocorra atualização da ferramenta do Zabbix para a versão 5.0 (Id 5000000). Ao acessar (sem executar o daemon do zabbix_server) o Frontend PHP, ele vai comparar a versão Major e ver que são diferentes e vai apresentar o famigerado erro.

Para resolver esse primeiro caso logo após executar a atualização dos pacotes (via yum, apt ou compilação) é preciso primeiro iniciar/reiniciar o processo do zabbix_server pois só então ele vai identificar a versão mais antiga no banco, fazer as atualizações necessárias na estrutura desse último e depois disso vai atualizar o identificador de versão. Se você estiver recuperando um backup, primeiro recupere ele na mesma versão na qual ele foi realizado e apenas depois faça o upgrade.

Acompanhe as logs do zabbix_server e aguarde primeiro que as mesmas estejam normalizadas com a informação de que o processo subiu com sucesso, pois o mesmo não vai subir enquanto não terminar de migrar o banco de dados (o que pode demorar, dependendo do tamanho do banco).

Outra coisa que pode acontecer é que, dependendo da diferença da versão, você pode precisar atualizar manualmente alguns scripts de banco de dados então dê atenção redobrada as logs do zabbix_server.

Segundo caso — Frontend velho com banco de dados novo…

Num primeiro caso em que o identificador do banco de dados esteja atualizado para a versão 5.0 (Id 5000000) e o erro indique que o Frontend PHP está esperando uma versão mais velha, 4.4 (Id 4040000) por exemplo, para resolver basta atualizar os pacotes do frontend que tenham sido esquecidos ou que tenham falhado na atualização.

Passo a passo de como atualizar corretamente a versão do Zabbix

  1. Pare o processo do httpd (Apache ou Nginx);
  2. Pare o processo do zabbix_server;
  3. Faça backup do banco de dados do Zabbix;
  4. Realize a atualização dos pacotes da ferramenta Zabbix usando o método necessário (apt, yum, compilação…);
  5. Inicie o zabbix_server e espere ele atualizar o banco de dados, acompanhando nas logs e no status do serviço a situação, pois quanto maior o banco, mais tempo leva essa fase;
  6. Revise as logs do zabbix_server.log, para ver se a atualização do banco de dados foi bem sucedida, ou se falta alguma dependência de atualização.
  7. Inicie o processo do httpd (Apache ou Nginx);
  8. Agora o frontend deve funcionar sem erros.

Se o inglês não for barreira, você pode ver este vídeo oficial da ferramenta sobre o processo e dicas de upgrade.

Não existe downgrade da versão do banco de dados do Zabbix

FAÇA SEU BACKUP! Conforme post do Dimitri (Desenvolvimento e suporte oficial da Zabbix Inc.) nos fóruns oficiais, não existe procedimento para mudar o banco de dados para uma versão anterior, eles oferecem o suporte para esse tipo de situação mediante contratação oficial paga.

Artigo originalmente publicado no LinkedIn.

--

--

Isaque Profeta
Zabbix Brasil

Security operations automation, monitoring tools specialist and Python/JavaScript enthusiast, but sometimes I can play with OKR and ITIL too.