# Ativação da Replicação Anexos - PostgreSQL 16 Obs. Esse procedimento é voltado ao cliente que não possui nenhum tipo de configuração de replicação feita. Caso o cliente já tenha a replicação do banco de dados ativa, deve ser utilizado o manual abaixo: * [` Replicação Arquivos/Anexos + Banco de Dados:`](./replicacao_arquivos_bancodedados.md) Caso o mesmo não possua nenhum tipo de configuração de Replicação, basta continuar seguindo este manual! ## Firewall - PfSense Acesse o Firewall do cliente através da INT_RT na porta padrão 9080 passando as credencias para realizar o login * Configurar o Firewall para receber a replicação: Primeiro passo é criar um Aliases do IP público passado pelo cliente ``` Caminho: Firewall / Aliases / IP Preencha o nome, IP e descritivo do Alises que você esta criando. ``` ![Aliases](../img/firewall_aliases_ip.png) Após a criação do Aliases, será necessária a criação de uma regra na Interface LAN do cliente liberando a porta padrão da replicação 61100: ``` Action: Pass Interface: LAN Protocol: TCP/UDP Source: LAN Net Destination: Single host or alias (Cliente_DC) - aqui você indicara o Aliases criado no passo anterior Description: Replicacao ``` OBS: Lembre-se sempre de manter a regra criada na interface acima das regras de bloqueios LAN Net IPv4 e IPv6 ![Rules_Replicacao](../img/rules_lan_replicacao.png) ## SGDB - MASTER - PRODUÇÃO * Após a criação do Aliases e liberação da porta para a replicação, conecte no SGDB do cliente para realizar as configurações: * Via Putty conecte no banco master do cliente desejado através do IP INT_RT e a porta padrão 9032. Devido a versão 16 do Postgres, primeiro será necessário realizar o login com o usuário ipm, e depois de efetuado o login, você deverá se tornar root ``` usuário: ipm senha: deve ser consultada no datacenter.ipm.com.br ``` Caso você execute os passos abaixo e o mesmo não solicite a senha, deve ser verificado se existe comunicação com o banco replicado, através de ping, traceroute ou telnet para testar e garantir a comunicação entre os dois ambientes. ``` Realize a conexão ao banco Slave do cliente: ssh -p 61100 ipm@XXX.XXX.XXX.XXX Após executar o comando o mesmo irá solicitar a senha. Passe a senha conforme repassado pelo cliente ``` ## SGDB - SLAVE Após conectar no banco replicado, execute o comando abaixo para se tornar root ``` su - root Após executar o comando o mesmo irá solicitar a senha. Passe a senha conforme repassado pelo cliente ``` Logado com o root, crie o usuário para a replicação (Substituia pelo código do cliente e defina uma senha para o usuário): ``` useradd rep00000 passwd rep00000 ``` Em seguida, adicione o usuário criado (rep00000) no mesmo grupo e pasta do usuário postgres: ``` # vim /etc/passwd postgres:x:121:125:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash rep00000:x:121:125:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash ``` Crie a pasta de acesso via SSH no servidor Replicado ``` ssh root@127.0.0.1 (yes) Será exibido a mensagem abaixo e solicitado a senha: The authenticity of host '0.1.2.3 (0.1.2.3)' can't be established. ED25519 key fingerprint is SHA256:MN8C+wPjLZUq2Zppy8c9qCsrHhnhTqTaY1fyKJO8+RI. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '0.1.2.3' (ED25519) to the list of known hosts. Informe a senha para conexão: root@127.0.0.1's password: Permission denied, please try again. Após o alerta de permission denied, clique em ctrl + c para cancelar a operação Obs. Mesmo com erro, a operação acima criou a pasta .ssh no usuário root ``` IMPORTANTE: O comando abaixo, só deve ser executado caso o ambiente seja exclusivo para a replicação dos arquivos (anexos do sistema). Caso o mesmo já esteja executando a replicação do Banco de Dados ou será configurado junto com a dos arquivos, o passo abaixo NÃO deve ser executado ``` systemctl stop postgresql.service systemctl disable postgresql.service ``` Agora iremos realizar algumas configurações e limpezas no ambiente, deixando o mesmo preparado para receber a replicação. Ajustar o hosts da maquina, usando o mesmo padrão de nome do Banco de dados master com a palavra SLAVE no final e também substituindo o IP conforme o IP da Interface da VM: ``` #vim /etc/hosts IP LAN da Maquina Virtual 00000-cliente-bdp-01-1600-slave ``` Ajustar o hostname da maquina, usando o mesmo padrão de nome do Banco de dados master com a palavra SLAVE no final: ``` #vim /etc/hostname 00000-cliente-bdp-01-1600-slave.atende.net ``` Remover Script Default da IPM que vem junto com o template disponibilizado para o cliente ``` rm -rf /root/bkp_remoto/ ``` Remover Agendamento do Crontab ``` crontab -r ``` Remover Configurações de Ponto de Montagem da Storage do FSTAB: ``` vim /etc/fstab //172.16.0.246/Backup /var/lib/postgresql/storage cifs users,noauto,username=serverlinux,password=XXXXXXXXX,domain=ATENDENET,uid=26,gid=26,rw,vers=2.0 0 0 ``` No momento do envio das configurações do ambiente para o cliente, é enviado o espaço em disco necessário para replicar os arquivos. Para criar o disco com o espaço disponibilizado pelo cliente, execute os passos abaixo: Por padrão, o template da Maquina Virtual já terá um disco de 200GB alocado para a partição, sendo agora necessário apenas a expansão do mesmo: ``` # Expandir ampliando o disco existente # Listar os discos (Identificar o disco referente ao lv postgresql--vg03-lv--archived): lsblk Retorno: sdd 8:48 0 1,4T 0 disk └─postgresql--vg03-lv--archived 253:2 0 200GB 0 lvm /var/lib/postgresql/16/tablespaces/archived # Após identificado o disco, realize o resize do mesmo: pvresize /dev/sdd # Listar os discos e os espaços livres: pvscan Retorno: PV /dev/sdd VG postgresql-vg03 lvm2 [<200 GB / 1200 GB free] # Após isso, iremos expandir o volume lógico, alocando 100% do espaço livre para o disco: lvextend -l +100%FREE /dev/postgresql-vg03/lv-archived # Consultando novamente o espaço: pvscan Retorno: PV /dev/sdd VG postgresql-vg03 lvm2 [<1,37 TiB / 0 free] # Agora iremos expandir o Sistema de arquivos: xfs_growfs /var/lib/postgresql/16/tablespaces/archived # Listas discos (Agora podemos verificar que o espaço no disco é o mesmo do alocado no volume): lsblk Retorno: sdd 8:48 0 1,4T 0 disk └─postgresql--vg03-lv--archived 253:2 0 1,4T 0 lvm /var/lib/postgresql/16/tablespaces/archived # Listar pontos de montagens no Linux! (Verifique se a expansão ocorreu de forma adequada.) df -h Retorno: /dev/mapper/postgresql--vg03-lv--archived 1,4T 11G 1,4T 1% /var/lib/postgresql/16/tablespaces/archived ``` Após o ajuste do disco, iremos criar o diretório para receber a replicação dos arquivos/anexos do sistema: ``` su - postgres cd /var/lib/postgresql/16/tablespaces/archived/ mkdir backup mkdir -p backup/corrente backup/permanente chmod 700 backup/ -R ``` Após todos os passos, execute um reboot no servidor: ``` su - root reboot ``` ## TASK03 - DATA CENTER PR Após todo o ambiente configurado, é necessário realizar a configuração da rotina de Copia/Replicação dos Arquivos(Anexos) do sistema: Conecte no Servidor TASK03 no ambiente Data Center do PR (172.16.0.103): ``` #### Executar no Task03/PR01 ##### rclone config n name> (Database) Storage> 45 host> (IP Público do cliente) user> rep00000 port> 61100 SSH Password, Choose an alternative below. Press Enter for the default> (y) Yes, type in my own password Enter the password: (senha do usuário rep00000) Confirm the password: (senha do usuário rep00000) key_pem> key_file> Option key_file_pass> (n) pubkey_file> key_use_agent> use_insecure_cipher> disable_hashcheck> true ssh> Edit advanced config? (n) Configuration complete. (y) ``` * Execute o Script Inicial dos arquivos Atuais ``` - Transferência de arquivos atuais (Ceph RedHat / Apache) - pasta corrente rclone sync /storage/pr01-dd6400_01/STORE/Arquivos/rsync/00000_cliente/00000_cliente-full/00000_cliente/arquivo 00000_cliente:/var/lib/postgresql/16/tablespaces/archived/backup/corrente -v --no-update-modtime --size-only &>> /root/bkp_files/log/00000_cliente-20241113-14224000000000.log & ``` * Assim que o Script Inicial for executado, deve-se comentar o arquivo de configuração do Rclone do cliente em questão: ``` #Comentar Configuração do Rclone do cliente: /root/.config/rclone/rclone.conf ``` * Após finalizado a replicação manual (inicial) dos arquivos do CEPH Redhat/Apache, descomente a configuração do backup incremental do cliente no arquivo rclone.conf do servidor TASK03 ### Arquivos Históricos Caso o cliente possua arquivos históricos nas Storage CEPH Ubuntu ou ISILON, os procedimento abaixo devem ser executados: ``` Exemplo de Script para Arquivos Históricos - ISILON E Ubuntu - Exemplo com o Cliente São José: - Transferência de arquivos antigos (Ceph Ubuntu / Isilon) - pasta permanente rclone copy /storage/pr01-dd6400_01/STORE/Anual/00000_cliente/00000_cliente-20241113-143000-arquivos-s3-rclone 00000_cliente:/var/lib/postgresql/16/tablespaces/archived/backup/permanente -v &>> /root/bkp_files/log/00000_cliente-20241113-14300000000000.log & rclone copy /storage/pr01-dd6400_01/STORE/Anual/00000_cliente/storage/s3/00000_cliente/00000_cliente 00000_cliente:/var/lib/postgresql/16/tablespaces/archived/backup/permanente -v &>> /root/bkp_files/log/00000_cliente-20241113-14300000000000.log & ``` ## ZABBIX - MONITORAMENTO Para o acompanhamento do funcionamento do ambiente Slave, deve ser cadastrado o Equipamento do SGDB Slave do cliente no Monitoramento do Zabbix: Devido ao servidor não estar no ambiente do Data Center da IPM, o monitoramento será apenas via ICMP Configuration > hosts ``` Hostname: 00000-cliente-bdp-01-1600-slave.atende.net Groups: cliente.atende.net e Virtual Machines Agent: XXX.XXX.XXX.XXX - Informe o IP Público passado pelo cliente Monitored by proxy: PX_PMCliente - Adicione no mesmo proy do cliente em questão ``` Obs: Caso o IP do cliente não esteja liberado para ICMP deve ser solicitado a liberação para o bloco IP do Data Center 177.11.20.0/22 afim de conseguirmos monitorar o ambiente. Exemplo do banco replicado de Pinhais: ![Zabbix_Slave](../img/zabbix_ambiente_slave.png) ## GTT - Cadastro Equipamento Após todas as configuração dos passos anterior, deve ser cadastrado o equipamento no GTT afins de documentação: ``` #Caminho: Gerenciamento Data Center » Manutenção » Equipamentos » Equipamento Nome: 00000-cliente-bdp-01-1600.atende.net Tipo de Equipamento: Banco de dados Local da Instalação: Selecione o Data Center onde o cliente encontra-se Classificação: Virtual Sistema Operacional: Linux - Ubuntu Linux (64-bit) ``` ![GTT_Equipamento_Cadastro](../img/gtt_sgdb_cadastro.png) Em seguida, cadastre os três usuários (root), (ipm) e o (rep00000) criado anteriormente: Caminho: Gerenciamento Data Center » Manutenção » Equipamentos » Equipamento » Consultar Usuários do Equipamento ![GTT_Equipamento_Usuario](../img/gtt_sgdb_cadastro_user.png) Cadastre também as Interfaces de rede (WAN e LAN) do ambiente do cliente (Lembre-se de desmarcar a opção Gerenciar IPv4): Caminho: Gerenciamento Data Center » Manutenção » Equipamentos » Equipamento » Consultar Interfaces do Equipamento ![GTT_Equipamento_Usuario](../img/gtt_sgdb_cadastro_rede.png) Vincule também a instancia do cliente no Equipamento que esta sendo cadastrado: Caminho: Gerenciamento Data Center » Manutenção » Equipamentos » Equipamento » Consultar Equipamento x Instância ![GTT_Equipamento_Usuario](../img/gtt_sgdb_cadastro_instancia.png) - [`VOLTAR`](../README.md)