promovaweb-devops-review-redis-stack
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseReview Redis Stack
Redis 栈审核
Executa uma auditoria completa do arquivo e reporta conformidade, problemas e sugestões.
redis.yaml对文件执行完整审计,并上报合规情况、问题和优化建议。
redis.yamlInstruções de Execução
执行说明
Quando esta skill for invocada, siga exatamente este roteiro:
调用本skill时,请严格遵循以下流程:
Passo 1 — Ler os arquivos
步骤1 — 读取文件
Leia o arquivo completo. Leia também e para verificar como o Redis é referenciado pelos serviços dependentes.
redis.yamln8n.yamlchatwoot.yaml读取完整的文件,同时读取和,检查依赖服务对Redis的引用方式。
redis.yamln8n.yamlchatwoot.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 redis.audit.md.
将完整报告写入名为redis.audit.md的文件。
Checks de Verificação
检查项
1. Imagem
1. 镜像
- A imagem deve ser ou versão superior
redis:7 - Alertar se estiver usando sem versão major fixada
redis:latest - 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- — deve estar presente (habilita AOF persistence)
--appendonly yes - — deve ser a porta padrão
--port 6379 - Verificar se há senha configurada () — alertar se Redis estiver sem autenticação em produção não deve ser exposto externamente.
--requirepass SENHA - Verificar comentário sobre opção com senha e recomendar habilitação
检查命令:
redis-server- — 必须存在(启用AOF持久化)
--appendonly yes - — 必须使用默认端口
--port 6379 - 检查是否配置了密码()— 生产环境中未做认证的Redis禁止对外暴露,如有该情况需发出告警
--requirepass 密码 - 检查密码相关配置的注释,建议启用密码配置
3. Autenticação
3. 认证
- Se o Redis está sem senha (ausente), alertar como risco de segurança
--requirepass - Verificar se os serviços dependentes (N8N, Chatwoot) estão configurados para usar a mesma senha se habilitada:
- N8N usa sem senha — deve ser consistente
QUEUE_BULL_REDIS_HOST=redis - Chatwoot usa — deve incluir senha se configurada (
REDIS_URL=redis://redis:6379)REDIS_PASSWORD
- N8N usa
- 如果Redis未设置密码(缺少参数),需作为安全风险告警
--requirepass - 检查依赖服务(N8N、Chatwoot)如果启用了密码,是否配置了相同的密码:
- N8N使用无密码配置 — 需保持一致
QUEUE_BULL_REDIS_HOST=redis - Chatwoot使用— 如果配置了密码需在地址中包含(或配置
REDIS_URL=redis://redis:6379)REDIS_PASSWORD
- N8N使用
4. Portas Expostas
4. 暴露端口
- — verificar se a porta está exposta externamente
6379:6379 - 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. 持久化
- — AOF persistence habilitada (correto)
--appendonly yes - Volume montado em
redis_data— deve ser/dataexternal: 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
- — 已启用AOF持久化(正确)
--appendonly yes - 存储卷挂载到
redis_data— 必须设置/dataexternal: true - 如果存储卷不是外部卷需告警(重新部署时队列数据会丢失)
- 检查仅AOF是否足够,是否还需要RDB快照
6. Réplicas
6. 副本数
| Serviço | Réplicas Esperadas | Observação |
|---|---|---|
| 1 | Redis 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).
| 服务 | 预期副本数 | 说明 |
|---|---|---|
| 1 | Redis单机模式 — 未配置集群/哨兵的情况下,副本数不得超过1 |
如果副本数超过1需告警(可能导致数据同步问题)。
7. Recursos do Container
7. 容器资源
| Serviço | CPU Mínimo | Memória Máxima |
|---|---|---|
| "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配置 | 最大内存配置 |
|---|---|---|
| "1" | 1024M |
- 如果供N8N(Bull队列)使用的Redis内存低于256M需告警
- 检查资源限制是否符合预期的队列负载
8. Configuração de Deploy
8. 部署配置
- — deve ser
mode: replicatedreplicated - — deve incluir
placement.constraintsnode.role == manager - Verificar se há constraints adicionais de hostname para fixar o Redis em um nó específico
- — 必须设置为
mode: replicatedreplicated - — 必须包含
placement.constraintsnode.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 deve ser acessível pelos serviços dependentes via nome de serviço Docker Swarm
redis
- 服务必须加入网络
network_swarm_public - 该网络必须声明为
external: true - 依赖服务必须可以通过Docker Swarm的服务名访问主机名
redis
10. Segurança
10. 安全
- Redis sem autenticação () — alertar como risco em produção
--requirepass - 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执行完成后生成结构化报告:
undefinedRelató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)
严重(部署前必须完成)
- ...
- ...
Recomendado
推荐
- ...
- ...
Opcional
可选
- ...
undefined- ...
undefined