promovaweb-devops-review-metabase-stack
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseReview Metabase Stack
Metabase 栈审核
Executa uma auditoria completa do arquivo e reporta conformidade, problemas e sugestões.
metabase.yaml对文件执行完整审计,并上报合规性、问题及优化建议。
metabase.yamlInstruções de Execução
执行说明
Quando esta skill for invocada, siga exatamente este roteiro:
调用本工具时,请严格遵循以下流程:
Passo 1 — Ler os arquivos
步骤1 — 读取文件
Leia o arquivo completo. Leia também para verificar a consistência das credenciais de banco.
metabase.yamlpostgres.yaml读取完整的文件,同时读取以校验数据库凭证的一致性。
metabase.yamlpostgres.yamlPasso 2 — Executar todos os checks abaixo
步骤2 — 执行所有检查项
Execute cada bloco de verificação e registre os resultados (✅ OK / ⚠️ Atenção / ❌ Erro).
逐个执行以下校验模块并记录结果(✅ 正常 / ⚠️ 注意 / ❌ 错误)。
Passo 3 — Gravar o resultado
步骤3 — 保存结果
Grave o relatório completo em um arquivo chamado metabase.audit.md.
将完整的审计报告保存为名为metabase.audit.md的文件。
Checks de Verificação
校验项清单
1. Variáveis de Ambiente Obrigatórias
1. 必填环境变量
Verifique se todas as variáveis abaixo estão definidas no anchor :
x-metabase-db-envBanco de dados PostgreSQL ()
x-metabase-db-env- — deve ser
MB_DB_TYPEpostgres - — deve ser definido (padrão:
MB_DB_DBNAME)metabase - — deve ser
MB_DB_PORT5432 - — deve ser definido (padrão:
MB_DB_USER)postgres - — deve existir e não deve ser o placeholder
MB_DB_PASS, compare com a senha definida emSENHApostgres.yaml - — deve ser definido (padrão:
MB_DB_HOST)postgres
Variáveis diretas no serviço :
metabase- — deve começar com
MB_SITE_URLe ser um domínio válido (não localhost, nãohttps://se placeholder)bi.agenciasynca.com.br - O domínio de deve corresponder à regra Traefik configurada
MB_SITE_URL
校验锚点中是否已定义所有以下变量:
x-metabase-db-envPostgreSQL 数据库配置()
x-metabase-db-env- — 必须为
MB_DB_TYPEpostgres - — 必须已定义(默认值:
MB_DB_DBNAME)metabase - — 必须为
MB_DB_PORT5432 - — 必须已定义(默认值:
MB_DB_USER)postgres - — 必须存在且不能是占位符
MB_DB_PASS,需和SENHA中定义的密码一致postgres.yaml - — 必须已定义(默认值:
MB_DB_HOST)postgres
metabase- — 必须以
MB_SITE_URL开头且为有效域名(不能是localhost,不能是占位符https://)bi.agenciasynca.com.br - 的域名必须和配置的Traefik规则匹配
MB_SITE_URL
2. Serviços Obrigatórios
2. 必填服务
Verifique se o serviço está presente:
| Serviço | Obrigatório |
|---|---|
| Sim |
校验是否存在以下服务:
| 服务 | 是否必填 |
|---|---|
| 是 |
3. Replicas do Serviço
3. 服务副本数
Verifique a quantidade de réplicas:
| Serviço | Réplicas Esperadas | Observação |
|---|---|---|
| 1 | Metabase é stateful, múltiplas réplicas requerem configuração adicional |
Alertar se houver mais de 1 réplica sem configuração de sessão compartilhada.
校验副本数量:
| 服务 | 预期副本数 | 说明 |
|---|---|---|
| 1 | Metabase是有状态服务,多副本需要额外配置 |
如果存在超过1个副本但未配置共享会话,需发出告警。
4. Rotas Traefik
4. Traefik 路由
Para o serviço , verifique:
metabaseÂncora de endereço ():
x-metabase-app-url- A âncora deve existir e conter um domínio válido (não placeholder como
x-metabase-app-url)bi.agenciasynca.com.br - O domínio na âncora deve ser idêntico ao domínio dentro de na label
Host(...)traefik.http.routers.metabase.rule - Se não forem iguais, reportar como ❌ Erro: inconsistência entre e a regra Traefik
x-metabase-app-url - O domínio na âncora deve coincidir também com o domínio em (sem o
MB_SITE_URL)https://
Labels obrigatórias:
traefik.enable=truetraefik.swarm.network=network_swarm_public- — deve conter
traefik.http.routers.metabase.rulecom domínio válidoHost(...) traefik.http.routers.metabase.entrypoints=websecuretraefik.http.routers.metabase.tls.certresolver=letsencryptresolvertraefik.http.routers.metabase.service=metabasetraefik.http.services.metabase.loadbalancer.server.port=3000
Regras:
- O domínio na regra Traefik deve corresponder ao e ao
x-metabase-app-urlMB_SITE_URL - Verificar se está configurado (recomendado)
passHostHeader
针对服务,校验以下内容:
metabase地址锚点():
x-metabase-app-url- 锚点必须存在且包含有效域名(不能是
x-metabase-app-url这类占位符)bi.agenciasynca.com.br - 锚点中的域名必须完全等于标签中
traefik.http.routers.metabase.rule内的域名Host(...) - 如果不一致,标记为 ❌ 错误:与Traefik规则不匹配
x-metabase-app-url - 锚点中的域名也必须和中的域名(去掉
MB_SITE_URL后)一致https://
必填标签:
traefik.enable=truetraefik.swarm.network=network_swarm_public- — 必须包含带有效域名的
traefik.http.routers.metabase.ruleHost(...) traefik.http.routers.metabase.entrypoints=websecuretraefik.http.routers.metabase.tls.certresolver=letsencryptresolvertraefik.http.routers.metabase.service=metabasetraefik.http.services.metabase.loadbalancer.server.port=3000
规则:
- Traefik规则中的域名必须与和
x-metabase-app-url匹配MB_SITE_URL - 校验是否配置了(推荐配置)
passHostHeader
5. Recursos do Container
5. 容器资源配置
Verifique os limites de recursos do serviço :
metabase| Serviço | CPU Mínimo | Memória Mínima | Memória Máxima |
|---|---|---|---|
| "1" | 1024M | 2048M |
Alertar se não tiver definido.
Metabase requer ao menos 1-2GB de memória para operar corretamente.
resources.limits校验服务的资源限制:
metabase| 服务 | 最低CPU配置 | 最低内存配置 | 最高内存配置 |
|---|---|---|---|
| "1" | 1024M | 2048M |
如果未定义需发出告警。Metabase至少需要1-2GB内存才能正常运行。
resources.limits6. Configuração de Deploy
6. 部署配置
Para o serviço , verifique:
metabase- — deve ser
mode: replicatedreplicated - — deve incluir
placement.constraintsnode.role == manager - Verificar se há com
update_configeorder: start-first(recomendado)failure_action: rollback
针对服务,校验以下内容:
metabase- — 必须为
mode: replicatedreplicated - — 必须包含
placement.constraintsnode.role == manager - 校验是否配置了带和
order: start-first的failure_action: rollback(推荐配置)update_config
7. Redes e Imagens
7. 网络与镜像
Redes:
- O serviço deve estar na rede
network_swarm_public - A rede deve ser declarada como na seção
external: truenetworks: - Metabase não declara volumes (usa banco externo) — verificar se isso é intencional
Imagens:
- O serviço deve usar (anchor)
*metabase-image - Verificar se a imagem usa tag específica de versão em vez de (recomendado em produção)
latest - Alertar se estiver usando — versões do Metabase podem ter migrações de banco incompatíveis
metabase/metabase:latest
网络:
- 服务必须接入网络
network_swarm_public - 该网络必须在部分声明为
networks:external: true - Metabase未声明存储卷(使用外部数据库)—— 校验是否为有意配置
镜像:
- 服务必须使用(锚点)
*metabase-image - 校验镜像是否使用具体版本标签而非(生产环境推荐)
latest - 如果使用需发出告警 —— Metabase版本升级可能存在不兼容的数据库迁移
metabase/metabase:latest
8. Segurança
8. 安全配置
- não deve ser
MB_DB_PASS(placeholder)SENHA - deve usar
MB_SITE_URL(nãohttps://)http:// - Verificar se o banco de dados foi criado no PostgreSQL antes do deploy
metabase - Verificar se há configuração de email para recuperação de senha (variáveis)
MB_EMAIL_*
- 不能是占位符
MB_DB_PASSSENHA - 必须使用
MB_SITE_URL(不能是https://)http:// - 校验部署前是否已在PostgreSQL中创建了数据库
metabase - 校验是否配置了密码找回相关的邮箱配置(变量)
MB_EMAIL_*
Formato do Relatório de Saída
输出报告格式
Ao final, produza um relatório estruturado:
undefined最终生成结构化报告如下:
undefinedRelatório de Auditoria — metabase.yaml
审计报告 — metabase.yaml
Data: <data atual>
日期: <当前日期>
Resumo
概览
- Total de checks: X
- ✅ OK: X
- ⚠️ Atenções: X
- ❌ Erros: X
- 总校验项: X
- ✅ 正常: X
- ⚠️ 注意项: X
- ❌ 错误项: X
Resultados por Categoria
各分类校验结果
1. Variáveis de Ambiente
1. 环境变量
✅ MB_DB_TYPE: postgres
❌ MB_DB_PASS: usando placeholder SENHA — troque antes do deploy
✅ MB_SITE_URL: https://bi.agenciasynca.com.br
...
✅ MB_DB_TYPE: postgres
❌ MB_DB_PASS: 使用占位符SENHA — 部署前请替换
✅ MB_SITE_URL: https://bi.agenciasynca.com.br
...
2. Serviços
2. 服务校验
✅ metabase: presente
✅ metabase: 已存在
3. Replicas
3. 副本配置
✅ metabase: 1 réplica (adequado para instalação padrão)
...
✅ metabase: 1个副本(标准安装适配)
...
4. Rotas Traefik
4. Traefik路由
✅ metabase: rota Host correta, TLS ok
⚠️ passHostHeader não configurado — recomendado adicionar
...
✅ metabase: Host规则正确,TLS配置正常
⚠️ 未配置passHostHeader — 推荐添加
...
5. Recursos
5. 资源配置
✅ metabase: 2048M de memória (adequado)
...
✅ metabase: 2048M内存(配置合规)
...
6. Deploy
6. 部署配置
⚠️ update_config não definido — recomendado configurar start-first e rollback
...
⚠️ 未定义update_config — 推荐配置start-first和rollback策略
...
7. Redes e Imagens
7. 网络与镜像
⚠️ Imagem usando — atenção: atualizações do Metabase podem migrar o banco automaticamente
...
latest⚠️ 镜像使用标签 — 注意:Metabase升级可能自动执行数据库迁移
...
latest8. Segurança
8. 安全配置
❌ MB_DB_PASS: placeholder SENHA detectado
⚠️ Banco deve ser criado no PostgreSQL antes do primeiro deploy
...
metabase❌ MB_DB_PASS: 检测到占位符SENHA
⚠️ 首次部署前请先在PostgreSQL中创建数据库
...
metabaseAções Recomendadas (por prioridade)
推荐操作(按优先级排序)
Crítico (fazer antes do deploy)
critical(部署前必须完成)
- ...
- ...
Recomendado
推荐
- ...
- ...
Opcional
可选
- ...
undefined- ...
undefined