Pular para o conteúdo principal
Versão 4.1

Execução via Docker

As imagens Docker do PgSmart (Client e Agent) oferecem uma maneira simples e rápida para iniciar um ambiente PostgreSYS, sem a necessidade de instalação de pacotes.

Existem duas opções para iniciar o ambiente via Docker:

  1. Docker Compose (Recomendado)

    • O que faz: O Docker Compose inicia os containers de forma integrada e faz o registro automaticamente do PgSmart Agent.
    • Ideal para: Testes rápidos e ambientes de desenvolvimento.
  2. Containers Separados

    • O que faz: Você inicia separadamente os containers e depois, realiza o registro do PgSmart Agent manualmente.
    • Ideal para: Ambientes de produção ou cenários de rede mais complexos.

Ambas as opções exigem que você baixe primeiramente as imagens do repositório Tecnisys.

Carregar Imagens Docker

Este é o pré-requisito para qualquer um dos dois métodos de instalação via Docker.

  1. Execute o login no repositório (utilize seu e-mail e senha cadastrados no site da Tecnisys):
Terminal input
docker login -u <seu email> repo.tecnisys.com.br
  1. Baixe a última versão (latest) das imagens Docker do PgSmart.
  • Imagem do PgSmart Client (CLI + Web)

    Terminal input
    docker pull repo.tecnisys.com.br/pgsys/pgsmart-client:latest
  • Imagem do PgSmart Agent

    Terminal input
    docker pull repo.tecnisys.com.br/pgsmart-agent:latest

Implantação com Docker Compose

Esta é a opção recomendada para um ambiente de testes rápido. Com um único comando, o Docker Compose irá:

  • Iniciar o container do PgSmart Agent;
  • Iniciar o container do PgSmart Client (Web e CLI);
  • Configurar um serviço de rede interno para que ambos se comuniquem;
  • Realizar o registro do Agent no Client; e
  • Instalar os serviços do PostgreSYS no container do Agent.

Criar Docker Compose

Para organizar melhor os arquivos, crie um diretório dedicado para o Docker Compose do PgSmart. Acesse o diretório criado e utilize um editor de texto para criar o .env com as credenciais de acesso ao repositório do PostgreSYS:

.env
PGSYS_USERNAME=seu_email_de_acesso_tecnisys
PGSYS_PASSWORD=sua_senha_de_acesso_tecnisys

Na sequência, crie o arquivo compose.yml com o seguinte conteúdo:

compose.yml
networks:
local-net:
driver: bridge

services:

agent:
image: repo.tecnisys.com.br/pgsys/pgsmart-agent:latest
container_name: pgsmart-agent
privileged: true
cap_add:
- ALL
networks:
- local-net
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:rw
tmpfs:
- /run
- /tmp
stop_signal: SIGRTMIN+3
ports:
# Exposed ports for accessing components installed in the container (adjust to avoid host port conflicts)
- "4432:4432" # PgSmart Agent
- "5432:5432" # PostgreSQL Instance
- "6432:6432" # PgBouncer
- "8008:8008" # Patroni
- "2379:2379" # etcd
- "7001:7000" # HAProxy
- "9090:9090" # Prometheus
- "3000:3000" # Grafana
- "4433:4433" # PostgreSYS PostgreSQL
- "9093:9093" # Alertmanager
- "9095:9095" # Karma
post_start:
- command: /opt/create-pgsys-repo.sh ${PGSYS_USERNAME} ${PGSYS_PASSWORD}
user: root
- command: /opt/configure-postgresql-instance.sh 17 postgres /data /wal 5432 UTF8 C # PostgreSQL instance configuration
user: root

client:
image: repo.tecnisys.com.br/pgsys/pgsmart-client:latest
container_name: pgsmart-client
networks:
- local-net
ports:
- "4435:4435"
depends_on:
- agent
environment:
# OPTIONAL: By default, the PostgreSYS environment will be initialized with the credentials provided in the .env file.
- PGSYS_USERNAME=${PGSYS_USERNAME}
- PGSYS_PASSWORD=${PGSYS_PASSWORD}
post_start:
# Pre register agent
- command: /opt/register-agent.sh pgsmart-agent 9dbaff1aafb9e7ed609cf015
user: pgsmart
# IMPORTANT: If you only want an initial/clean environment (without pre-install services), REMOVE the commands below
# Pre-install Pool Service
- command: script -c "pgsmart install --quiet --agent pgsmart-agent --pgversion 17 --service pool" /dev/null
user: pgsmart
# Pre-install Backup Service
- command: script -c "pgsmart install --quiet --agent pgsmart-agent --pgversion 17 --service backup" /dev/null
user: pgsmart
# Pre-install HA Service
- command: script -c "pgsmart install --quiet --agent pgsmart-agent --pgversion 17 --service ha --ha-components dcs agent proxy" /dev/null
user: pgsmart
# Pre-install Observability Service
- command: script -c "pgsmart install --quiet --agent pgsmart-agent --pgversion 17 --service obs --obs-inet 127.0.0.1" /dev/null
user: pgsmart

Iniciar Ambiente PostgreSYS

Pré-Requisito
  • É necessário ter o Docker Compose versão 2.30 ou superior instalado em seu sistema para garantir compatibilidade com todas as funcionalidades utilizadas.
  • Defina as variáveis de ambiente PGSYS_USERNAME e PGSYS_PASSWORD no arquivo .env, ou no arquivo compose.yml, ou passe-as como parâmetros no comando docker-compose up -d.

Antes de executar o Docker Compose, verifique se os nomes e tags (por exemplo, latest) das imagems do PgSmart, definidas no arquivo compose.yml, correspondem às imagens baixadas em seu repositório Docker local.

No diretório do arquivo compose.yml, execute o comando abaixo para iniciar o seu ambiente do PostgreSYS:

Terminal input
docker-compose up -d
  • O comando docker-compose up inicia o ambiente.
  • O -d executa os containers em modo detached (em segundo plano).

Pronto! Agora é só aguardar a inicialização dos containers do PgSmart.

Como próximo passo, acesse o PgSmart Web no seu navegador:

https://<ip ou hostname do host do container do PgSmart Client>:4435

Para fazer login no PgSmart Web, utilize as credenciais padrão:

  • Usuário: pgsmart
  • Senha: pgsmart

Implantação com Docker

Se você optou por subir os containers manualmente, sem usar o Docker Compose, siga as instruções abaixo.

Este processo consiste em 3 etapas:

  1. Executar o container do PgSmart Agent na porta 4432.
  2. Executar o container do PgSmart Client na porta 4435.
  3. Registrar manualmente o Agent através do PgSmart Web.

Executar o Container do PgSmart Agent

Comece executando o container do PgSmart Agent:

Terminal input
docker run --rm -d --privileged --cap-add=ALL -v /sys/fs/cgroup:/sys/fs/cgroup:rw --tmpfs /run,/tmp -p 4432:4432 repo.tecnisys.com.br/pgsmart-agent:latest

Parâmetros:

  • --rm: Remove o container assim que sua execução for concluída (opcional).
  • -d: Desvincular a execução da sessão corrente do shell (opcional).
  • --privileged : Executa o container com privilégios elevados.
  • --cap-add=ALL: Atribui todas as permissões necessárias para que o container seja executado.
  • -p 4432:4432: Mapeia a porta 4432 do host para a porta 4432 do PgSmart Agent.
  • -v /sys/fs/cgroup:/sys/fs/cgroup:rw : Atribui o volume cgroup para execução do container.
  • --tmpfs /run,/tmp: Atribui os diretório de tmpfs para execução do container.
nota

A container do PgSmart Agent precisa ser executado com privilégios elevados porque internamente executa o systemd.

Neste ponto, o PgSmart Agent estará em execução e escutando conexões na porta 4432 do host.

Executar o Container do PgSmart Client

Agora, inicie o container do PgSmart Client (CLI + Web):

Terminal input
docker run -p 4435:4435 -d https://repo.tecnisys.com.br/pgsmart-client:latest

Após a inicialização do container, o PgSmart Web estará disponível para acesso via navegador na porta 4435 do host.

Credenciais padrão de acesso ao PgSmart Web:

  • Usuário pgsmart
  • Senha pgsmart

Registrar o Agente

Estando os containers do PgSmart Agent e Client em execução, é necessário registrar o Agente manualmente:

  1. Acesse o PgSmart Web no seu navegador:

    https://<ip ou hostname do host onde está executando o container do PgSmart Client>:4435

    Por exemplo:

    https://192.168.1.100:4435
  2. Faça login com as credenciais padrão, citadas acima.

  3. Registre o Agente:

    1. Acesse InícioGerenciar AmbientesAgentes.

    2. Clique em Registrar.

    3. Informe um Alias (apelido) para o Agente.

    4. Informe o Hostname ou Endereço IP do host onde o container do Agente está em execução.

    5. Informe a Porta do Agente (padrão 4432).

    6. Informe a Porta de Exposição das Métricas (padrão 9100).

    7. Informe a Chave de Conexão padrão do Agente para instalações via Docker: 9dbaff1aafb9e7ed609cf015.

    8. Clique em Salvar.

nota

A imagem pgsmart-agent possui o PgSmart Agent pré-instalado e configurado com a chave de conexão padrão. Após a inicialização do container, essa chave pode ser alterada.

Pronto! Agora os containers estão em execução e o Agente registrado no PgSmart Web.

Utilize o PgSmart Web para gerenciar o Agente e instalar os serviços/componentes desejados, como o PostgreSQL e o PgBouncer.

dica

Se preferir usar o PgSmart CLI, ao invés do PgSmart Web, acesse o bash do container do PgSmart Client e execute o comando pgsmart:

Terminal input
docker exec -it <container_id> bash

Sendo <container_id> o ID ou nome do container em execução, retornado pelo comando docker ps.