terça-feira, 19 de novembro de 2019

Migração e Atualização do Zabbix

Última Atualização: 22/11/2019
Status: Concluído

Descrição do problema
Possuo um servidor Zabbix 4.2.2 sob CentOS 7 com mais de 3500 hosts monitorados em produção e meu banco está com 945GB.
O banco está deste tamanho por erros na configuração inicial de housekeeper do mesmo.
Irei migrar pra um servidor Oracle Linux 7.7 (que é baseado em CentoOS 7), sem os dados de histórico, pois estes ficarão no servidor antigo que será apagado depois de 3 meses.
Após a instalação e migração dos dados, será feita a atualização para versão mais nova do Zabbix 4.4.1.

Passos
1) Atualização do Oracle Linux para versão mais recente 7.7
yum update

2) Adicionar repositório Developer do PHP
vim /etc/yum.repos.d/public-yum-ol7.repo
    [ol7_developer_php72]
    enabled=1

3) Instalar servidor WEB Apache
yum install httpd
systemctl start httpd
systemctl enable httpd

4) Instalar o banco de dados MariaDB e configurando senha de Root
yum install mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation
    ENTER
    Y
    Senha de root
    Senha de root novamente
    Y
    N
    Y
    Y

5) Instalando o PHP
yum install php php-mysql
systemctl restart httpd

6) Adicionando o repositório do Zabbix 4.2
rpm -ivh http://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm

7) Instalando o Zabbix 4.2
yum install zabbix-server-mysql zabbix-agent zabbix-web

8) Configurando o Banco de Dados
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
quit;

9) Criando o bando de dados zabbix
cd /usr/share/doc/zabbix-server-mysql-4.2.8/
zabbix-server-mysql-4.2.8]# zcat create.sql.gz | mysql -uroot -p zabbix

10) Ajustando o PHP 1
vim /etc/httpd/conf.d/zabbix.conf
    php_value data.timezone America/Maceio

11) Configurando o Zabbix
vim /etc/zabbix/zabbix_server.conf
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix
systemctl restart mariadb
systemctl restart httpd

12) Iniciando o Zabbix e configurando o SELINUX
setenforce 0
systemctl start zabbix-agent
systemctl start zabbix-server
systemctl enable zabbix-agent
systemctl enable zabbix-server
vim /etc/selinux/config
    SELINUX=disabled
systemctl restart zabbix-server

13) Ajustando o PHP 2
vim /etc/php.ini
    post_max_size = 16M
    max_execution_time = 300
    max_input_time = 300
    date.timezone = America/Maceio
systemctl restart httpd

14) Os arquivos de configurações do banco de dados e do zabbix foram ajustados de acordo com as configurações do antigo servidor.

15) Foi feito dump do banco de dados antigo em 3 estágios:
      - Tabelas e Views particulares
      - Tabelas (users, users_groups e usrgrp)
      - Todas as outras tabelas com exceção das

  • events
  • event_recovery
  • history
  • history_log
  • history_str
  • history_text
  • history_uint
  • problem
  • trends
  • trends_uint
  • view 

16) As tabelas de usuários foram importadas, prestando atenção para deletar os INSERTS de usuários que já vem por padrão ao instalar o sistemas.

17) O dump com os dados foram inseridos ao banco. O zabbix de início ficou fora, mas em alguns minutos já voltou a funcionar.

18) Parando e atualizando o repositório do Zabbix
systemctl stop zabbix-server
systemctl stop zabbix-agent
rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
yum clean all
yum makecache

19) Comando para checar os itens instalados que precisam ser atualizados
rpm -qa | grep zabbix

20) No meu caso, retornou: zabbix-release, zabbix-agent, zabbix-web e zabbix-server-mysql
yum upgrade zabbix-server-mysql zabbix-web zabbix-agent zabbix-get

21) Voltando os serviços
systemctl start zabbix-server
systemctl start zabbix-agent


Problemas encontrados

Ao final do passo 17, fui inserir novos dados no Zabbix e começou a apresentar vários erros de INSERT no banco. Para corrigir, existe uma tabela chamada ids, essa tabela armazena o valor da próxima chave a ser criada em outras tabelas. Precisei ir nestas outras tabelas e checar o valor da maior chave inserida, este valor peguei e salvei na tabela ids. Feito isso, os erros pararam.

Ao subir os serviços no passo 21 e tentar acessar o Zabbix, foi mostrado uma mensagem de erro informando versão diferente do banco de dados. Basta aguardar, pois o próprio Zabbix está trabalhando para readequar as tabelas e atualizar o banco.

Nenhum comentário:

Postar um comentário