Execução via Docker
As imagens Docker do PgSmart (Client e Agent) oferecem uma forma 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:
-
Docker Compose (Recomendado)
- O que faz: O Docker Compose inicia os containers de forma integrada e faz o registo automaticamente do PgSmart Agent.
- Ideal para: Testes rápidos e ambientes de desenvolvimento.
-
Containers Separados
- O que faz: Você inicia separadamente os containers e depois, realiza o registo 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.
- Execute o
loginno repositório (utilize o seu e-mail e palavra-passe registados no site da Tecnisys):
docker login -u <seu email> repo.tecnisys.com.br
- Baixe a última versão (latest) das imagens Docker do PgSmart.
-
Imagem do PgSmart Client (CLI + Web)
Terminal inputdocker pull repo.tecnisys.com.br/pgsys/pgsmart-client:latest -
Imagem do PgSmart Agent
Terminal inputdocker 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 registo do Agent no Client; e
- Instalar os serviços do PostgreSYS no container do Agent.
Criar Docker Compose
Para organizar melhor os ficheiros, crie um diretório dedicado para o Docker Compose do PgSmart. Aceda ao diretório criado e utilize um editor de texto para criar o .env com as credenciais de acesso ao repositório do PostgreSYS:
PGSYS_USERNAME=seu_email_de_acesso_tecnisys
PGSYS_PASSWORD=sua_palavra_passe_de_acesso_tecnisys
Na sequência, crie o ficheiro compose.yml com o seguinte conteúdo:
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
- É necessário ter o Docker Compose versão
2.30ou superior instalado no seu sistema para garantir compatibilidade com todas as funcionalidades utilizadas. - Defina as variáveis de ambiente PGSYS_USERNAME e PGSYS_PASSWORD no ficheiro
.env, ou no ficheirocompose.yml, ou passe-as como parâmetros no comandodocker-compose up -d.
Antes de executar o Docker Compose, verifique se os nomes e tags (por exemplo, latest) das imagens do PgSmart, definidas no ficheiro compose.yml, correspondem às imagens descarregadas no seu repositório Docker local.
No diretório do ficheiro compose.yml, execute o comando abaixo para iniciar o seu ambiente do PostgreSYS:
docker-compose up -d
- O comando
docker-compose upinicia o ambiente. - O
-dexecuta os containers em modo detached (em segundo plano).
Pronto! Agora é só aguardar a inicialização dos containers do PgSmart.
Como próximo passo, aceda ao 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:
- Utilizador: pgsmart
- Palavra-passe: 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:
- Executar o container do PgSmart Agent na porta 4432.
- Executar o container do PgSmart Client na porta 4435.
- Registar manualmente o Agent através do PgSmart Web.
Executar o Container do PgSmart Agent
Comece executando o container do PgSmart Agent:
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 a 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.
O 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 a escutar conexões na porta 4432 do host.
Executar o Container do PgSmart Client
Agora, inicie o container do PgSmart Client (CLI + Web):
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:
- Utilizador
pgsmart - Palavra-passe
pgsmart
Registar o Agente
Estando os containers do PgSmart Agent e Client em execução, é necessário registar o Agente manualmente:
-
Aceda ao PgSmart Web no seu navegador:
https://<ip ou hostname do host onde está executando o container do PgSmart Client>:4435Por exemplo:
https://192.168.1.100:4435 -
Faça login com as credenciais padrão, citadas acima.
-
Registe o Agente:
-
Aceda a Início → Gerenciar Ambientes → Agentes.
-
Clique em Registrar.
-
Informe um Alias (apelido) para o Agente.
-
Informe o Hostname ou Endereço IP do host onde o container do Agente está em execução.
-
Informe a Porta do Agente (padrão
4432). -
Informe a Porta de Exposição das Métricas (padrão
9100). -
Informe a Chave de Conexão padrão do Agente para instalações via Docker:
9dbaff1aafb9e7ed609cf015. -
Clique em Salvar.
-
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 registado no PgSmart Web.
Utilize o PgSmart Web para gerir o Agente e instalar os serviços/componentes desejados, como o PostgreSQL e o PgBouncer.
Se preferir usar o PgSmart CLI, em vez do PgSmart Web, aceda ao bash do container do PgSmart Client e execute o comando pgsmart:
docker exec -it <container_id> bash
Sendo <container_id> o ID ou nome do container em execução, retornado pelo comando docker ps.