Instalar o Wazuh com Docker Compose costuma ser rápido, mas alguns detalhes de versionamento e preparação de certificados podem quebrar toda a stack.
Este guia cobre dois erros clássicos:
not a directoryem bind mount de certificadoNon-string key at top level: 404nogenerate-certs.yml
O problema: Docker confundindo arquivo com diretório
Erro típico:
Error response from daemon: ... error mounting ".../wazuh-certificates/root-ca.pem" ... not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)?
Por que acontece?
No docker-compose.yml, o Wazuh mapeia arquivos .pem. Se o arquivo não existe no host, o Docker pode criar um diretório com aquele nome. Depois, o Dashboard tenta ler esse diretório como arquivo e falha.
A segunda armadilha: YAML com erro 404
Outro erro comum:
docker-compose -f generate-certs.yml run --rm generator
# Non-string key at top level: 404
Isso normalmente ocorre quando o arquivo foi baixado de URL errada no GitHub. Em vez do YAML, você baixa uma página HTML de 404 Not Found.
Solução definitiva
Passo 1: limpar ambiente quebrado
docker-compose down
docker container prune -f
rm -rf wazuh-certificates/
Opcional (reset de imagens):
docker rmi wazuh/wazuh-dashboard:4.9.0 wazuh/wazuh-indexer:4.9.0 wazuh/wazuh-manager:4.9.0
Passo 2: clonar versão correta
Evite baixar arquivos avulsos. Clone a versão exata:
git clone https://github.com/wazuh/wazuh-docker.git -b v4.9.0 wazuh_novo
cd wazuh_novo/single-node
Passo 3: gerar certificados
docker-compose -f generate-certs.yml run --rm generator
Passo 4: validar arquivos
ls -l wazuh-certificates/
Verifique se os itens são arquivos (-rw-...), e não diretórios (d...).
Passo 5: subir stack
docker-compose up -d
Regra de ouro
No Wazuh via Docker, mantenha sempre alinhados:
- versão das imagens
- arquivos YAML da mesma tag/branch
- certificados gerados no mesmo conjunto de configuração
Esse alinhamento evita horas de troubleshooting desnecessário.
Este post está licenciado sob CC BY-NC.
Comentários
Participe da discussão abaixo.
Comentários ainda não configurados. Adicione as opções do Cusdis em /assets/json/config/blog-comments-config.json.