Banco de Dados · 7 min read · Dec 19, 2025

Como Implantar um Cluster CockroachDB Seguro no Servidor Ubuntu

CockroachDB é um banco de dados SQL de código aberto e nativo da nuvem desenvolvido pela CockroachLabs. É um banco de dados SQL distribuído construído sobre o armazenamento transacional e de chave-valor. O CockroachDB é um banco de dados SQL escalável que foi comparado ao banco de dados Google Spanner. É baseado no protocolo PostgreSQL e está pronto para produção.

Neste tutorial, mostraremos como configurar o Cluster CockroachDB Seguro no Ubuntu 18.04. Você aprenderá como configurar o cluster seguro, acessar o painel de administração do CockroachDB, criar um novo usuário no CockroachDB, criar e mostrar um banco de dados no CockroachDB.

Pré-requisitos

Para executar o Cluster CockroachDB, precisamos de vários servidores. E usaremos três servidores Ubuntu 18.04 com os detalhes de nome de host e endereço IP conforme abaixo.

node1   10.5.5.21  
node2   10.5.5.22  
node3   10.5.5.23

O que faremos?

  • Configurar o Servidor NTP com Chrony systemctl restart chrony
    systemctl enable chrony
  • Baixar e Instalar o CockroachDB
  • Criar Certificados
  • Inicializar o Cluster CockroachDB
  • Adicionar Nó ao Cluster CockroachDB
  • Testes

Passo 1 - Configurar o Servidor NTP com Chrony

Primeiramente, devemos manter o tempo entre os servidores no cluster sincronizado. Portanto, precisamos instalar o pacote NTP em todos os servidores. E para este guia, usaremos o chrony.

Instale o pacote chrony em todos os servidores usando o seguinte comando.

sudo apt install chrony -y

Uma vez que a instalação esteja completa, vá para o diretório de configuração ‘/etc/chrony/‘ e edite o arquivo ‘chrony.conf’.

cd /etc/chrony/  
vim chrony.conf

Exclua o pool NTP padrão e substitua pelo pool do seu próprio país.

pool 0.id.pool.ntp.org iburst maxsources 4  
pool 1.id.pool.ntp.org iburst maxsources 1  
pool 2.id.pool.ntp.org iburst maxsources 1  
pool 3.id.pool.ntp.org iburst maxsources 2

Salve e feche.

Agora reinicie o serviço chrony e adicione o chrony ao serviço de inicialização.

systemctl restart chrony  
systemctl enable chrony

Como resultado, o tempo entre os servidores será sincronizado com os mesmos servidores do pool NTP.

Iniciar e habilitar Chrony

Passo 2 - Baixar e Instalar o CockroachDB

Neste passo, vamos baixar e instalar o CockroachDB em todos os servidores. Portanto, execute todos os comandos em todos os seus servidores do cluster.

Crie um novo diretório chamado ‘binary’ e entre nele.

mkdir -p binary; cd binary

Baixe o arquivo binário comprimido do cockroachdb para Linux e extraia-o.

wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz  
tar -xvzf cockroach-latest.linux-amd64.tgz

Agora copie o arquivo binário ‘cockroach’ para o diretório ‘/etc/local/bin’.

cp cockroach-*/cockroach /usr/local/bin/

Depois disso, você pode executar o comando ‘cockroach’ e explorar o comando básico para ajuda, verificar a versão, etc.

cockroach version

O CockroachDB foi instalado em todos os servidores.

Instalar CockroachDB

Passo 3 - Criar Certificados

Agora vamos gerar alguns certificados para proteger o Cluster CockroachDB. Podemos usar o OpenSSL ou a linha de comando do cockroach para gerar arquivos de certificado.

Geraremos o certificado CA e a chave, e o certificado para o usuário root e o certificado para cada nó no cluster.

Crie o diretório de certificados ‘~/.cockroach-certs’ e a variável de ambiente para ele.

mkdir -p ${HOME}/.cockroach-certs/  
export COCKROACH_CERTS_DIR='${HOME}/.cockroach-certs/'

Criar CA e Copiar para Todos os Nós

No servidor ‘node1’, crie a autoridade certificadora usando o comando cockroach abaixo.

cockroach cert create-ca \  
 --certs-dir=$COCKROACH_CERTS_DIR \  
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

E você obterá ‘ca.key’ e ‘ca.crt’ no diretório ‘~/.cockroach-certs’.

Criar CA e Copiar para Todos os Nós

Depois disso, copie o certificado e a chave CA para todos os servidores usando o comando scp conforme abaixo.

Copie para o servidor ‘node2’.

scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/

Copie para o servidor ‘node3’.

scp ~/.cockroach-certs/ca.crt ~/.cockroach-certs/ca.key [email protected]:~/.cockroach-certs/

Agora, certifique-se de que o certificado e a chave CA estão carregados em todos os servidores host.

Criar Certificados de Cliente

Após criar a autoridade certificadora, precisamos gerar o certificado de cliente. O certificado de cliente será usado para proteger a comunicação entre o shell SQL embutido e o cluster.

Gere o certificado de cliente em todos os servidores usando o seguinte comando cockroach.

cockroach cert create-client \  
 root \  
 --certs-dir=$COCKROACH_CERTS_DIR \  
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

E você obterá certificados de cliente para o usuário root ‘client.root.crt’ e ‘client.root.key’.

Criar Certificados de Servidor

Os certificados de servidor serão usados para proteger a comunicação entre os servidores no cluster CockroachDB. E para se juntar ao cluster seguro, você precisa gerar certificados de servidor para cada servidor.

No ‘node1’, crie o certificado de servidor usando o seguinte comando.

cockroach cert create-node \  
 localhost \  
 $(hostname) \  
 10.5.5.21 \  
 --certs-dir=$COCKROACH_CERTS_DIR \  
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

Altere o endereço IP para o seu próprio.

Alterar endereço IP

No ‘node2’, crie o certificado de servidor usando o seguinte comando.

cockroach cert create-node \  
 localhost \  
 $(hostname) \  
 10.5.5.22 \  
 --certs-dir=$COCKROACH_CERTS_DIR \  
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

Altere o endereço IP para o seu próprio.

Configuração do endereço IP

No ‘node3’, crie o certificado de servidor usando o seguinte comando.

cockroach cert create-node \  
 localhost \  
 $(hostname) \  
 10.5.5.23 \  
 --certs-dir=$COCKROACH_CERTS_DIR \  
 --ca-key=$COCKROACH_CERTS_DIR/ca.key

Altere o endereço IP para o seu próprio.

Agora você obterá os certificados de servidor ‘node.crt’ e ‘node.key’ no diretório ‘~/.cockroach-certs’.

Passo 4 - Iniciar o Cluster CockroachDB Seguro

Após criar alguns certificados SSL, inicializaremos o Cluster CockroachDB Seguro a partir do servidor ‘node1’.

Execute o seguinte comando no servidor ‘node1’.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --advertise-host=10.5.5.21 --listen-addr=10.5.5.21

Certifique-se de que não há erro.

Depois disso, verifique o status do nó do cluster executando o comando cockroach abaixo.

cockroach node status --host=10.5.5.21

Você verá que o node1 com o endereço IP 10.5.5.21 está ativo e em execução com CockroachDB v2.1.6.

Passo 5 - Adicionar Nó ao Cluster

Em seguida, adicionaremos o ‘node2’ e o ‘node3’ ao cluster seguro CockroachDB.

Certifique-se de que o certificado CA e o certificado de servidor estão no diretório ~/.cockroach-certs.

ls -lah ~/.cockroach-certs/

Agora execute o seguinte comando para adicionar o ‘node2’ com o endereço IP 10.5.5.22. Adicione-o ao cluster CockroachDB.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --advertise-host=10.5.5.22 --listen-addr=10.5.5.22 \  
 --join=10.5.5.21:26257

Uma vez que esteja completo, vá para o ‘node3’ e execute o seguinte comando.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --advertise-host=10.5.5.23 --listen-addr=10.5.5.23 \  
 --join=10.5.5.21:26257

Altere o endereço IP para o seu próprio.

Agora o ‘node2’ e o ‘node3’ foram adicionados ao Cluster CockroachDB Seguro. Verifique a partir do servidor ‘node1’ usando o seguinte comando.

cockroach node status --host=10.5.5.21

E você verá que três servidores diferentes estão ativos e executando o cockroach v2.1.6.

Adicionar nó ao cluster

Passo 6 - Testes

Para este último passo, testaremos nossa instalação do Cluster Seguro CockroachDB acessando o painel de administração e testando a replicação do banco de dados entre os servidores.

Testando o Painel do CockroachDB

O CockroachDB fornece uma bela interface de painel para monitorar o cluster. Abra seu navegador da web e digite o endereço IP do servidor seguido da porta 8080.

https://10.5.5.21:8080/

E você verá a página de login do CockroachDB conforme abaixo.

Painel do CockroachDB

Para fazer login no painel, precisamos criar um usuário no banco de dados CockroachDB.

Volte para o terminal do ‘node1’ e faça login no shell SQL do cockroachdb usando o seguinte comando.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \  
 --host=10.5.5.21

Agora crie um novo usuário chamado ‘hakase’ com a senha ‘hakase-labs123@#’ usando a consulta abaixo.

CREATE USER hakase WITH PASSWORD 'hakase-labs123@#';

Digite ‘\q’ para sair do shell SQL do CockroachDB.

Shell SQL do CockroachDB

Agora volte para o navegador da web e digite o usuário ‘hakase’ com a senha ‘hakase-labs123@#’ na página de login e clique no botão Login.

Cockroach DB

E você verá o painel de administração do CockroachDB conforme abaixo.

Visão Geral do Cluster

Testando a Replicação do Banco de Dados

Agora vamos testar a replicação do banco de dados entre os servidores no Cluster CockroachDB criando o banco de dados no ‘node1’ e verificando o banco de dados a partir do ‘node2’ ou ‘node3’.

No ‘node1’, acesse o shell SQL do CockroachDB usando o seguinte comando.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \  
 --host=10.5.5.21

Crie dois bancos de dados ‘hakasedb’ e ‘hakasedb2’ usando as consultas abaixo.

create database hakasedb;  
create database hakasedb2;

Agora imprima a lista de bancos de dados e certifique-se de que você obteve os dois bancos de dados que acabamos de criar.

show databases;

Linha de comando do Cockroach DB

Em seguida, faça login no servidor ‘node2’ e acesse o shell SQL do CockroachDB usando o seguinte comando.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR \  
 --host=10.5.5.22

Verifique a lista de bancos de dados.

show databases;

E você verá que ‘hakasedb’ e ‘hakasedb2’ foram replicados para o servidor ‘node2’.

Mostrar bancos de dados

E finalmente, a instalação e configuração do Cluster CockroachDB Seguro usando Ubuntu 18.04 foi concluída com sucesso.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.