Collector — Como Executar
O db-collector é um binário standalone que coleta metadados de configuração do banco de dados e gera um arquivo bundle.json para upload na plataforma. Este guia mostra como baixar, executar e fazer upload do bundle.
Pré-requisitos
- Acesso de rede ao servidor de banco de dados a partir da máquina onde o coletor será executado
- Um usuário de banco de dados com permissões de somente leitura em tabelas de metadados (veja as permissões mínimas abaixo)
- Acesso HTTPS à URL da plataforma Elven Assessment (para upload do bundle)
Passo 1 — Baixe o db-collector
Na plataforma, acesse Novo Assessment → Banco de Dados → Baixar Collector.
O download oferece binários para:
| Sistema Operacional | Arquivo |
|---|---|
| Linux x86-64 | db-collector-linux-amd64 |
| Linux ARM64 | db-collector-linux-arm64 |
| macOS Intel | db-collector-darwin-amd64 |
| macOS Apple Silicon | db-collector-darwin-arm64 |
| Windows | db-collector-windows-amd64.exe |
Screenshot
📸 Captura de tela: Modal de download do collector — 5 opções de download por SO com ícones, link para documentação de permissões mínimas, botão "Já tenho o collector — fazer upload" em destaque.
Passo 2 — Crie o usuário de banco de dados
Crie um usuário dedicado com permissões mínimas de leitura:
-- Criar usuário dedicado para o coletor
CREATE USER elven_collector WITH PASSWORD 'senha_forte_aqui';
-- Permissões de leitura em views de sistema
GRANT pg_monitor TO elven_collector;
GRANT CONNECT ON DATABASE postgres TO elven_collector;
-- Para cada banco de dados que deseja analisar:
-- (repita para cada database no cluster)
GRANT CONNECT ON DATABASE nome_do_banco TO elven_collector;
pg_monitor
O role pg_monitor (disponível no PostgreSQL 10+) concede acesso de leitura a todas as views de monitoramento (pg_stat_*, pg_settings, etc.) sem acesso a dados de negócio.
-- Criar usuário dedicado
CREATE USER 'elven_collector'@'%' IDENTIFIED BY 'senha_forte_aqui';
-- Permissões mínimas de leitura em metadados
GRANT SELECT ON performance_schema.* TO 'elven_collector'@'%';
GRANT SELECT ON information_schema.* TO 'elven_collector'@'%';
GRANT SELECT ON mysql.user TO 'elven_collector'@'%';
GRANT SELECT ON mysql.db TO 'elven_collector'@'%';
GRANT PROCESS ON *.* TO 'elven_collector'@'%';
GRANT REPLICATION CLIENT ON *.* TO 'elven_collector'@'%';
GRANT SHOW DATABASES ON *.* TO 'elven_collector'@'%';
FLUSH PRIVILEGES;
-- Criar login
CREATE LOGIN [elven_collector] WITH PASSWORD = 'SenhaForte123!';
-- Criar usuário no master
USE master;
CREATE USER [elven_collector] FOR LOGIN [elven_collector];
-- Permissões de leitura em metadados do servidor
GRANT VIEW SERVER STATE TO [elven_collector];
GRANT VIEW ANY DEFINITION TO [elven_collector];
GRANT VIEW ANY DATABASE TO [elven_collector];
Passo 3 — Execute o coletor
Opções adicionais
| Flag | Descrição |
|---|---|
--ssl |
Habilitar conexão TLS/SSL |
--ssl-ca /path/ca.pem |
Certificado CA para validação TLS |
--ssl-skip-verify |
Pular verificação de certificado (não recomendado em produção) |
--timeout 60 |
Timeout da conexão em segundos (padrão: 30) |
--verbose |
Exibir queries executadas no terminal (útil para debug) |
Saída esperada
[db-collector v0.4.x] Elven Assessment Database Collector
Engine: postgres
Host: meu-postgres.internal:5432
Conectando ao banco de dados... OK
Coletando configurações do servidor... OK (47 parâmetros)
Coletando usuários e roles... OK (12 usuários)
Coletando informações de bancos... OK (5 bancos)
Coletando logs de auditoria... OK
Coletando extensões... OK (8 extensões)
Coletando informações de replicação... OK
Coletando estatísticas de uso... OK
Bundle gerado: bundle.json (42.3 KB)
Nenhum dado de negócio coletado. Apenas metadados de configuração.
Passo 4 — Faça upload do bundle na plataforma
Opção A — Upload via interface
- No Elven Assessment, acesse Novo Assessment → Banco de Dados.
- Clique em Fazer upload do bundle.
- Selecione o arquivo
bundle.jsongerado. - A plataforma valida o bundle e exibe as informações do servidor coletado.
Screenshot
📸 Captura de tela: Tela de upload de bundle — área de drop zone com ícone de upload, "Arraste o bundle.json aqui ou clique para selecionar". Após upload, resumo: "PostgreSQL 15.3 — meu-postgres.internal — 5 bancos — Coletado em 13/05/2026 14:32".
Opção B — Upload direto pelo coletor
O coletor pode enviar o bundle diretamente para a plataforma sem salvar em disco:
./db-collector-linux-amd64 \
--engine postgres \
--host meu-postgres.internal \
--port 5432 \
--user elven_collector \
--password "senha_forte_aqui" \
--upload-url https://assessment.suaempresa.com/api/db-bundles \
--upload-token "SEU_TOKEN_DA_PLATAFORMA"
Passo 5 — Responda o questionário
Após o upload, a plataforma exibe um questionário complementar sobre controles que não são detectáveis via metadados:
- "Existe processo de revisão de permissões de banco de dados?"
- "Backups são testados regularmente (restore test)?"
- "Há monitoramento de queries lentas em produção?"
- "Existe rotação periódica de credenciais de banco?"
Responda e clique em Finalizar para ver os resultados.
Dicas e solução de problemas
Execute o coletor próximo ao banco
Para reduzir latência, execute o coletor na mesma rede do banco de dados — por exemplo, em um bastion host, jump server, ou diretamente no servidor de banco.
Conexão recusada?
Verifique:
- O host e porta estão corretos
- O usuário tem permissão de conexão remota (ex.: pg_hba.conf para PostgreSQL)
- O firewall/security group permite a conexão da máquina onde o coletor roda
Consulte a seção Solução de Problemas para mais detalhes.
O bundle é seguro para transmitir?
Sim. O bundle contém apenas metadados de configuração — parâmetros de servidor, nomes de usuários (sem senhas), roles e privilégios, versões, configurações de auditoria. Nenhum dado de negócio é incluído. O bundle é enviado via HTTPS.