Esta imagem Docker é uma combinação poderosa que inclui o PostgreSQL, TimescaleDB, PostGIS e Prometheus. Ela fornece uma plataforma pronta para uso para armazenar e analisar dados temporais e espaciais, com suporte a coleta de métricas através do Prometheus.
- PostgreSQL versão 15 com TimescaleDB integrado.
- Extensão PostGIS para armazenamento e análise de dados espaciais.
- Prometheus para coleta de métricas do PostgreSQL.
- Script de backup diário usando o WAL-G.
- Configurações personalizadas do Prometheus e backup diário configurado.
A imagem Docker aceita as seguintes variáveis de ambiente para configurar o PostgreSQL:
-
POSTGRES_USER: Define o nome de usuário do PostgreSQL. O valor padrão épostgres. -
POSTGRES_PASSWORD: Define a senha do usuário do PostgreSQL. O valor padrão é uma senha aleatória gerada automaticamente. -
POSTGRES_DB: Define o nome do banco de dados a ser criado. O valor padrão épostgres. -
POSTGRES_INITDB_ARGS: Argumentos adicionais a serem passados para o comandoinitdb. -
POSTGRES_HOST_AUTH_METHOD: Define o método de autenticação do host. O valor padrão émd5(autenticação baseada em senha). -
PGDATA: Define o diretório de dados do PostgreSQL. O valor padrão é/var/lib/postgresql/data. -
AWS_ENDPOINT: Define o endpoint do serviço S3 da AWS. O valor padrão és3.amazonaws.com. -
AWS_S3_BUCKET: Define o nome do bucket S3 onde os backups serão salvos. O valor padrão éyour-bucket-name. -
AWS_ACCESS_KEY_ID: Define a chave de acesso da conta AWS. O valor padrão éyour-access-key. -
AWS_SECRET_ACCESS_KEY: Define a chave secreta da conta AWS. O valor padrão éyour-secret-key. -
BACKUP_RETENTION_DAYS: Define o número de dias de retenção dos backups. O valor padrão é7. -
BACKUP_DIRECTORY: Define o diretório de backup. O valor padrão é/backups.
Consulte a documentação oficial da ferramenta para obter informações mais detalhadas sobre essas variáveis de ambiente.
-
Criar um arquivo docker-compose.yml com o conteúdo abaixo e digitar
docker-compose up:version: "3" services: softagon-db: image: softagon/postgresql-15:latest environment: - POSTGRES_USER=${POSTGRES_USER:-myuser} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-mypassword} - POSTGRES_DB=${POSTGRES_DB:-mydatabase} - ARCHIVE_MODE=${ARCHIVE_MODE:-off} - ARCHIVE_TIMEOUT=${ARCHIVE_TIMEOUT:-3600} - AWS_ENDPOINT=${AWS_ENDPOINT:-s3.amazonaws.com} - AWS_S3_BUCKET=${AWS_S3_BUCKET:-my-bucket} - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-my-access-key} - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-my-secret-key} - BACKUP_RETENTION_DAYS=${BACKUP_RETENTION_DAYS:-7} - BACKUP_DIRECTORY=${BACKUP_DIRECTORY:-backupdir} volumes: - ${VOL_PG_DATA:-./data}:/var/lib/postgresql/data - ${VOL_PG_BKP:-./backup}:/backups - ${VOL_PROMETHEUS:-./etc/prometheus}:/etc/prometheus ports: - 5432:5432 - 9090:9090 - 9187:9187
A porta 9090 é do Prometheus, a 9187 é do postgres_exporter que deve ser usado junto ao Prometheus, você poderia conferir se está em pleno funcionamento visitando http://localhost:9090/targets
Este projeto é de código aberto, gerenciado pela Softagon Sistemas e você é encorajado a contribuir. Sinta-se à vontade para enviar problemas, solicitações de recursos ou pull requests.