384 sintomas catalogados
Cada sintoma com causa provável e correção, ligado à lição da trilha DevOps que explica o porquê. Descreva o sintoma para filtrar.
| Sintoma | Causa provável | Correção | Lição |
|---|---|---|---|
| O Grafana não mostra dados dos containers | Fonte de dados Prometheus mal configurada ou Prometheus sem acesso ao cAdvisor | Verifique URLs e portas, e se o target do cAdvisor está UP no Prometheus | Alertas e dashboards: monitoramento visual com Prometheus e |
| Alertas não chegam por e-mail ou Slack | Configuração incorreta do Alertmanager ou bloqueio de rede | Revise o alertmanager.yml e teste conectividade com o serviço externo | Alertas e dashboards: monitoramento visual com Prometheus e |
| Métricas de containers não aparecem no Prometheus | cAdvisor não está rodando ou volumes não estão montados corretamente | Cheque logs do cAdvisor e permissões dos volumes | Alertas e dashboards: monitoramento visual com Prometheus e |
| Alerta não dispara mesmo com condição verdadeira | Erro na expressão PromQL ou valor de 'for' muito alto | Revise a expressão e reduza 'for' para testar | Alertas e regras: do YAML ao alerta inteligente com Alertman |
| Notificação não chega ao e-mail | Receiver mal configurado ou SMTP bloqueado | Verifique logs do Alertmanager e ajuste email_configs | Alertas e regras: do YAML ao alerta inteligente com Alertman |
| Alertas duplicados | group_by ausente ou mal configurado | Inclua labels relevantes em group_by | Alertas e regras: do YAML ao alerta inteligente com Alertman |
| Alertas não chegam no email | Configuração SMTP incorreta ou bloqueio por firewall | Revise parâmetros de email_configs e teste conectividade SMTP | Alertmanager integrado: notificações para email, Slack e mai |
| Alertas duplicados ou em excesso | group_by ou repeat_interval mal configurados | Ajuste group_by e repeat_interval para reduzir duplicidade | Alertmanager integrado: notificações para email, Slack e mai |
| Alertas não aparecem no Slack | api_url inválida ou permissão do webhook | Valide o token do Slack e permissões do canal | Alertmanager integrado: notificações para email, Slack e mai |
| Variável de ambiente não aparece no container | Erro no arquivo .env ou parâmetro --env-file | Verifique sintaxe do arquivo e caminho passado ao Docker | Ambientes sob controle: variáveis, arquivos e secrets em con |
| Arquivo de configuração não é lido pela aplicação | Caminho de volume incorreto ou permissões inadequadas | Confirme o caminho e permissões do arquivo no host | Ambientes sob controle: variáveis, arquivos e secrets em con |
| Secret não está disponível em /run/secrets/ | Secret não foi associado ao serviço ou Swarm não está ativo | Consulte a documentação do Docker Swarm e associe o secret corretamente | Ambientes sob controle: variáveis, arquivos e secrets em con |
| Erro: 'Decryption failed' | Senha do Vault incorreta ou arquivo corrompido. | Verifique a senha e a integridade do arquivo. Restaure de backup se necessário. | Ansible Vault: protegendo segredos sem abrir mão da automaçã |
| Variáveis sensíveis aparecem em logs | Debug ou verbosity excessiva no playbook. | Reduza o nível de verbose e revise tasks que usam 'debug' com variáveis sensíveis. | Ansible Vault: protegendo segredos sem abrir mão da automaçã |
| Permissão negada ao usar password file | Arquivo de senha com permissões inadequadas. | Ajuste para chmod 600 no arquivo de senha. | Ansible Vault: protegendo segredos sem abrir mão da automaçã |
| Erro de permissão SSH ao rodar playbook | Chave SSH não configurada ou usuário sem acesso | Configure a chave SSH correta e garanta permissão de acesso | Ansible: o que é, de onde veio e por que virou padrão em aut |
| Módulo não encontrado durante execução | Versão do Ansible desatualizada ou módulo não instalado | Atualize o Ansible ou instale o módulo necessário | Ansible: o que é, de onde veio e por que virou padrão em aut |
| Playbook não aplica mudanças esperadas | Estado já está conforme o desejado ou erro de sintaxe no YAML | Revise o playbook e valide a sintaxe com 'ansible-lint' | Ansible: o que é, de onde veio e por que virou padrão em aut |
| Falha ao acionar API externa | URL incorreta, token inválido ou endpoint indisponível | Revise a URL, credenciais e conectividade de rede. | APIs e callbacks: interagindo com sistemas externos durante |
| Callback não executa | Plugin não está no diretório correto ou não foi listado no ansible.cfg | Coloque o plugin em callback_plugins e adicione ao callback_whitelist. | APIs e callbacks: interagindo com sistemas externos durante |
| Resposta inesperada do módulo uri | Formato do body ou headers incompatível com a API | Ajuste o body_format, headers e valide com a documentação da API externa. | APIs e callbacks: interagindo com sistemas externos durante |
| Dashboards sem dados de Prometheus | Target não configurado ou endpoint inacessível | Verifique configuração do job e conectividade local | Autodiagnóstico: monitorando Prometheus, Alertmanager e Graf |
| Alertas não disparam mesmo com falha | Erro na expressão da regra de alerta | Revise a sintaxe e teste a expressão manualmente no Prometheus | Autodiagnóstico: monitorando Prometheus, Alertmanager e Graf |
| Métricas do Grafana não aparecem | Endpoint /metrics não habilitado ou firewall bloqueando | Consulte a documentação do Grafana e ajuste firewall/localhost | Autodiagnóstico: monitorando Prometheus, Alertmanager e Graf |
| Playbook falha ao conectar no switch | Credenciais ou método de conexão incorreto | Revise ansible_user, ansible_password e ansible_connection | Automação de redes, containers e cloud: onde o Ansible está |
| Container não sobe | Imagem inexistente ou porta já usada | Verifique nome da imagem e portas no host | Automação de redes, containers e cloud: onde o Ansible está |
| Provisionamento em nuvem retorna erro de permissão | Credenciais ou permissões insuficientes na conta | Ajuste as permissões do usuário na nuvem | Automação de redes, containers e cloud: onde o Ansible está |
| Script falha com 'permission denied' | Permissão de execução ausente | Rode 'chmod +x script.sh' | Automatizando builds e deploys: scripts e hooks com Docker |
| Container não inicia após deploy | Porta já em uso ou imagem inválida | Cheque portas com 'netstat' e valide a imagem com 'docker images' | Automatizando builds e deploys: scripts e hooks com Docker |
| Cron não executa script | Caminho ou permissão incorretos | Confirme o caminho absoluto e permissões do script | Automatizando builds e deploys: scripts e hooks com Docker |
| Serviço não distribui carga entre réplicas | Serviço criado fora do Swarm ou porta não publicada corretamente | Recrie o serviço no modo Swarm com porta publicada. | Balanceamento de carga e alta disponibilidade: conceitos ess |
| Containers marcados como 'unhealthy' | Healthcheck mal configurado ou aplicação não responde | Ajuste o comando do healthcheck e verifique a aplicação. | Balanceamento de carga e alta disponibilidade: conceitos ess |
| Falha ao criar novas réplicas após remoção | Recursos insuficientes no nó ou cluster mal configurado | Verifique recursos do host e status do cluster com 'docker node ls'. | Balanceamento de carga e alta disponibilidade: conceitos ess |
| O check mode indica mudanças, mas nada muda na execução real. | A tarefa não é idempotente ou o módulo não suporta check mode. | Reescreva a tarefa usando módulos core e valide a idempotência. | Check mode, dry run e idempotência: monitorando sem alterar |
| Tarefas com command/shell sempre aparecem como changed. | Esses módulos não conseguem prever mudanças sem executar. | Use módulos específicos sempre que possível. | Check mode, dry run e idempotência: monitorando sem alterar |
| Condições baseadas em fatos não funcionam no check mode. | Fatos podem não ser coletados corretamente em simulação. | Evite lógica complexa dependente de fatos em tarefas críticas. | Check mode, dry run e idempotência: monitorando sem alterar |
| Job falha com 'Cannot connect to the Docker daemon' | Runner não está com Docker-in-Docker ativado ou sem permissão. | Verifique se o serviço 'docker:dind' está ativo e se o runner tem acesso ao socket Docker. | CI/CD de verdade: pipelines com containers no GitLab CE |
| Job de test não encontra 'docker-image.tar' | Artefato não foi salvo ou não foi listado em 'artifacts'. | Garanta que 'docker save' é executado e que o arquivo está em 'artifacts.paths'. | CI/CD de verdade: pipelines com containers no GitLab CE |
| Deploy faz push de uma imagem diferente da testada | Imagem foi rebuildada ou não foi persistida corretamente. | Use 'docker save' no build e 'docker load' nos stages seguintes, sempre via artefato. | CI/CD de verdade: pipelines com containers no GitLab CE |
| Container não sobe após atualização | Incompatibilidade da nova imagem ou erro de configuração | Faça rollback para a versão anterior e revise logs com 'docker logs <container>' | Ciclos de vida e políticas: atualização, rollback e complian |
| Rollback não reverte o serviço | Imagem anterior foi removida do repositório local ou remoto | Garanta que todas as versões necessárias estejam disponíveis no registry | Ciclos de vida e políticas: atualização, rollback e complian |
| Eventos não aparecem no 'docker events' | Intervalo de tempo incorreto ou permissão insuficiente | Ajuste os parâmetros de data e execute como root se necessário | Ciclos de vida e políticas: atualização, rollback e complian |
| O módulo customizado não é encontrado. | Arquivo fora da pasta library/ ou nome do módulo errado. | Verifique o caminho e o nome do arquivo; deve estar em library/ e ser chamado pelo nome do arquivo (sem .py). | Collections, plugins e custom modules: expandindo o que o An |
| Erro de permissão ao executar o módulo. | Script sem permissão de execução. | Rode 'chmod +x library/hello.py'. | Collections, plugins e custom modules: expandindo o que o An |
| Collection não aparece após instalação. | Instalação em ambiente virtual diferente ou variável ANSIBLE_COLLECTIONS_PATHS não configurada. | Confirme o ambiente ativo e o caminho das collections. | Collections, plugins e custom modules: expandindo o que o An |
| Erro 'UNREACHABLE' ao rodar módulo ping | Problema de SSH (chave, usuário ou firewall) | Verifique se o usuário e a chave SSH estão corretos e se a porta 22 está aberta. | Como o Ansible opera: inventário, módulos e o papel do OpenS |
| Módulo retorna erro de Python ausente | Python não instalado no nó remoto | Instale Python no servidor remoto ou use módulos compatíveis com outra linguagem. | Como o Ansible opera: inventário, módulos e o papel do OpenS |
| Inventário dinâmico não retorna hosts | Script com erro de sintaxe ou saída fora do padrão JSON | Valide o script e teste a saída com 'python3 script.py'. | Como o Ansible opera: inventário, módulos e o papel do OpenS |
| docker: Cannot connect to the Docker daemon | Daemon dockerd não está rodando ou permissão insuficiente | Inicie o daemon e adicione o usuário ao grupo docker | Como o Docker Engine funciona por baixo dos panos: daemon, c |
| curl retorna 'permission denied' no socket | Permissões do arquivo /var/run/docker.sock | Ajuste permissões ou use sudo | Como o Docker Engine funciona por baixo dos panos: daemon, c |
| Client não encontra daemon remoto | Daemon não configurado para escutar em TCP | Configure dockerd com -H tcp://0.0.0.0:2375 (atenção à segurança/TLS) | Como o Docker Engine funciona por baixo dos panos: daemon, c |
| Pods não conseguem se comunicar entre nodes. | CNI não instalado ou mal configurado. | Verifique logs do plugin CNI e reinstale se necessário. | Como o Kubernetes fala com o mundo: CNI, serviços e ingresso |
| Service não responde no NodePort. | Firewall bloqueando portas ou selector incorreto. | Abra as portas no firewall e revise o selector do Service. | Como o Kubernetes fala com o mundo: CNI, serviços e ingresso |
| Ingress não roteia para o serviço. | Ingress Controller ausente ou regras mal escritas. | Instale um Ingress Controller e valide a sintaxe do recurso Ingress. | Como o Kubernetes fala com o mundo: CNI, serviços e ingresso |
| Serviço web falha ao conectar ao banco de dados | O banco ainda não está pronto para aceitar conexões; 'depends_on' não garante prontidão. | Implemente lógica de retry ou healthcheck no serviço web. | Compose em ação: orquestrando múltiplos containers em YAML |
| Dados do banco desaparecem após 'down' | Volumes não foram definidos corretamente ou foram removidos. | Garanta que volumes estejam definidos no bloco 'volumes:' e evite usar '--volumes' se quiser preservar dados. | Compose em ação: orquestrando múltiplos containers em YAML |
| Variáveis de ambiente não aplicadas | Variáveis não definidas no YAML ou arquivo .env ausente. | Verifique o bloco 'environment:' e a existência do arquivo .env. | Compose em ação: orquestrando múltiplos containers em YAML |
| Erro 'Data source is not working' | URL incorreta ou firewall bloqueando a conexão | Verifique a URL do Prometheus e as regras de firewall entre Grafana e Prometheus | Conectando Grafana ao Prometheus e outros datasources |
| Painéis vazios após importar dashboard | Datasource não selecionado ou queries com nomes de métricas diferentes | Selecione o datasource correto e ajuste as queries para refletir as métricas do seu ambiente | Conectando Grafana ao Prometheus e outros datasources |
| Queries PromQL retornam erro de sintaxe | Erro na expressão PromQL | Use o autocomplete do editor do Grafana e revise a documentação do Prometheus | Conectando Grafana ao Prometheus e outros datasources |
| Target aparece como DOWN | Problema de conectividade ou endpoint não expõe métricas corretamente | Verifique firewall, portas e endpoint de métricas | Configurando jobs, relabeling e targets dinâmicos no Prometh |
| Labels inesperados nas métricas | Regra de relabeling mal configurada | Revise as expressões regex e as ações de relabeling | Configurando jobs, relabeling e targets dinâmicos no Prometh |
| Targets sumiram após alteração | Filtro de relabeling removeu targets válidos | Ajuste as regras de keep/drop no relabel_configs | Configurando jobs, relabeling e targets dinâmicos no Prometh |
| Container não acessa volume | Permissões incorretas no host | Ajuste com chown para UID/GID corretos | Configurando redes e volumes avançados para produção |
| Containers não se comunicam | Estão em redes diferentes | Conecte ambos à mesma rede customizada | Configurando redes e volumes avançados para produção |
| Erro de 'address already in use' | Porta exposta já usada no host | Altere a porta ou remova conflito | Configurando redes e volumes avançados para produção |
| Dados sumindo após reiniciar container | Volume não foi usado, apenas bind mount temporário | Use volume nomeado | Configurando redes e volumes avançados para produção |
| Nó aparece como NotReady | Plugin CNI não instalado ou falhou ao iniciar | Verifique 'kubectl get pods -n kube-system' e logs do pod do CNI | Containerd, kubeadm e plugins CNI: a base de uma instalação |
| kubectl não conecta ao cluster | Configuração do kubeconfig ausente ou incorreta | Confira permissões e caminho do arquivo $HOME/.kube/config | Containerd, kubeadm e plugins CNI: a base de uma instalação |
| Pods ficam em ContainerCreating | Containerd não está rodando ou mal configurado | Reinicie o serviço e valide SystemdCgroup=true no config.toml | Containerd, kubeadm e plugins CNI: a base de uma instalação |
| Erro de cgroup driver incompatível | Configuração do Containerd não usa systemd como cgroup driver | Edite /etc/containerd/config.toml e reinicie o serviço | Containerd, kubeadm e plugins CNI: a base de uma instalação |
| Container reiniciando em loop | Healthcheck falhando ou comando de inicialização incorreto | Revise o healthcheck e o comando de entrada. Consulte logs com 'docker logs <container>' | Containers em produção: desafios e soluções em ambiente real |
| Dados sumiram após remover container | Volume não foi montado corretamente | Confirme o parâmetro '-v' e o nome do volume em 'docker inspect' | Containers em produção: desafios e soluções em ambiente real |
| Logs não aparecem no servidor central | Driver de log não configurado ou servidor syslog inacessível | Verifique parâmetros '--log-driver' e conectividade de rede | Containers em produção: desafios e soluções em ambiente real |
| O Docker pull falha mesmo para imagens legítimas | A imagem não está assinada ou o Notary não está configurado corretamente | Desative DCT temporariamente ou assine a imagem conforme a documentação | Containers, segurança e supply chain: desafios do futuro |
| O scanner retorna muitos falsos positivos | Banco de CVEs desatualizado ou regras genéricas | Atualize o banco de dados do scanner e refine as políticas | Containers, segurança e supply chain: desafios do futuro |
| O pipeline de CI/CD está lento após adicionar scanners | Imagens grandes ou múltiplos scanners rodando em paralelo | Otimize o Dockerfile e rode scanners em etapas paralelas controladas | Containers, segurança e supply chain: desafios do futuro |
| Pods ficam indefinidamente em Pending | kube-scheduler inativo ou sem nós disponíveis | Verifique logs do scheduler e disponibilidade dos nós | Control Plane, kubelet e etcd: quem manda, quem executa, que |
| Comandos kubectl não retornam ou dão timeout | kube-apiserver fora ou etcd indisponível | Cheque status do kube-apiserver e do etcd | Control Plane, kubelet e etcd: quem manda, quem executa, que |
| Pods não sobem em um nó específico | kubelet parado ou com erro | Reinicie o kubelet e verifique logs locais | Control Plane, kubelet e etcd: quem manda, quem executa, que |
| Cluster perde recursos após reinício | etcd corrompido ou restaurado incorretamente | Restaure backup íntegro do etcd | Control Plane, kubelet e etcd: quem manda, quem executa, que |
| Dashboard não aparece após deploy | Erro no JSON ou permissão insuficiente na API do Grafana | Valide o JSON e confira o token de autenticação | Dashboards e alertas como código: CI/CD para observabilidade |
| Regra de alerta não é carregada | Erro de sintaxe no YAML ou falha no reload do Prometheus | Rode 'promtool check rules' e verifique logs do Prometheus | Dashboards e alertas como código: CI/CD para observabilidade |
| Pipeline CI/CD falha ao provisionar | Variáveis de ambiente ou caminhos incorretos | Revise configurações do pipeline e paths dos arquivos | Dashboards e alertas como código: CI/CD para observabilidade |
| Rollback não reverteu dashboard | Pipeline não foi executado após o revert | Execute o pipeline manualmente para aplicar o rollback | Dashboards e alertas como código: CI/CD para observabilidade |
| Usuário vê dashboards de outra organização | Permissões ou associação de usuário errada | Revise o usuário e sua organização. Corrija na interface ou API. | Dashboards globais, drill-down e multi-tenant em Grafana |
| Drill-down não filtra corretamente | Variáveis mal configuradas no link | Ajuste os parâmetros do dashboard link para usar as variáveis certas. | Dashboards globais, drill-down e multi-tenant em Grafana |
| Dashboard global lento ou travando | Query sem filtro ou intervalo muito curto | Adicione filtros obrigatórios e aumente o intervalo mínimo no datasource. | Dashboards globais, drill-down e multi-tenant em Grafana |
| Painel não carrega dados | Query PromQL inválida ou métrica ausente | Ajustar a query e validar no Explore | Dashboards quebrados e alertas fantasmas: debug prático no G |
| Alerta dispara sem motivo | Regras duplicadas ou clock desincronizado | Revisar regras e sincronizar NTP | Dashboards quebrados e alertas fantasmas: debug prático no G |
| Dados incompletos no gráfico | Intervalo de coleta incompatível com a query | Ajustar o scrape_interval e a janela da query | Dashboards quebrados e alertas fantasmas: debug prático no G |
| Pods ficam em CrashLoopBackOff após deploy | Configuração incorreta de variáveis ou imagem inválida | Revise os valores em values.yaml e o build da imagem | Deployments automatizados: pipelines CI/CD com Helm e kubect |
| Rollback não retorna ao estado anterior | Histórico de releases não está disponível ou foi limpo | Consulte a documentação do Helm sobre retenção de histórico | Deployments automatizados: pipelines CI/CD com Helm e kubect |
| Pipeline trava em rollout status | Deployment não atingiu o estado 'Available' por erro de readiness | Verifique probes e logs dos pods | Deployments automatizados: pipelines CI/CD com Helm e kubect |
| API Server não conecta ao etcd após restauração | Configuração de endpoint ou certificados incorretos | Revise caminhos de certificados e endpoints no etcd.yaml | Desastres e recuperação: aprendendo com falhas reais de clus |
| Pods em CrashLoopBackOff após DR | Volumes persistentes não restaurados ou inacessíveis | Verifique status dos PVs e conectividade do storage | Desastres e recuperação: aprendendo com falhas reais de clus |
| etcd não forma quorum | Menos da metade dos membros disponíveis ou IDs inconsistentes | Revise configuração de cluster e restaure todos os membros necessários | Desastres e recuperação: aprendendo com falhas reais de clus |
| Métricas não aparecem no Prometheus | Exporter não está rodando ou firewall bloqueando porta | Verifique status do serviço e libere a porta 9100 (node_exporter) no firewall | Desenhando o pipeline: do exporter ao alerta acionável |
| Alertas não chegam ao destinatário | Configuração de rota errada no Alertmanager | Revise o arquivo config.yml do Alertmanager e teste envio de alerta | Desenhando o pipeline: do exporter ao alerta acionável |
| Alertas em excesso (falsos positivos) | Thresholds mal definidos ou falta de tempo de espera | Ajuste valores e adicione campo 'for' nas regras de alerta | Desenhando o pipeline: do exporter ao alerta acionável |
| Alertas não disparam mesmo com uso alto | Erro na expressão ou na configuração do Prometheus | Revise a sintaxe das regras e reinicie o Prometheus | Detectando anomalias e saturação antes do desastre |
| Alertas disparam em excesso | Limite muito baixo ou métrica mal escolhida | Ajuste os thresholds e revise as métricas usadas | Detectando anomalias e saturação antes do desastre |
| Webhook não aciona script | URL incorreta ou permissão negada | Teste o endpoint manualmente e ajuste permissões | Detectando anomalias e saturação antes do desastre |
| Pods não conseguem resolver nomes de serviços | CoreDNS não está funcionando ou mal configurado | Verifique logs do CoreDNS com 'kubectl logs -n kube-system -l k8s-app=kube-dns' | DNS, ConfigMaps e Secrets: integrando aplicações ao cluster |
| ConfigMap não é montado no pod | Erro no nome ou chave do ConfigMap no YAML | Confirme os nomes e chaves com 'kubectl describe configmap <nome>' | DNS, ConfigMaps e Secrets: integrando aplicações ao cluster |
| Secret aparece em texto claro em logs | Aplicação faz dump do ambiente ou loga variáveis sensíveis | Monte o Secret como arquivo e revise o código da aplicação | DNS, ConfigMaps e Secrets: integrando aplicações ao cluster |
| O serviço não responde na porta do host | Porta não mapeada corretamente ou aplicação não escutando na porta esperada | Verifique o parâmetro '-p' e a configuração da aplicação dentro do container | Do build ao run: ciclo de vida de containers na prática |
| Erro 'address already in use' | Porta do host já ocupada por outro processo ou container | Escolha outra porta do host ou pare o processo que está usando a porta | Do build ao run: ciclo de vida de containers na prática |
| Container não inicia ou para imediatamente | Erro no comando CMD ou ENTRYPOINT, ou dependências ausentes | Use 'docker logs <nome ou id>' para inspecionar o erro e corrija o Dockerfile | Do build ao run: ciclo de vida de containers na prática |
| join trava em preflight | Firewall bloqueando portas | Libere as portas 6443, 10250, 10255, 2379-2380 entre os nós | Do join ao ready: adicionando nós e validando saúde do clust |
| token is expired | Token de join expirou | Gere novo token com kubeadm token create | Do join ao ready: adicionando nós e validando saúde do clust |
| Nó NotReady após join | CNI não instalado ou rede falha | Instale o plugin CNI e valide conectividade | Do join ao ready: adicionando nós e validando saúde do clust |
| x509: certificate signed by unknown authority | Hash do CA incorreto | Consulte a documentação para obter o hash correto | Do join ao ready: adicionando nós e validando saúde do clust |
| Erro: 'Cannot connect to the Docker daemon' | O serviço dockerd não está rodando ou o usuário não tem permissão. | Inicie o serviço com 'sudo systemctl start docker' e adicione seu usuário ao grupo 'docker'. | Docker Engine: o que é, onde roda e por que importa |
| Erro: 'unsupported kernel version' | Kernel Linux muito antigo. | Atualize o kernel para uma versão compatível (>= 3.10). | Docker Engine: o que é, onde roda e por que importa |
| Containers não iniciam | Driver de armazenamento incompatível ou falta de recursos. | Verifique logs com 'journalctl -u docker' e ajuste configurações de storage driver. | Docker Engine: o que é, onde roda e por que importa |
| Imagem muito grande | Muitas camadas ou base inadequada | Use imagens slim/alpine e agrupe comandos RUN | Dockerfile sem mistério: camadas, instruções e boas escolhas |
| Container roda como root | Faltou definir USER | Adicione USER appuser no Dockerfile | Dockerfile sem mistério: camadas, instruções e boas escolhas |
| Build lento | Muitos arquivos copiados ou comandos RUN separados | Use .dockerignore e agrupe RUN | Dockerfile sem mistério: camadas, instruções e boas escolhas |
| Erro de permissão ao rodar app | Diretórios não pertencem ao usuário não-root | Ajuste permissões com RUN chown | Dockerfile sem mistério: camadas, instruções e boas escolhas |
| Role sem README | Negligência ou pressa na criação da role | Crie README.md seguindo o padrão e documente variáveis e exemplos | Documentação viva: mantendo playbooks compreensíveis para o |
| Variáveis conflitantes entre roles | Falta de padronização e prefixos | Renomeie variáveis usando prefixos do projeto ou da role | Documentação viva: mantendo playbooks compreensíveis para o |
| Exemplo não funciona | Exemplo desatualizado ou incompleto | Atualize exemplos sempre que alterar a role e valide com 'ansible-playbook' | Documentação viva: mantendo playbooks compreensíveis para o |
| ansible-doc não mostra documentação | Role sem docstrings ou documentação embutida | Adicione docstrings YAML no início dos arquivos de tasks | Documentação viva: mantendo playbooks compreensíveis para o |
| Permission denied (publickey) | Chave SSH incorreta ou ausente | Configure a chave correta no ~/.ssh/authorized_keys do host | Erros clássicos: como identificar e corrigir problemas de co |
| sudo: a password is required | Usuário sem permissão de sudo sem senha | Ajuste o /etc/sudoers ou use --ask-become-pass | Erros clássicos: como identificar e corrigir problemas de co |
| ERROR! Syntax Error while loading YAML | Indentação ou formatação errada no YAML | Revise o arquivo e valide com --syntax-check | Erros clássicos: como identificar e corrigir problemas de co |
| Erro: Bind for 0.0.0.0:8080 failed: port is already allocated | Mais de um container tentando mapear a mesma porta do host. | Garanta que apenas um container exponha a porta externa. | Escalando containers: limites do Docker Compose e alternativ |
| Apenas um container responde externamente | Limite do Compose: só um container pode mapear porta do host. | Use um proxy reverso ou orquestrador para balancear entre instâncias. | Escalando containers: limites do Docker Compose e alternativ |
| Containers caem e não reiniciam | Compose não faz auto-recuperação. | Considere migrar para Swarm ou Kubernetes. | Escalando containers: limites do Docker Compose e alternativ |
| Variáveis não são reconhecidas durante a execução | Arquivo de variáveis está no diretório errado ou nome incorreto | Verifique se os arquivos estão em group_vars/ ou host_vars/ com nomes corretos | Estrutura de diretórios e arquivos: como organizar um projet |
| Handler não executa após mudança | O notify do task não aponta para o nome correto do handler | Confirme que o nome do handler em handlers/main.yml bate com o usado no notify | Estrutura de diretórios e arquivos: como organizar um projet |
| Erro de permissão ao versionar arquivos | Tentativa de versionar arquivos sensíveis ou protegidos | Adicione-os ao .gitignore e use ansible-vault para arquivos secretos | Estrutura de diretórios e arquivos: como organizar um projet |
| A aplicação não encontra o banco de dados | Nome do host incorreto ou serviço não iniciado | Use o nome do serviço definido no Compose como host e verifique se o container está rodando | Estruturando aplicações para containers: separação de serviç |
| Erro de permissão ao acessar volume | Volume não montado corretamente ou permissões do sistema de arquivos | Ajuste as permissões do diretório no host e revise o mapeamento de volumes | Estruturando aplicações para containers: separação de serviç |
| Imagem muito grande | Dependências desnecessárias ou base de imagem inadequada | Revise o Dockerfile e remova pacotes supérfluos | Estruturando aplicações para containers: separação de serviç |
| Dados globais faltando em dashboards | Problema de federation mal configurada ou remote_write falhando | Revise targets, URLs e monitore métricas de fila | Federation, remote storage e multi-site: expandindo sem perd |
| Atraso grande nas métricas | Latência de rede ou buffer pequeno | Aumente 'queue_config' e verifique conectividade | Federation, remote storage e multi-site: expandindo sem perd |
| Perda de dados após falha de rede | Buffer local esgotado | Aumente 'capacity' e monitore o uso do buffer | Federation, remote storage e multi-site: expandindo sem perd |
| Playbook aplica mudanças inesperadas em produção | Inventário ou variáveis de ambiente mal configurados | Revisar group_vars e inventário antes de executar | Fluxo de execução: de um playbook simples ao controle de múl |
| Execução falha por permissão | Falta de sudo ou become configurado | Adicionar 'become: yes' no playbook | Fluxo de execução: de um playbook simples ao controle de múl |
| Logs não são gerados | log_path não definido ou permissão insuficiente | Configurar log_path no ansible.cfg e garantir permissão de escrita | Fluxo de execução: de um playbook simples ao controle de múl |
| Servidor não volta após reboot | Update corrompeu boot ou kernel incompatível | Acesse console remoto, reverta snapshot ou restaure backup | Gerenciando atualizações e patches: segurança recorrente sem |
| Serviço não inicia após atualização | Configuração incompatível ou dependência quebrada | Verifique logs do serviço, reverta atualização ou ajuste configuração | Gerenciando atualizações e patches: segurança recorrente sem |
| Playbook trava em um host | Timeout de SSH ou recurso indisponível | Aumente timeout no Ansible ou verifique conectividade de rede | Gerenciando atualizações e patches: segurança recorrente sem |
| Deployment não aparece no cluster | FluxCD não conseguiu sincronizar (erro de permissão ou repositório Git inacessível) | Verifique logs com 'kubectl logs -n flux-system deploy/flux-controller' e permissões do token no Git | GitOps com FluxCD e ArgoCD: declaratividade até o fim |
| Mudança no cluster é sobrescrita inesperadamente | GitOps está funcionando corretamente, revertendo alterações manuais | Faça mudanças apenas via Git, nunca diretamente no cluster | GitOps com FluxCD e ArgoCD: declaratividade até o fim |
| Erro de autenticação ao conectar ao Git | Token ou chave SSH inválida ou ausente | Atualize as credenciais no secret do FluxCD com 'kubectl edit secret' ou refaça o bootstrap | GitOps com FluxCD e ArgoCD: declaratividade até o fim |
| Prometheus não inicia após alteração | Erro de sintaxe em prometheus.yml ou regras | Valide arquivos com 'promtool check config prometheus.yml' | Governança e versionamento: quem muda o quê, quando e por qu |
| Dashboard sumiu após importação | JSON inválido ou corrompido | Valide o JSON e reimporte versão anterior | Governança e versionamento: quem muda o quê, quando e por qu |
| Alterações não aplicadas após reload | Deploy automatizado falhou ou reload não executado | Verifique logs de CI/CD e execute reload manualmente | Governança e versionamento: quem muda o quê, quando e por qu |
| Logs de auditoria não aparecem | API server não está configurado corretamente ou policy ausente | Revise o parâmetro --audit-policy-file e o caminho do arquivo | Governança, auditoria e compliance: mantendo o cluster sob c |
| Pods inseguros são criados mesmo com política | Namespace não está rotulado corretamente ou Admission Controller não está ativo | Confirme labels e status do PodSecurity Admission | Governança, auditoria e compliance: mantendo o cluster sob c |
| Usuários não autorizados conseguem deletar recursos | RBAC permissivo ou bindings errados | Revise roles e rolebindings aplicados | Governança, auditoria e compliance: mantendo o cluster sob c |
| Webhook de validação não responde | Endpoint HTTPS inacessível ou certificado inválido | Verifique logs do webhook e conectividade | Governança, auditoria e compliance: mantendo o cluster sob c |
| Dashboard exibe erro 'Datasource not found' | Datasource Prometheus não configurado ou URL incorreta | Revise a configuração do datasource e teste a conexão | Grafana: dashboards, datasources e o papel do Prometheus |
| Gráficos não atualizam automaticamente | Intervalo de refresh não configurado ou datasource lento | Ajuste o refresh rate e verifique a performance do Prometheus | Grafana: dashboards, datasources e o papel do Prometheus |
| Usuários não conseguem acessar dashboards | Permissões insuficientes ou autenticação mal configurada | Revise roles e integração de autenticação | Grafana: dashboards, datasources e o papel do Prometheus |
| Prometheus não consegue coletar métricas do Node Exporter | Firewall bloqueando IP do Prometheus ou binding incorreto | Ajuste as regras do firewall e confirme o IP autorizado | Hardening de exporters e pipelines de alerta |
| Alertas não chegam ao webhook | Token incorreto ou endpoint não acessível | Verifique o token e a conectividade HTTPS | Hardening de exporters e pipelines de alerta |
| Logs mostram tentativas de acesso externo | Portas expostas ou firewall ausente | Restrinja binding e configure firewall corretamente | Hardening de exporters e pipelines de alerta |
| HPA não escala pods | Metrics Server ausente ou mal configurado | Instale ou corrija o Metrics Server | Horizontal, vertical e cluster scaling: quando e como cresce |
| VPA não aplica recomendações | UpdateMode não está como 'Auto' | Ajuste o updatePolicy do VPA | Horizontal, vertical e cluster scaling: quando e como cresce |
| Cluster não adiciona nós | Cluster Autoscaler não habilitado ou sem permissão | Verifique configuração e permissões do cluster | Horizontal, vertical e cluster scaling: quando e como cresce |
| Imagem muito grande | Dependências de build não removidas | Use multi-stage build e limpe dependências temporárias | Imagens e Dockerfiles: padrões para produção sem surpresas |
| Labels não aparecem | Sintaxe incorreta no Dockerfile | Revise o uso de LABEL e consulte a documentação | Imagens e Dockerfiles: padrões para produção sem surpresas |
| Falha ao rodar em produção | Dependências de runtime ausentes | Garanta que apenas o necessário está na imagem final | Imagens e Dockerfiles: padrões para produção sem surpresas |
| Builds inconsistentes | Uso de tags 'latest' ou dependências sem versão fixa | Sempre fixe versões no Dockerfile e requirements | Imagens e Dockerfiles: padrões para produção sem surpresas |
| O escaneamento aponta muitos CVEs mesmo após atualização. | Imagem base ou dependências desatualizadas. | Atualize a imagem base e refaça o build. | Imagens seguras: minimização, escaneamento e atualização |
| Erro de permissão ao rodar ferramenta de escaneamento. | Usuário sem permissão para acessar o socket do Docker. | Adicione o usuário ao grupo docker ou rode como root. | Imagens seguras: minimização, escaneamento e atualização |
| Aplicação quebra após atualização de dependências. | Mudança incompatível em alguma biblioteca. | Verifique as notas de versão e ajuste o código conforme necessário. | Imagens seguras: minimização, escaneamento e atualização |
| Consultas lentas ou travando | Granularidade muito alta ou excesso de séries | Reduza a frequência de scraping ou agregue métricas antigas | Impacto de granularidade e retenção no custo e na performanc |
| Disco enchendo rápido | Retenção longa demais ou muitas séries | Reduza a retenção ou implemente downsampling | Impacto de granularidade e retenção no custo e na performanc |
| Prometheus reiniciando ou falhando | Uso excessivo de RAM por index | Reduza o número de séries ou aumente a RAM | Impacto de granularidade e retenção no custo e na performanc |
| ansible: comando não encontrado | Instalação incompleta ou PATH não atualizado | Reinstale o pacote e reinicie o terminal | Instalação do Ansible: pacotes, dependências e primeiros com |
| Erro: Python não encontrado | Python não instalado ou versão incompatível | Instale Python 3.6 ou superior | Instalação do Ansible: pacotes, dependências e primeiros com |
| Erro de permissão SSH | Usuário remoto sem permissão ou SSH não configurado | Ajuste permissões e configure o SSH corretamente | Instalação do Ansible: pacotes, dependências e primeiros com |
| Prometheus não inicia | Permissões ou erro no prometheus.yml | Verifique logs em journalctl -u prometheus e valide o YAML com promtool | Instalando Prometheus, Node Exporter e Grafana do jeito cert |
| Node Exporter não aparece como UP | Porta 9100 bloqueada ou serviço não iniciado | Confirme com systemctl status node_exporter e firewall | Instalando Prometheus, Node Exporter e Grafana do jeito cert |
| Não acessa o Grafana na porta 3000 | Firewall ou serviço não iniciado | Cheque systemctl status grafana-server e regras de firewall | Instalando Prometheus, Node Exporter e Grafana do jeito cert |
| Falha de conexão SSH nos hosts | Runner sem chave SSH válida ou sem acesso à rede | Configure chave SSH e verifique conectividade | Integração com CI/CD: disparando Ansible de pipelines automa |
| Erro 'ansible-playbook: command not found' | Ansible não instalado no runner/agente | Instale o Ansible com pip ou use imagem Docker adequada | Integração com CI/CD: disparando Ansible de pipelines automa |
| Variáveis de ambiente não reconhecidas no playbook | Variáveis não exportadas ou não definidas no pipeline | Defina variáveis no pipeline e use lookup('env') no playbook | Integração com CI/CD: disparando Ansible de pipelines automa |
| Logs não aparecem como artefato | Configuração de artefatos ausente ou caminho errado | Revise a seção artifacts ou archiveArtifacts do pipeline | Integração com CI/CD: disparando Ansible de pipelines automa |
| Inventário retorna vazio | Filtros muito restritivos ou credenciais incorretas | Revise os filtros e teste as credenciais com a CLI do provedor | Inventários dinâmicos: automatizando o mapeamento de infraes |
| Erro de autenticação | Variáveis de ambiente ausentes ou incorretas | Configure corretamente as variáveis exigidas pelo plugin | Inventários dinâmicos: automatizando o mapeamento de infraes |
| Hosts aparecem com IP errado | Campo de mapeamento 'ansible_host' não configurado | Use a opção 'compose' para definir o atributo correto | Inventários dinâmicos: automatizando o mapeamento de infraes |
| A aplicação falha ao iniciar como usuário não-root | Permissões de arquivos ou diretórios insuficientes para o novo usuário | Ajuste permissões ou revise o Dockerfile para garantir acesso ao diretório necessário | Isolamento de containers: usuários, capabilities e redes res |
| O container não consegue acessar a rede | Container está em uma rede isolada ou com --network none | Conecte o container à rede correta com 'docker network connect' | Isolamento de containers: usuários, capabilities e redes res |
| Erro ao montar volume como somente leitura | A aplicação tenta escrever em um volume montado como ro | Revise a aplicação ou monte o volume como leitura/escrita apenas se necessário | Isolamento de containers: usuários, capabilities e redes res |
| Job fica em estado 'BackoffLimitExceeded' | Comando do container falha repetidamente | Verifique logs do Pod com 'kubectl logs' e ajuste o comando ou imagem | Jobs, CronJobs e Operators: automatizando tarefas no cluster |
| CronJob não executa no horário esperado | Expressão cron incorreta ou fuso horário do cluster | Revise o campo 'schedule' e ajuste timezone se necessário | Jobs, CronJobs e Operators: automatizando tarefas no cluster |
| Operator não cria recursos esperados | CRDs não instalados ou permissões insuficientes | Confirme instalação dos CRDs e permissões do ServiceAccount | Jobs, CronJobs e Operators: automatizando tarefas no cluster |
| Pods não sobem em nodes edge | Configuração de rede ou recursos insuficientes | Revise limites de CPU/memória e conectividade do CNI | Kubernetes além do data center: edge, 5G e IoT em produção |
| Métricas não aparecem no Prometheus central | Sincronização falha devido à conectividade intermitente | Ajuste o scrape_interval e verifique logs de exportação | Kubernetes além do data center: edge, 5G e IoT em produção |
| Atualizações não propagam para todos os clusters | Clusters federados desconectados ou erro de configuração no KubeFed | Verifique status dos clusters e sincronização de políticas | Kubernetes além do data center: edge, 5G e IoT em produção |
| kubectl demora minutos para responder | API server saturado ou etcd lento | Reduza carga, revise controllers e monitore latência do etcd | Limites práticos e gargalos: o que a documentação diz e o qu |
| Falhas intermitentes de DNS em pods | CoreDNS sem HA ou sobrecarregado | Aumente réplicas do CoreDNS e distribua pods | Limites práticos e gargalos: o que a documentação diz e o qu |
| Pods não são agendados mesmo com recursos livres | Controller Manager ou Scheduler atrasados | Verifique uso de CPU/memória e aumente réplicas se possível | Limites práticos e gargalos: o que a documentação diz e o qu |
| Tasks não são executadas em todos os hosts esperados | Filtro de --limit restritivo ou erro no inventário | Revise o parâmetro --limit e o inventário | Limiting, tags e estratégia de execução: controlando o escop |
| Tasks ignoradas mesmo sem --skip-tags | Tags não aplicadas corretamente nas tasks | Verifique se as tags estão declaradas na sintaxe correta | Limiting, tags e estratégia de execução: controlando o escop |
| Execução muito lenta | Estratégia linear em ambiente grande | Considere usar a estratégia free ou limitar hosts | Limiting, tags e estratégia de execução: controlando o escop |
| Dificuldade para rastrear falhas | Uso da estratégia free sem logs detalhados | Habilite logs e monitore hosts individualmente | Limiting, tags e estratégia de execução: controlando o escop |
| Volumes importantes foram apagados | Falta de backup ou identificação dos volumes críticos | Implemente backup regular e use labels para marcar volumes essenciais | Limpeza e manutenção automática: containers, imagens e volum |
| Deploy ficou lento após limpeza | Imagens necessárias foram removidas e precisam ser baixadas novamente | Ajuste filtros para preservar imagens frequentemente usadas | Limpeza e manutenção automática: containers, imagens e volum |
| Containers essenciais foram removidos | Limpeza executada sem verificar containers em uso | Sempre revise containers ativos antes de rodar prune | Limpeza e manutenção automática: containers, imagens e volum |
| ansible-lint não reconhece regras customizadas | Arquivo .ansible-lint mal formatado ou na pasta errada | Verifique a sintaxe YAML e o local do arquivo | Linting, testes e CI: garantindo qualidade antes de rodar em |
| molecule test falha ao iniciar container | Docker não está rodando ou permissões insuficientes | Garanta que o Docker está ativo e o usuário tem permissão | Linting, testes e CI: garantindo qualidade antes de rodar em |
| Pipeline de CI não executa jobs de lint ou test | Jobs não definidos corretamente no arquivo de pipeline | Revise a sintaxe e estágios do pipeline conforme a documentação da sua ferramenta | Linting, testes e CI: garantindo qualidade antes de rodar em |
| Log vazio após execução | Permissões incorretas no arquivo ou diretório de log | Ajuste permissões com chown e chmod para o usuário do Ansible | Logs detalhados e callbacks: rastreando cada passo da automa |
| Callback não gera arquivos | Callback não está na whitelist ou não instalado | Adicione o callback em callback_whitelist e verifique instalação | Logs detalhados e callbacks: rastreando cada passo da automa |
| Logs muito grandes | Nível de verbosidade excessivo | Reduza o nível de verbose (-v ou -vv) | Logs detalhados e callbacks: rastreando cada passo da automa |
| Dados sensíveis expostos nos logs | Verbose alto ou falta de no_log em tasks sensíveis | Use no_log: true em tasks com dados críticos | Logs detalhados e callbacks: rastreando cada passo da automa |
| Logs não aparecem no coletor central | Driver de log ou endereço do coletor incorretos | Revise a configuração do driver e do coletor; verifique portas e firewall | Logs e métricas: coletando o que importa em containers |
| Endpoint de métricas não responde | Docker não reiniciado ou configuração inválida | Confirme o conteúdo do daemon.json e reinicie o Docker | Logs e métricas: coletando o que importa em containers |
| Logs são truncados ou incompletos | Limite de tamanho do arquivo ou buffer do driver | Ajuste as opções de log-opts conforme a documentação do driver | Logs e métricas: coletando o que importa em containers |
| kubectl logs retorna vazio | O pod pode ter sido deletado ou não está gerando logs. | Verifique o status do pod com kubectl get pods e tente logs com --previous. | Logs, eventos e debugging: como não voar às cegas |
| Eventos não aparecem ou estão desatualizados | Limite de retenção de eventos atingido. | Aumente a retenção ou consulte eventos em tempo real. | Logs, eventos e debugging: como não voar às cegas |
| Logs centralizados não aparecem no Elasticsearch | Erro de configuração do Fluent Bit ou conexão com Elasticsearch. | Revise o ConfigMap do Fluent Bit e logs do DaemonSet. | Logs, eventos e debugging: como não voar às cegas |
| Tarefa roda em todos os hosts, ignorando condição | Sintaxe errada no 'when' ou fato ausente | Verifique a expressão e se o fato existe com 'ansible -m setup' | Loops, when e handlers: eliminando repetição e criando autom |
| Handler não é executado mesmo após mudança | Faltou 'notify' na tarefa ou nome do handler não bate | Confirme o nome exato do handler e o uso de 'notify' | Loops, when e handlers: eliminando repetição e criando autom |
| Loop não itera sobre todos os itens | Variável mal definida ou tipo errado | Cheque a definição da lista e o uso correto de 'loop' | Loops, when e handlers: eliminando repetição e criando autom |
| kubectl retorna erro de sintaxe YAML | Indentação ou campo inválido no manifesto | Use um validador YAML e revise o arquivo linha a linha | Manifestos limpos, DRY e versionamento: o básico que muita g |
| Alteração em um ambiente afeta outro | Recurso compartilhado sem overlay ou parametrização | Separe variáveis por ambiente usando Helm values ou overlays do Kustomize | Manifestos limpos, DRY e versionamento: o básico que muita g |
| Manifestos diferentes para o mesmo recurso divergem | Cópia manual sem DRY | Centralize configurações comuns e use templates ou patches | Manifestos limpos, DRY e versionamento: o básico que muita g |
| Métricas de um serviço não aparecem no Prometheus | Exporter não configurado corretamente ou porta bloqueada | Verifique a configuração do job no Prometheus e conectividade de rede | Mapeamento de dependências e pontos cegos em ambientes distr |
| Alertas não disparam mesmo com falha | Regra de alerta mal configurada ou label errado | Revise a expressão da regra e os labels usados | Mapeamento de dependências e pontos cegos em ambientes distr |
| Blackbox exporter retorna erro de timeout | Destino inacessível ou firewall bloqueando | Teste conectividade manualmente e ajuste regras de firewall | Mapeamento de dependências e pontos cegos em ambientes distr |
| Dashboard mostra dados irrelevantes | Métricas ruidosas não foram filtradas | Ajuste metric_relabel_configs e revise dashboards | Métricas que importam: SLOs, SLIs e o que jogar fora |
| Alertas falsos disparando | Métricas sem ação associada estão gerando alertas | Desative alertas de métricas não essenciais | Métricas que importam: SLOs, SLIs e o que jogar fora |
| Equipe não entende o que a métrica significa | Falta de documentação | Inclua descrições claras para cada métrica | Métricas que importam: SLOs, SLIs e o que jogar fora |
| Prometheus consumindo muito recurso | Coleta excessiva de métricas inúteis | Reduza o escopo de coleta via scrape_config | Métricas que importam: SLOs, SLIs e o que jogar fora |
| Queries lentas ou timeout no Grafana | Cardinalidade alta ou granularidade excessiva | Reduza labels únicos e aumente o scrape_interval | Métricas: cardinalidade, granularidade e retenção sem mágica |
| Prometheus usando muita RAM ou disco | Retenção longa ou muitas séries | Reduza a retenção e revise labels | Métricas: cardinalidade, granularidade e retenção sem mágica |
| Dados antigos sumindo antes do esperado | Retenção configurada muito curta | Aumente o parâmetro --storage.tsdb.retention.time | Métricas: cardinalidade, granularidade e retenção sem mágica |
| Pods reiniciando em loop | Readiness ou liveness probe mal configurado | Ajuste os endpoints e tempos dos probes | Migração de aplicações legadas: o que funcionou, o que não f |
| Erro de conexão com sistemas externos | Service ExternalName ou DNS incorreto | Verifique nome e resolução DNS dos serviços | Migração de aplicações legadas: o que funcionou, o que não f |
| Dados não persistem entre reinícios | Falta de volumes persistentes | Configure PersistentVolume e PersistentVolumeClaim | Migração de aplicações legadas: o que funcionou, o que não f |
| A aplicação não inicia no container | Dependência de arquivo ou biblioteca ausente na imagem | Revise o Dockerfile e adicione as dependências necessárias | Migração de legado para containers: estratégias e armadilhas |
| Perda de dados após reinício do container | Dados não estão em volumes persistentes | Monte volumes externos para persistência | Migração de legado para containers: estratégias e armadilhas |
| Erro de conexão com banco de dados | Variável de ambiente DB_HOST incorreta ou serviço inacessível | Corrija a variável e verifique a rede entre containers | Migração de legado para containers: estratégias e armadilhas |
| Métricas de potência não aparecem | OID incorreto ou permissão SNMP insuficiente | Confirme OID com snmpwalk e ajuste comunidade SNMP | Monitorando redes de fibra dedicadas: aprendizados reais |
| Alertas disparam sem motivo | Threshold mal calibrado ou ausência de for: | Reveja valores típicos da rede e ajuste regras | Monitorando redes de fibra dedicadas: aprendizados reais |
| Exporter SNMP para de responder | Falta de recursos ou falha de rede | Reinicie o serviço e monitore uso de CPU/memória | Monitorando redes de fibra dedicadas: aprendizados reais |
| Pods não aparecem ao usar selector | Labels dos pods não correspondem ao selector do comando ou do service | Revise as labels dos pods e o campo selector do service ou comando | Namespaces, labels e selectors: organizando workloads de ver |
| Erro ao criar recurso: namespace não encontrado | Namespace especificado não existe | Crie o namespace antes de aplicar o recurso | Namespaces, labels e selectors: organizando workloads de ver |
| Service não encontra pods | Selector do service não bate com as labels dos pods | Ajuste o selector ou as labels dos pods para coincidirem | Namespaces, labels e selectors: organizando workloads de ver |
| Pod não comunica com outro pod no mesmo namespace | Política de rede bloqueando tráfego ou problema de CNI | Revisar e ajustar NetworkPolicy ou reinstalar o CNI | Network, DNS e storage: quando o problema não é seu código |
| Serviço não resolve nome DNS | CoreDNS parado ou falha de configuração | Reiniciar pods do CoreDNS e revisar ConfigMap | Network, DNS e storage: quando o problema não é seu código |
| PVC permanece em Pending | StorageClass incorreta ou sem PVs disponíveis | Criar PVs compatíveis ou corrigir StorageClass | Network, DNS e storage: quando o problema não é seu código |
| Pod não consegue se comunicar com outro pod esperado | NetworkPolicy bloqueando tráfego | Revise as regras de ingress/egress e ajuste os selectors | NetworkPolicies, PodSecurity e RBAC: defendendo de dentro pa |
| Deployments falham com erro de permissão | PodSecurity Standard restritivo demais | Ajuste o nível de enforcement ou corrija o manifest do pod | NetworkPolicies, PodSecurity e RBAC: defendendo de dentro pa |
| Usuário não consegue executar comandos necessários | RBAC muito restritivo | Adicione permissões específicas no Role/RoleBinding | NetworkPolicies, PodSecurity e RBAC: defendendo de dentro pa |
| Permissões inesperadas após alterações | Bindings antigos ou sobrepostos | Liste todos os bindings e remova os desnecessários | NetworkPolicies, PodSecurity e RBAC: defendendo de dentro pa |
| Handler não é executado após task | A task não gerou mudança (changed: false) | Verifique se o arquivo realmente mudou ou force a alteração | Notificações, dependências e orchestration: coordenando múlt |
| Serviço dependente falha ao iniciar | wait_for não aguardou o tempo suficiente ou host/porta incorretos | Ajuste o timeout ou corrija o endereço | Notificações, dependências e orchestration: coordenando múlt |
| Playbook executa tasks fora da ordem esperada | Falta de import_playbook ou tasks mal organizadas | Revise a ordem dos imports e tasks | Notificações, dependências e orchestration: coordenando múlt |
| Erro: 'container process is already dead' | O rootfs está vazio ou corrompido. | Verifique se o rootfs contém um shell funcional, como /bin/sh. | O que vem depois do Docker: OCI, runtimes alternativos e o e |
| Permissão negada ao rodar runc | Faltam permissões de root. | Execute o comando com 'sudo'. | O que vem depois do Docker: OCI, runtimes alternativos e o e |
| Arquivo config.json inválido | Sintaxe JSON incorreta. | Valide o JSON e consulte a especificação OCI. | O que vem depois do Docker: OCI, runtimes alternativos e o e |
| Métricas não aparecem no Prometheus | Collector não está expondo endpoint correto ou scrape não configurado | Revise a configuração do Collector e do Prometheus, valide portas e caminhos | OpenTelemetry, integrações e o futuro da observabilidade liv |
| Grafana não exibe traces | Datasource Tempo não configurado corretamente | Verifique URL e permissões do datasource Tempo no Grafana | OpenTelemetry, integrações e o futuro da observabilidade liv |
| Uso de memória alto no Prometheus | Cardinalidade excessiva de métricas | Reduza labels dinâmicos e monitore 'prometheus_tsdb_head_series' | OpenTelemetry, integrações e o futuro da observabilidade liv |
| Erros de conexão SSH em massa | forks alto demais ou limite de SSH baixo | Reduza forks ou aumente MaxSessions nos hosts | Paralelismo, forks e limites: extraindo performance sem perd |
| Servidor de controle travando | Consumo excessivo de CPU/memória | Reduza forks e monitore recursos | Paralelismo, forks e limites: extraindo performance sem perd |
| Execução lenta demais | forks baixo ou serial muito restritivo | Aumente forks gradualmente e ajuste serial | Paralelismo, forks e limites: extraindo performance sem perd |
| Hosts pulados sem erro claro | Limite de conexões simultâneas atingido | Verifique logs de SSH e ajuste limites | Paralelismo, forks e limites: extraindo performance sem perd |
| Só uma instância do serviço responde | O balanceador de carga não está configurado corretamente ou o DNS não está resolvendo todas as réplicas. | Verifique a configuração do Nginx/HAProxy e os nomes dos containers. | Planejando para crescer: estratégias de dimensionamento com |
| Containers caem após subir | Erro na imagem, porta em uso ou falta de recursos. | Cheque logs com 'docker logs <container>' e ajuste o Compose. | Planejando para crescer: estratégias de dimensionamento com |
| Não consigo escalar além de certo número de réplicas | Limite de recursos do host ou conflito de portas. | Aumente recursos ou ajuste as portas expostas. | Planejando para crescer: estratégias de dimensionamento com |
| Pod Pending por minutos | Falta de recursos ou restrição de nodeSelector/tolerations | Reduza requests/limits ou ajuste nodeSelector/tolerations | Pod Pending, CrashLoopBackOff e OOMKilled: decifrando mensag |
| CrashLoopBackOff após segundos em Running | Erro de inicialização ou dependência externa indisponível | Corrija o entrypoint ou garanta que dependências estejam acessíveis | Pod Pending, CrashLoopBackOff e OOMKilled: decifrando mensag |
| OOMKilled frequente | Limite de memória baixo ou leak de memória | Aumente o limite de memória ou corrija o leak no código | Pod Pending, CrashLoopBackOff e OOMKilled: decifrando mensag |
| Pod não sai do estado Pending | Falta de recursos no Node ou erro de agendamento | Verifique 'kubectl describe pod <nome>' para detalhes e libere recursos ou ajuste requests/limits. | Pods, nós e clusters: os blocos fundamentais do Kubernetes |
| Service sem endpoint | Selector do Service não corresponde aos labels dos Pods | Confirme labels no Deployment e no Service. | Pods, nós e clusters: os blocos fundamentais do Kubernetes |
| Node NotReady | Problemas de rede, kubelet parado ou falta de recursos | Cheque logs do kubelet e conectividade de rede. | Pods, nós e clusters: os blocos fundamentais do Kubernetes |
| Playbook falha em alguns servidores | Conexão SSH não configurada ou permissões insuficientes | Ajuste as chaves SSH e garanta que o usuário tem sudo | Por que automatizar? O que muda em infraestrutura quando voc |
| Estados diferentes após rodar o playbook | Playbook não cobre todos os aspectos do estado desejado | Revise e amplie o playbook para cobrir todas as configurações | Por que automatizar? O que muda em infraestrutura quando voc |
| Mudanças não versionadas | Playbooks editados fora do controle de versão | Centralize e discipline o uso do Git | Por que automatizar? O que muda em infraestrutura quando voc |
| Container não inicia | Erro no Dockerfile ou dependências ausentes | Verifique logs com 'docker logs <nome_do_container>' e revise o Dockerfile | Por que containers mudam o jogo: isolamento, portabilidade e |
| Containers compartilham dados inesperadamente | Volumes ou redes mal configurados | Revise parâmetros de volume e rede no comando 'docker run' | Por que containers mudam o jogo: isolamento, portabilidade e |
| Consumo de memória excessivo | Limites de cgroup não definidos | Use flags como '--memory' no 'docker run' para limitar recursos | Por que containers mudam o jogo: isolamento, portabilidade e |
| Métricas não aparecem no Prometheus | Endpoint /metrics inacessível ou mal configurado | Verifique firewall, endereço e formato do endpoint. | Por que logs, métricas e traces não são a mesma coisa |
| Logs difíceis de correlacionar entre serviços | Falta de IDs de correlação nos logs | Inclua trace_id ou request_id em todos os logs. | Por que logs, métricas e traces não são a mesma coisa |
| Traces incompletos | Instrumentação parcial ou bibliotecas desatualizadas | Atualize bibliotecas e revise pontos de instrumentação. | Por que logs, métricas e traces não são a mesma coisa |
| Pods não são recriados após falha | Deployment ou ReplicaSet mal configurado | Verifique o manifesto YAML e ajuste o campo 'replicas'. | Por que orquestrar containers? O problema real que o Kuberne |
| Containers não escalam automaticamente | Horizontal Pod Autoscaler não configurado | Implemente e configure o HPA conforme a documentação. | Por que orquestrar containers? O problema real que o Kuberne |
| Serviços ficam indisponíveis após atualização | Rollout mal planejado ou probes ausentes | Implemente readiness/liveness probes e use estratégias de rollout seguras. | Por que orquestrar containers? O problema real que o Kuberne |
| Target aparece como DOWN no Prometheus | Node Exporter não está rodando ou porta 9100 bloqueada | Inicie o Node Exporter e libere a porta no firewall | Primeiro scrape, primeira query: validando a coleta de métri |
| Query retorna vazio | Nome do job ou target incorreto no prometheus.yml | Revise o job_name e targets, reinicie o Prometheus | Primeiro scrape, primeira query: validando a coleta de métri |
| Erro de sintaxe ao reiniciar Prometheus | Arquivo prometheus.yml com indentação errada | Valide o YAML com uma ferramenta online antes de reiniciar | Primeiro scrape, primeira query: validando a coleta de métri |
| curl no /metrics retorna erro | Node Exporter não iniciado ou porta errada | Verifique o status do serviço e a porta configurada | Primeiro scrape, primeira query: validando a coleta de métri |
| Tarefa falha com 'Sorry, user ansible is not allowed to execute ...' | Usuário não tem permissão no sudoers para o comando solicitado. | Adicione permissão específica no sudoers usando visudo. | Privilégios e sudo: executando comandos críticos com control |
| Playbook pede senha de sudo e falha mesmo com senha correta | Usuário não está no grupo sudo ou wheel. | Adicione o usuário ao grupo correto com 'sudo usermod -aG sudo ansible'. | Privilégios e sudo: executando comandos críticos com control |
| Comandos privilegiados rodam sem restrição | Regra sudoers está muito permissiva (ALL=(ALL) NOPASSWD:ALL). | Restringir comandos permitidos no sudoers. | Privilégios e sudo: executando comandos críticos com control |
| Container não acessa outro container pelo nome | Containers em redes diferentes ou DNS interno desativado. | Conecte ambos à mesma rede Docker. | Problemas de rede e volume: identificando e corrigindo garga |
| Erro de permissão ao gravar em volume | UID/GID do processo no container não bate com o dono do diretório do volume no host. | Ajuste permissões no host conforme necessário. | Problemas de rede e volume: identificando e corrigindo garga |
| Volume corrompido após queda de energia | Desligamento abrupto durante escrita. | Restaure backup, revise práticas de shutdown. | Problemas de rede e volume: identificando e corrigindo garga |
| Alertas não aparecem no Alertmanager | Configuração incorreta do endpoint do Alertmanager no Prometheus | Revise a seção alerting.alertmanagers no prometheus.yml | Prometheus e Alertmanager: como os dados fluem até o alerta |
| Alertas não são enviados por email | Configuração errada de SMTP no alertmanager.yml | Verifique smarthost, usuário e senha | Prometheus e Alertmanager: como os dados fluem até o alerta |
| Métricas não aparecem no Prometheus | Exporter não está rodando ou porta bloqueada | Confirme se o exporter está ativo e a porta liberada | Prometheus e Alertmanager: como os dados fluem até o alerta |
| Alertas disparam sem motivo | Expressão PromQL mal definida ou sem for | Reveja a expressão e adicione o parâmetro for | Prometheus e Alertmanager: como os dados fluem até o alerta |
| Recording rule não aparece nas métricas | Erro de sintaxe no arquivo de rules ou caminho não referenciado no prometheus.yml | Valide o YAML e o caminho em rule_files | Prometheus e Grafana: recursos avançados e novidades recente |
| Alertas adaptativos não disparam | Função anomaly_detector não disponível ou dados insuficientes | Consulte a documentação do Mimir e garanta volume de dados | Prometheus e Grafana: recursos avançados e novidades recente |
| Prometheus não inicia com flags experimentais | Flag digitada incorretamente ou recurso removido na versão | Consulte a documentação da versão instalada | Prometheus e Grafana: recursos avançados e novidades recente |
| Pods do Prometheus ou kube-state-metrics em CrashLoopBackOff | Falta de permissões ou recursos insuficientes no cluster | Verifique permissões RBAC e recursos disponíveis com 'kubectl describe pod' | Prometheus e kube-state-metrics: métricas que importam |
| Grafana não exibe dashboards de Kubernetes | Datasource Prometheus não configurado corretamente | Verifique configuração do datasource em Grafana e reinicie o pod se necessário | Prometheus e kube-state-metrics: métricas que importam |
| Alertas não disparam | Regras de alerta mal definidas ou CRDs ausentes | Confirme a existência dos CRDs PrometheusRule e revise as expressões das regras | Prometheus e kube-state-metrics: métricas que importam |
| Erro de certificado inválido ao acessar HTTPS | Certificado autoassinado não confiado pelo navegador | Adicione a CA ao repositório de certificados do sistema ou use certificado válido | Protegendo endpoints: TLS, autenticação e roles no Prometheu |
| Prometheus não inicia após configuração TLS | Caminho do certificado incorreto ou permissões erradas | Verifique os caminhos e permissões dos arquivos de certificado | Protegendo endpoints: TLS, autenticação e roles no Prometheu |
| Usuário do Grafana não consegue editar dashboards | Role atribuída é Viewer, não Editor | Atribua a role correta ao usuário | Protegendo endpoints: TLS, autenticação e roles no Prometheu |
| Prometheus não inicia após deploy | Configuração inválida no prometheus.yml ou permissões incorretas | Verifique logs em /var/log/syslog e valide o YAML com 'promtool check config' | Provisionando Prometheus e Grafana com Ansible e Terraform |
| Grafana não sobe na porta 3000 | Firewall bloqueando porta ou serviço não iniciado | Confirme regras de firewall e status do serviço com 'systemctl status grafana-server' | Provisionando Prometheus e Grafana com Ansible e Terraform |
| Exporters não aparecem no Prometheus | Targets não configurados corretamente no prometheus.yml | Revise a seção 'scrape_configs' e reinicie o Prometheus | Provisionando Prometheus e Grafana com Ansible e Terraform |
| O site não carrega pelo IP do balanceador | Firewall bloqueando portas ou HAProxy não iniciado | Verifique regras de firewall e status do serviço com 'systemctl status haproxy' | Provisionando servidores web: do zero ao load balancer com A |
| Erro 502 Bad Gateway no navegador | Backend não acessível ou serviço web parado | Cheque se Nginx/Apache está rodando nos servidores web e se as portas estão liberadas | Provisionando servidores web: do zero ao load balancer com A |
| Deploy da aplicação não atualiza nos servidores | Cache do navegador ou permissão incorreta nos arquivos | Limpe o cache e confira permissões com 'ls -l /var/www/html' | Provisionando servidores web: do zero ao load balancer com A |
| Container reinicia em loop | Erro no processo principal ou falta de recurso | Verifique logs e ajuste limites de memória/CPU | Quando tudo quebra: debug de containers e análise de falhas |
| Container parado com ExitCode 137 | Falta de memória (OOM Killer) | Aumente o limite de memória ou otimize a aplicação | Quando tudo quebra: debug de containers e análise de falhas |
| Container rodando mas sem resposta | Deadlock ou bloqueio de I/O | Acesse com docker exec, mate processos presos ou reinicie após análise | Quando tudo quebra: debug de containers e análise de falhas |
| Queries lentas ou timeout | Cardinalidade alta ou queries globais sem agregação | Reduza a cardinalidade, use federation apenas para agregados | Quantos Prometheus você realmente precisa? Sharding, federat |
| Prometheus travando ou reiniciando | Uso de RAM acima da capacidade | Divida os targets, diminua a retenção, aumente a RAM | Quantos Prometheus você realmente precisa? Sharding, federat |
| Dados antigos sumindo antes do esperado | Retenção configurada muito curta ou falta de disco | Ajuste --storage.tsdb.retention.time e monitore o uso de disco | Quantos Prometheus você realmente precisa? Sharding, federat |
| Usuário consegue mais permissões do que deveria | RoleBindings ou ClusterRoleBindings excessivos ou antigos | Revise e remova bindings desnecessários | RBAC, quotas e policies: controle fino do que cada um pode f |
| Pods falham ao iniciar por falta de recursos | ResourceQuota muito restritiva | Ajuste os valores de quota conforme a necessidade real | RBAC, quotas e policies: controle fino do que cada um pode f |
| Permissões não surtem efeito | RoleBinding/ClusterRoleBinding no namespace errado | Verifique o campo 'namespace' nos manifests | RBAC, quotas e policies: controle fino do que cada um pode f |
| Alerta não chegou ao e-mail ou canal configurado | Erro na configuração do Alertmanager ou falha de rede | Revise o bloco receivers do alertmanager.yml e teste envio manual com 'amtool'. | Recuperação de incidentes: do alerta ao post-mortem |
| Dashboards do Grafana não mostram dados do período do incidente | Retention do Prometheus curto ou falha na coleta | Aumente o retention com --storage.tsdb.retention.time e verifique targets no Prometheus. | Recuperação de incidentes: do alerta ao post-mortem |
| Métricas insuficientes para RCA | Faltam exporters ou labels relevantes | Implemente exporters adicionais (node_exporter, blackbox_exporter) e revise labels nas métricas. | Recuperação de incidentes: do alerta ao post-mortem |
| Container é finalizado com erro OOMKilled | Limite de memória muito baixo para a carga real | Aumente o valor do flag --memory e monitore novamente | Recursos sob controle: CPU, memória e limites de containers |
| Container consome mais CPU que o esperado | Flag --cpus não foi definida ou está alta demais | Defina ou reduza --cpus ao recriar o container | Recursos sob controle: CPU, memória e limites de containers |
| Sistema operacional fica lento ou trava | Overcommit de memória ou CPU | Reduza o número de containers ou os limites individuais | Recursos sob controle: CPU, memória e limites de containers |
| docker stats mostra uso de swap alto | Limite de --memory-swap está alto ou não definido | Defina --memory-swap igual a --memory para evitar swap | Recursos sob controle: CPU, memória e limites de containers |
| Pods não conseguem se comunicar | CNI não instalado ou configurado incorretamente | Reinstale o plugin CNI e verifique logs do kubelet | Rede, storage e identidade: decisões que não voltam atrás |
| PVC permanece em estado Pending | Provisionador de StorageClass não está disponível ou mal configurado | Revise parâmetros da StorageClass e logs do CSI | Rede, storage e identidade: decisões que não voltam atrás |
| Usuário externo não autentica | Parâmetros OIDC incorretos no kube-apiserver | Revise flags do kube-apiserver e endpoint do OIDC | Rede, storage e identidade: decisões que não voltam atrás |
| Container não enxerga outro pelo nome. | Estão em redes diferentes ou não conectados à mesma bridge. | Conecte ambos à mesma rede personalizada. | Redes e volumes: conectando e persistindo containers |
| Dados somem após reiniciar container. | Volume não foi montado corretamente. | Verifique o parâmetro -v e se o volume existe. | Redes e volumes: conectando e persistindo containers |
| Permissão negada ao acessar bind mount. | Permissões do diretório no host estão incorretas. | Ajuste permissões do diretório para o usuário do container. | Redes e volumes: conectando e persistindo containers |
| Erro 'denied: access forbidden' | Permissões insuficientes no projeto ou autenticação incorreta. | Revise o papel do usuário no projeto e refaça o login no Docker. | Registries privados: armazenando e distribuindo imagens com |
| Erro de certificado SSL ao fazer push/pull | Certificado inválido ou ausente no registry. | Configure corretamente o certificado SSL no GitLab e no Docker. | Registries privados: armazenando e distribuindo imagens com |
| Imagens antigas não são removidas | Política de expiração não configurada ou não ativada. | Ajuste e ative a expiration policy no menu do projeto. | Registries privados: armazenando e distribuindo imagens com |
| Pod é finalizado com OOMKilled. | Limit de memória muito baixo. | Aumente o limit de memória no manifest. | Requests, limits e quotas: o que realmente controla seu clus |
| Pod roda lento, mas não é OOMKilled. | Limit de CPU baixo, causando throttling. | Ajuste o limit de CPU para um valor maior. | Requests, limits e quotas: o que realmente controla seu clus |
| Não consigo criar novos pods no namespace. | ResourceQuota atingido. | Revise ou aumente os limites do ResourceQuota. | Requests, limits e quotas: o que realmente controla seu clus |
| Role não encontrada ao executar playbook | Role não instalada ou caminho errado | Use 'ansible-galaxy install' e verifique o diretório de roles | Roles e reuso: compondo automações modulares com Ansible Gal |
| Erro de dependência não resolvida | Dependência não declarada ou não instalada | Inclua dependências em meta/main.yml e rode 'ansible-galaxy install -r requirements.yml' | Roles e reuso: compondo automações modulares com Ansible Gal |
| Variáveis não aplicadas como esperado | Conflito entre defaults, vars e variáveis do playbook | Revise a precedência de variáveis na documentação oficial | Roles e reuso: compondo automações modulares com Ansible Gal |
| Target aparece como DOWN no Status > Targets | Exporter caiu ou endpoint inacessível | Reinicie o exporter e verifique firewall | Scrape falhou? Diagnóstico rápido de coleta e armazenamento |
| Erro 'context deadline exceeded' nos logs | Timeout de scrape insuficiente ou target lento | Aumente scrape_timeout ou otimize o target | Scrape falhou? Diagnóstico rápido de coleta e armazenamento |
| Erro 'no such host' nos logs | Problema de DNS | Corrija DNS ou use IP direto | Scrape falhou? Diagnóstico rápido de coleta e armazenamento |
| Métricas antigas não atualizam | Exporter travado | Reinicie o exporter | Scrape falhou? Diagnóstico rápido de coleta e armazenamento |
| Falhas intermitentes em vários targets | Sobrecarga no Prometheus | Aumente recursos ou distribua carga | Scrape falhou? Diagnóstico rápido de coleta e armazenamento |
| Segredos aparecem em texto claro no etcd | Criptografia de Secrets não ativada corretamente | Revise o EncryptionConfiguration e reinicie o kube-apiserver | Secrets, atualizações e patches: protegendo dados e software |
| Pods continuam usando Secret antigo após rotação | Pods não foram reiniciados ou variável de ambiente não foi atualizada | Force rollout do deployment com 'kubectl rollout restart' | Secrets, atualizações e patches: protegendo dados e software |
| Erro ao atualizar kubelet | Versão incompatível ou dependências quebradas | Consulte as notas de release e ajuste as versões dos componentes | Secrets, atualizações e patches: protegendo dados e software |
| Patches não têm efeito | Patch aplicado no recurso errado ou sintaxe incorreta | Confirme o nome do recurso e revise o comando | Secrets, atualizações e patches: protegendo dados e software |
| Pods do service mesh não sobem | Falta de recursos ou permissões insuficientes | Aumente requests/limits e revise RBAC | Service Mesh, eBPF e extensões: o que já é realidade e o que |
| Erro ao instalar Cilium | Kernel Linux incompatível | Atualize o kernel para versão suportada | Service Mesh, eBPF e extensões: o que já é realidade e o que |
| CRDs não aparecem no kubectl | Erro de sintaxe no YAML ou falta de apply | Valide o YAML e reaplique o arquivo | Service Mesh, eBPF e extensões: o que já é realidade e o que |
| Aumento inesperado de latência | Overhead dos proxies sidecar | Revise configuração e considere mesh mais leve | Service Mesh, eBPF e extensões: o que já é realidade e o que |
| Objetos federados não aparecem em clusters membros | KubeFed não está propagando devido a falha de registro ou permissões | Verifique logs do controlador federado e permissões RBAC nos clusters membros | Sharding, federation e multi-cluster: além do cluster único |
| Tráfego chega ao cluster errado | Configuração de DNS ou balanceador incorreta | Revise entradas DNS e regras do balanceador | Sharding, federation e multi-cluster: além do cluster único |
| Serviços inter-cluster não se comunicam | Falta de peering de redes ou regras de firewall | Implemente VPN ou ajuste regras de firewall entre clusters | Sharding, federation e multi-cluster: além do cluster único |
| Erro 'undefined variable' ao aplicar o template | Variável não definida no inventário ou group_vars | Defina a variável ou use filtro 'default' no template | Templates Jinja2: gerando arquivos de configuração dinâmicos |
| Arquivo gerado com blocos vazios | Condição if mal formulada ou variável booleana errada | Revise a lógica do template e o valor das variáveis | Templates Jinja2: gerando arquivos de configuração dinâmicos |
| Serviço não inicia após deploy | Sintaxe inválida no arquivo de configuração | Valide com comando de teste do serviço (ex: 'nginx -t') antes de reiniciar | Templates Jinja2: gerando arquivos de configuração dinâmicos |
| Permission denied (publickey) | Chave pública não está em authorized_keys ou permissões incorretas | Reenvie a chave e ajuste permissões de ~/.ssh e authorized_keys | Testando a conexão: configurando chaves SSH e validando aces |
| Timeout connecting to host | Firewall ou rede bloqueando porta 22 | Libere porta 22 no firewall e teste conectividade | Testando a conexão: configurando chaves SSH e validando aces |
| User not found | Usuário remoto não existe | Crie o usuário no nó remoto e refaça a configuração | Testando a conexão: configurando chaves SSH e validando aces |
| Cluster não agenda pods após queda de master | Single master sem HA | Implemente multi-master para alta disponibilidade | Topologias de cluster: single master, multi-master, edge e h |
| Pods de namespaces diferentes se comunicam mesmo após separação | Falta de NetworkPolicies | Aplique políticas de rede para isolar tráfego | Topologias de cluster: single master, multi-master, edge e h |
| Latência alta em edge | Cluster centralizado longe do usuário | Implemente cluster edge ou híbrido | Topologias de cluster: single master, multi-master, edge e h |
| AWX não inicia após deploy no Kubernetes | Recursos insuficientes ou permissões incorretas no cluster | Verifique logs dos pods com 'kubectl logs' e ajuste recursos ou permissões | Tower e AWX: gerenciamento centralizado e automação em larga |
| Erro 403 ao acessar API | Credenciais inválidas ou falta de permissão | Revise usuários, tokens e permissões atribuídas | Tower e AWX: gerenciamento centralizado e automação em larga |
| Execução de job falha sem logs detalhados | Playbook com erro ou credencial inválida | Revise o playbook, variáveis e credenciais associadas ao job template | Tower e AWX: gerenciamento centralizado e automação em larga |
| Variável não é reconhecida no playbook | Arquivo de variáveis com nome errado ou no diretório errado | Verifique se o nome do arquivo corresponde exatamente ao grupo ou host do inventário. | Variáveis, facts e group_vars: parametrizando ambientes sem |
| Facts não aparecem | gather_facts desativado | Confirme se gather_facts está true no playbook. | Variáveis, facts e group_vars: parametrizando ambientes sem |
| Valor inesperado de variável | Conflito de precedência | Revise todos os locais onde a variável é definida e teste com debug. | Variáveis, facts e group_vars: parametrizando ambientes sem |
| Playbook para com erro de variável indefinida | Variável não foi definida em nenhum lugar | Use debug para inspecionar variáveis e defina no inventário ou playbook | Verbose, debug e assert: ferramentas para enxergar o que est |
| Mensagem de erro genérica ao rodar com -v | Nível de verbose insuficiente | Aumente para -vvv ou -vvvv para mais detalhes | Verbose, debug e assert: ferramentas para enxergar o que est |
| Assert falha mesmo com variável aparentemente correta | Erro de sintaxe ou tipo na condição | Use debug para imprimir o valor real da variável antes do assert | Verbose, debug e assert: ferramentas para enxergar o que est |
| Logs mostram dados sensíveis | Verbose alto expõe variáveis secretas | Reduza o nível de verbose e revise logs antes de compartilhar | Verbose, debug e assert: ferramentas para enxergar o que est |
| Debug não imprime nada | Task não está sendo executada por causa de when ou tags | Verifique condições e tags da task | Verbose, debug e assert: ferramentas para enxergar o que est |
