promovaweb-devops-review-redis-stack

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Review Redis Stack

Redis 栈审核

Executa uma auditoria completa do arquivo
redis.yaml
e reporta conformidade, problemas e sugestões.
redis.yaml
文件执行完整审计,并上报合规情况、问题和优化建议。

Instruções de Execução

执行说明

Quando esta skill for invocada, siga exatamente este roteiro:
调用本skill时,请严格遵循以下流程:

Passo 1 — Ler os arquivos

步骤1 — 读取文件

Leia o arquivo
redis.yaml
completo. Leia também
n8n.yaml
e
chatwoot.yaml
para verificar como o Redis é referenciado pelos serviços dependentes.
读取完整的
redis.yaml
文件,同时读取
n8n.yaml
chatwoot.yaml
,检查依赖服务对Redis的引用方式。

Passo 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 redis.audit.md.

将完整报告写入名为redis.audit.md的文件。

Checks de Verificação

检查项

1. Imagem

1. 镜像

  • A imagem deve ser
    redis:7
    ou versão superior
  • Alertar se estiver usando
    redis:latest
    sem versão major fixada
  • Verificar compatibilidade com os serviços que usam Redis (N8N usa Bull/Redis db=2, Chatwoot usa redis://redis:6379)

  • 镜像必须是
    redis:7
    或更高版本
  • 如果使用未固定主版本的
    redis:latest
    需发出告警
  • 检查与使用Redis的服务的兼容性(N8N使用Bull/Redis db=2,Chatwoot使用redis://redis:6379)

2. Comando de Inicialização

2. 启动命令

Verifique o comando
redis-server
:
  • --appendonly yes
    — deve estar presente (habilita AOF persistence)
  • --port 6379
    — deve ser a porta padrão
  • Verificar se há senha configurada (
    --requirepass SENHA
    ) — alertar se Redis estiver sem autenticação em produção não deve ser exposto externamente.
  • Verificar comentário sobre opção com senha e recomendar habilitação

检查
redis-server
命令:
  • --appendonly yes
    — 必须存在(启用AOF持久化)
  • --port 6379
    — 必须使用默认端口
  • 检查是否配置了密码(
    --requirepass 密码
    )— 生产环境中未做认证的Redis禁止对外暴露,如有该情况需发出告警
  • 检查密码相关配置的注释,建议启用密码配置

3. Autenticação

3. 认证

  • Se o Redis está sem senha (
    --requirepass
    ausente), alertar como risco de segurança
  • Verificar se os serviços dependentes (N8N, Chatwoot) estão configurados para usar a mesma senha se habilitada:
    • N8N usa
      QUEUE_BULL_REDIS_HOST=redis
      sem senha — deve ser consistente
    • Chatwoot usa
      REDIS_URL=redis://redis:6379
      — deve incluir senha se configurada (
      REDIS_PASSWORD
      )

  • 如果Redis未设置密码(缺少
    --requirepass
    参数),需作为安全风险告警
  • 检查依赖服务(N8N、Chatwoot)如果启用了密码,是否配置了相同的密码:
    • N8N使用
      QUEUE_BULL_REDIS_HOST=redis
      无密码配置 — 需保持一致
    • Chatwoot使用
      REDIS_URL=redis://redis:6379
      — 如果配置了密码需在地址中包含(或配置
      REDIS_PASSWORD

4. Portas Expostas

4. 暴露端口

  • 6379:6379
    — verificar se a porta está exposta externamente
  • Alertar se a porta 6379 estiver exposta sem autenticação (alto risco de segurança)
  • Recomendar remoção da exposição de porta se acesso externo não for necessário

  • 6379:6379
    — 检查端口是否对外暴露
  • 如果6379端口未做认证就对外暴露需发出告警(极高安全风险)
  • 如果无需外部访问,建议移除端口暴露配置

5. Persistência

5. 持久化

  • --appendonly yes
    — AOF persistence habilitada (correto)
  • Volume
    redis_data
    montado em
    /data
    — deve ser
    external: true
  • Alertar se volume não for externo (dados da fila perdidos em redeploy)
  • Verificar se AOF é suficiente ou se RDB snapshot também é necessário

  • --appendonly yes
    — 已启用AOF持久化(正确)
  • 存储卷
    redis_data
    挂载到
    /data
    — 必须设置
    external: true
  • 如果存储卷不是外部卷需告警(重新部署时队列数据会丢失)
  • 检查仅AOF是否足够,是否还需要RDB快照

6. Réplicas

6. 副本数

ServiçoRéplicas EsperadasObservação
redis
1Redis standalone — não deve ter mais de 1 réplica sem configuração de cluster/sentinel
Alertar se houver mais de 1 réplica (pode causar problemas de sincronização de dados).

服务预期副本数说明
redis
1Redis单机模式 — 未配置集群/哨兵的情况下,副本数不得超过1
如果副本数超过1需告警(可能导致数据同步问题)。

7. Recursos do Container

7. 容器资源

ServiçoCPU MínimoMemória Máxima
redis
"1"1024M
  • Alertar se memória for inferior a 256M para uso com N8N (filas Bull)
  • Verificar se os limites são adequados para a carga de filas esperada

服务最低CPU配置最大内存配置
redis
"1"1024M
  • 如果供N8N(Bull队列)使用的Redis内存低于256M需告警
  • 检查资源限制是否符合预期的队列负载

8. Configuração de Deploy

8. 部署配置

  • mode: replicated
    — deve ser
    replicated
  • placement.constraints
    — deve incluir
    node.role == manager
  • Verificar se há constraints adicionais de hostname para fixar o Redis em um nó específico

  • mode: replicated
    — 必须设置为
    replicated
  • placement.constraints
    — 必须包含
    node.role == manager
  • 检查是否有额外的主机名约束,将Redis固定在特定节点上

9. Redes

9. 网络

  • O serviço deve estar na rede
    network_swarm_public
  • A rede deve ser declarada como
    external: true
  • Hostname
    redis
    deve ser acessível pelos serviços dependentes via nome de serviço Docker Swarm

  • 服务必须加入
    network_swarm_public
    网络
  • 该网络必须声明为
    external: true
  • 依赖服务必须可以通过Docker Swarm的服务名访问
    redis
    主机名

10. Segurança

10. 安全

  • Redis sem autenticação (
    --requirepass
    ) — alertar como risco em produção
  • Porta 6379 exposta sem senha — risco crítico de segurança
  • Verificar consistência com configuração de senha nos serviços dependentes (N8N, Chatwoot)

  • Redis未做认证(无
    --requirepass
    )— 作为生产环境风险告警
  • 6379端口未设置密码就对外暴露 — 严重安全风险
  • 检查依赖服务(N8N、Chatwoot)的密码配置是否一致

Formato do Relatório de Saída

输出报告格式

Ao final, produza um relatório estruturado:
undefined
执行完成后生成结构化报告:
undefined

Relatório de Auditoria — redis.yaml

审计报告 — redis.yaml

Data: <data atual>
日期: <当前日期>

Resumo

概览

  • Total de checks: X
  • ✅ OK: X
  • ⚠️ Atenções: X
  • ❌ Erros: X
  • 总检查项: X
  • ✅ 正常: X
  • ⚠️ 注意: X
  • ❌ 错误: X

Resultados por Categoria

各分类检查结果

1. Imagem

1. 镜像

✅ redis:7: versão major fixada ...
✅ redis:7: 已固定主版本 ...

2. Comando

2. 启动命令

✅ --appendonly yes: persistência AOF habilitada ✅ --port 6379: porta padrão ⚠️ --requirepass: não configurado — Redis sem autenticação ...
✅ --appendonly yes: 已启用AOF持久化 ✅ --port 6379: 使用默认端口 ⚠️ --requirepass: 未配置 — Redis未开启认证 ...

3. Autenticação

3. 认证

⚠️ Redis sem senha — em produção, configure --requirepass e atualize REDIS_URL no Chatwoot e QUEUE_BULL_REDIS_PASSWORD no N8N ...
⚠️ Redis未设置密码 — 生产环境请配置--requirepass,并更新Chatwoot的REDIS_URL和N8N的QUEUE_BULL_REDIS_PASSWORD ...

4. Portas

4. 端口

⚠️ Porta 6379 exposta externamente sem autenticação — risco de segurança ...
⚠️ 6379端口未做认证就对外暴露 — 存在安全风险 ...

5. Persistência

5. 持久化

✅ AOF habilitado com --appendonly yes ✅ redis_data: volume externo configurado em /data ...
✅ 已通过--appendonly yes启用AOF ✅ redis_data: 已配置挂载到/data的外部存储卷 ...

6. Réplicas

6. 副本数

✅ redis: 1 réplica (correto para standalone) ...
✅ redis: 1个副本(单机模式配置正确) ...

7. Recursos

7. 资源

✅ 1024M de memória configurada ...
✅ 已配置1024M内存 ...

8. Deploy

8. 部署

✅ node.role == manager: placement correto ...
✅ node.role == manager: 部署节点配置正确 ...

9. Redes

9. 网络

✅ network_swarm_public: configurado como external ...
✅ network_swarm_public: 已配置为外部网络 ...

10. Segurança

10. 安全

⚠️ Redis sem autenticação — configure senha antes de expor em produção ⚠️ Porta 6379 exposta: bloqueie acesso externo via firewall ...
⚠️ Redis未开启认证 — 生产环境暴露前请配置密码 ⚠️ 6379端口对外暴露: 请通过防火墙拦截外部访问 ...

Ações Recomendadas (por prioridade)

推荐操作(按优先级排序)

Crítico (fazer antes do deploy)

严重(部署前必须完成)

  1. ...
  1. ...

Recomendado

推荐

  1. ...
  1. ...

Opcional

可选

  1. ...
undefined
  1. ...
undefined