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

Como Implantar um Cluster CockroachDB Seguro no Servidor Ubuntu 20.04

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 os armazéns transacionais e de chave-valor.

CockroachDB é um banco de dados SQL escalável que foi comparado ao banco de dados Google Spanner. É baseado no protocolo PostgreSQL e pronto para produção.

Este tutorial mostrará como configurar o Cluster CockroachDB Seguro no Ubuntu 20.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 este guia, configuraremos o Cluster CockroachDB Seguro com 3 Servidores Ubuntu 20.04.

node01 172.16.0.3
node02 172.16.0.4
node03 172.16.0.5

O que faremos?

  • Configurar NTP com Chrony
  • Baixar o Binário do CockroachDB para Linux
  • Gerar Certificados SSL para o Cluster CockroachDB
  • Iniciar o Cluster CockroachDB Seguro
  • Criar Usuário Admin para o CockroachDB
  • Acessar o Painel do CockroachDB
  • Testar a Replicação de Banco de Dados no Cluster CockroachDB

Passo 1 - Configurar o Servidor NTP com Chrony

Primeiro, sincronizaremos o tempo em todos os nossos três servidores com o Servidor NTP usando chrony. Portanto, certifique-se de executar todos os comandos nesta etapa em todos os servidores.

Agora atualize todos os repositórios disponíveis em seu sistema e instale o pacote chrony usando o comando apt abaixo.

sudo apt update  
sudo apt install chrony -y

Uma vez que toda a instalação esteja concluída, vá para o diretório ‘/etc/chrony’ e edite a configuração ‘chrony.conf’ usando o editor vim.

cd /etc/chrony/  
vim chrony.conf

Altere o pool padrão para o seu servidor NTP mais próximo como abaixo.

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

Salve e feche.

Em seguida, reinicie o serviço chrony e adicione-o à inicialização do sistema.

systemctl restart chrony  
systemctl enable chrony

O serviço chrony está em execução, verifique usando o seguinte comando.

systemctl status chrony

Abaixo está o resultado que você obterá.

Instalar Chrony no Ubuntu 20.04

Como resultado, a instalação e configuração do Chrony foram concluídas. De fato, o tempo em todos os servidores foi sincronizado com os mesmos Servidores NTP.

Passo 2 - Baixar o Binário do CockroachDB

Neste passo, baixaremos e instalaremos o CockroachDB em todos os nossos três servidores.

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

mkdir -p binary; cd binary

Depois disso, baixe a versão mais recente do arquivo binário do CockroachDB e extraia-o.

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

Agora mova o arquivo binário ‘cockroach’ para o diretório ‘/usr/local/bin’.

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

Como resultado, você pode executar o comando ‘cockroach’ em seu sistema.

Verifique o arquivo binário ‘cockroach’ e a versão do CockroachDB usando o seguinte comando.

which cockroach  
cockroach version

Abaixo está o resultado que você obterá.

Baixar e Instalar o Binário do CockroachDB

Como resultado, você baixou e instalou o CockroachDB v20.1.5 em servidores Linux, e agora você pode criar o Cluster CockroachDB.

Passo 3 - Criar Certificados SSL para o Cluster CockroachDB

Antes de criar o novo Cluster CockroachDB, criaremos e geraremos certificados SSL para proteger nosso cluster. Para gerar os Certificados SSL, podemos usar o OpenSSL ou usar a linha de comando ‘cockroach’.

- Criar Diretório de Certificados do CockroachDB

Primeiro, precisamos criar um novo diretório para armazenar todos os certificados SSL para nosso Cluster CockroachDB.

Como usuário root, crie um novo diretório ‘~/.cockroach-certs’ e adicione a variável de ambiente do sistema ‘COCKROACH_CERTS_DIR’ usando o comando abaixo.

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

Em seguida, para tornar a variável de ambiente ‘COCKROACH_CERTS_DIR’ permanente, edite a configuração ~/.bashrc usando o editor vim.

vim ~/.bashrc

Cole a seguinte configuração no final da linha.

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

Salve e feche.

Em seguida, recarregue a configuração ~/.bashrc e verifique a variável de ambiente ‘COCKROACH_CERTS_DIR’.

source ~/.bashrc  
echo $COCKROACH_CERTS_DIR

E você obterá a variável ‘COCKROACH_CERTS_DIR’ com o valor ‘diretório ${HOME}/.cockroach-certs/‘.

Configurar Diretório de Certificado do Cockroach

- Criar um Certificado CA e Chave

Após criar o diretório de caminho SSL, geraremos o certificado CA e a chave usando a linha de comando ‘cockroach’ no servidor ‘node01’.

Gere o certificado CA e a chave para o ‘$COCKROACH_CERT_DIR’ usando o comando ‘cockroach’ abaixo.

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

Depois disso, copie o ‘ca.crt’ e ‘ca.key’ gerados para outros servidores ‘node02’ e ‘node03’ usando o comando scp como abaixo.

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

Como resultado, o certificado CA e a chave foram criados e enviados para todos os servidores.

Gerar Certificado CA e Copiar para Outros Nós

- Criar Certificado de Cliente no node01

Após criar o certificado CA e a chave, geraremos o certificado de cliente usado para proteger a comunicação entre o shell SQL embutido e o cluster.

Gere o certificado de cliente usando o seguinte comando do cockroach.

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

Agora você obterá novos certificados ‘client.root.crt’ e ‘client.root.key’ no diretório ‘$COCKROACH_CERTS_DIR’.

Gerar Certificado de Cliente CockroachDB

- Criar Certificados de Servidor em Todos os Servidores

Os certificados de servidor serão usados para proteger a comunicação entre servidores no cluster CockroachDB. Para ingressar no cluster seguro, você precisa gerar certificados de servidor para cada servidor.

No primeiro ‘node01’, gere o certificado de servidor usando o seguinte comando, e certifique-se de alterar o endereço IP pelo seu próprio.

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

Em seguida, gere o certificado de servidor para o ‘node02’ usando o seguinte comando.

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

Depois disso, gere o certificado de servidor para o servidor ‘node03’.

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

Agora, se você verificar o diretório ‘~/.cockroach-certs’, você encontrará novos certificados ‘node.crt’ e ‘node.key’ em todos os servidores.

ls -lah ${HOME}/.cockroach-certs/

Abaixo estão todos os certificados disponíveis no servidor mestre ‘node01’.

Gerar Certificado para node01

Você verá três certificados diferentes, certificados CA, certificados de Cliente e certificados de Servidor.

E para os outros nós ‘node02’ e ‘node03’, você verá dois certificados, certificados CA e certificados de Servidor.

gerar certificado de servidor para node02 e node03

Como resultado, estamos prontos para iniciar e criar o Cluster CockroachDB Seguro.

Passo 4 - Iniciar o Cluster Seguro CockRoachDB

Para iniciar o cluster CockroachDB seguro, você precisa iniciar o processo CockroachDB em cada servidor.

Antes de iniciar o processo CockroachDB, certifique-se de alterar os detalhes do endereço IP para cada servidor pelo seu próprio e certifique-se de que a variável de ambiente ‘$COCKROACH_CERTS_DIR’ esteja carregada.

Primeiro, inicie o processo CockroachDB no ‘node01’ usando o seguinte comando.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --store=/var/lib/cockroachdb \  
 --advertise-host=172.16.0.3 --listen-addr=172.16.0.3 \  
 --join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257

Iniciar Cluster Seguro CockroachDB

Agora vá para o servidor ‘node02’ e inicie o processo CockroachDB.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --store=/var/lib/cockroachdb \  
 --advertise-host=172.16.0.4 --listen-addr=172.16.0.4 \  
 --join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257

Iniciar Cluster Seguro CockroachDB

Depois disso, inicie o processo CockroachDB no servidor ‘node03’.

cockroach start \  
 --background --certs-dir=$COCKROACH_CERTS_DIR \  
 --store=/var/lib/cockroachdb \  
 --advertise-host=172.16.0.5 --listen-addr=172.16.0.5 \  
 --join=172.16.0.3:26257,172.16.0.4:26257,172.16.0.5:26257

Iniciar Cluster Seguro CockroachDB

Agora o processo CockroachDB foi iniciado em todos os servidores. Está em execução na porta ‘26257’, e os dados do DockroachDB estão armazenados no diretório ‘/var/lib/cockroachdb’.

Você pode verificar a porta do CockroachDB usando o seguinte comando.

ss -plntu

Como pode ser visto, o processo CockroachDB está em execução na porta TCP ‘26257’ para conexão ao banco de dados e na porta ‘8080’ como painel de administração padrão do CockroachDB.

Em seguida, volte para o servidor mestre ‘node01’ e inicialize o cluster CockroachDB seguro usando o comando abaixo.

cockroach init --host=172.16.0.3:26257

E você receberá a seguinte mensagem.

Cluster inicializado com sucesso

Além disso, você pode verificar o arquivo de log do CockroachDB para ver os detalhes da inicialização do cluster.

grep 'node starting' /var/lib/cockroachdb/logs/cockroach.log -A 11

Abaixo está o resultado que você obterá.

Inicialização do Cluster CockroachDB

Como resultado, a inicialização do Cluster CockroachDB Seguro foi concluída com sucesso.

Passo 5 - Criar Usuário Admin para CockroachDB

Depois de inicializar com sucesso o Cluster CockroachDB, você precisa criar um novo usuário que fará login no painel de administração do CockroachDB.

Do servidor mestre ‘node01’, faça login no shell SQL do CockroachDB usando o seguinte comando.

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

Agora crie um novo usuário chamado ‘yume’ com a senha ‘yume321’ usando a seguinte consulta.

CREATE USER yume WITH PASSWORD 'yume321';

Depois disso, permita que o usuário ‘yume’ faça login e adicione-o ao papel ‘admin’.

ALTER USER yume LOGIN;  
GRANT admin TO yume;

Agora verifique todos os usuários disponíveis no CockroachDB usando a seguinte consulta.

SHOW USERS;

Abaixo está o resultado que você obterá.

Criar Usuário Admin CockroachDB

Como pode ser visto, o novo usuário yume está disponível na lista. Ele é membro do papel ‘admin’.

Como resultado, você criou um novo usuário para o Banco de Dados CockroachDB.

Passo 6 - Acessar o Painel do CockroachDB

Por padrão, o CockroachDB fornece um painel de administração baseado na web que funciona na porta TCP padrão ‘8080’.

Abra seu navegador da web e digite o endereço IP do seu servidor com a porta ‘8080’ na barra de endereços.

https://172.16.0.3:8080/

Agora você verá a página de login do CockroachDB como abaixo.

Página de Login do CockroachDB

Digite o usuário ‘ yume ‘ e a senha ‘ yume321 ‘ no campo e clique no botão ‘ LOG IN ‘.

E você verá o Painel do CockroachDB como abaixo.

Painel do CockroachDB

Como pode ser visto, você tem o Cluster CockroachDB com três nós ativos.

Como resultado, você fez login com sucesso no Painel de Administração do CockroachDB com um novo usuário.

Passo 7 - Testar a Replicação de Banco de Dados

Para este passo, testaremos a replicação de banco de dados entre cada nó no cluster.

Criaremos um novo banco de dados no servidor ‘node01’ usando o usuário ‘yume’ e, em seguida, verificaremos o banco de dados a partir dos outros nós ‘node02’ e ‘node03’.

- Conectar ao node01 e Criar Bancos de Dados

No servidor ‘node01’, faça login no Shell SQL do CockroachDB como usuário ‘yume’ usando o seguinte comando.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR --user=yume \  
 --host=172.16.0.3

Uma vez que você tenha feito login no shell SQL do CockroachDB, crie novos bancos de dados usando as seguintes consultas.

CREATE DATABASE yumedb;  
CREATE DATABASE yumedb2;

Agora verifique todos os bancos de dados disponíveis no CockroachDB.

SHOW DATABASES;

E você verá ‘yumedb’ e ‘yumedb2’ na lista de bancos de dados.

Criar Banco de Dados CockroachDB

- Verificar Replicação de Banco de Dados no node02 e node03

Em seguida, vá para o servidor ‘node02’ e faça login no shell SQL do CockroachDB como usuário ‘yume’ usando o seguinte comando.

cockroach sql --certs-dir=$COCKROACH_CERTS_DIR --user=yume \  
 --host=172.16.0.4

Uma vez que você tenha feito login, verifique todos os bancos de dados disponíveis usando a seguinte consulta.

SHOW DATABASES;

E você verá os bancos de dados ‘yumedb’ e ‘yumedb2’ na lista.

Verificar Replicação de Banco de Dados no Node02

Faça o mesmo no servidor ‘node03’, e você obterá o mesmo resultado.

Abaixo está o resultado do servidor ‘node03’.

Verificar Replicação de Banco de Dados no Node03

Como resultado, a replicação de banco de dados entre os nós no Cluster CockroachDB está funcionando.

Além disso, abaixo você pode ver todos os bancos de dados no Painel de Administração do CockroachDB.

Verificar Banco de Dados no Painel do CockroachDB

E finalmente, a instalação e configuração do Cluster CockroachDB seguro no Ubuntu 20.04 foram concluídas com sucesso.

Referência

https://www.cockroachlabs.com/docs/stable/

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.