Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

502 Bad Gateway ao tentar localhost/metrics depois de subir a stack com grafana

Baixei o projeto da aula, segui os passos criando a pasta grafana dentro da pasta eclipse-workspace/prometheus-grafana. Executei o chmod 777 grafana e conferi o arquivo docker-compose.yml. Tudo parece estar como descrito na aula. Ao executar o docker-compose up -d, os containers sobem sem erros:

Starting redis-forum-api ... done Starting mysql-forum-api ... done Starting app-forum-api ... done Starting proxy-forum-api ... done Starting prometheus-forum-api ... done Starting grafana-forum-api ... done Starting client-forum-api ... done

Mas ao fazer o primeiro teste da aula, tentando acessar localhost/metrics, o erro abaixo é exibido: 502 Bad Gateway nginx

Nessa aula, o professor também tem esse retorno ao tentar acessar pela primeira vez. Ele confere se o container subiu, tenta mais umas duas vezes e a página carrega.. No caso dele, era porque o container estava sendo carregado. Mas no meu caso, não acessa de jeito nenhum. Nem outros endereços como localhost:9090.

Como posso ter uma ideia do que pode estar acontecendo?

3 respostas

E aí, Luciano! Tudo beleza?

Então, bora dar uma olhada em algumas coisas que podem estar causando isso e como arrumar:

Primeiro, confirma que todos os containers estão rodando direitinho com o docker-compose ps. Esse comando mostra o status dos containers, e é sempre bom garantir que todos, especialmente o Prometheus e o Grafana, estão com status "Up".

docker-compose ps

Depois, dá uma espiada nos logs específicos do container Grafana para ver se tem alguma pista do que tá acontecendo:

docker-compose logs grafana-forum-api

Fica de olho em mensagens de erro ou alertas que possam dar uma luz sobre o problema.

Outra parada é verificar se as portas estão na boa e não sendo usadas por outros lances. Dá uma conferida nas portas definidas no docker-compose.yml, principalmente as do Grafana e do Prometheus. Por exemplo:

services:
 grafana-forum-api:
   ...
   ports:
     - "3000:3000"
   ...
 prometheus-forum-api:
   ...
   ports:
     - "9090:9090"
   ...

Confirma se as portas 3000 (Grafana) e 9090 (Prometheus) estão disponíveis.

Às vezes, os containers demoram um pouco para inicializar completamente, especialmente se o ambiente não for dos mais rápidos. Espera uns minutos depois de rodar o docker-compose up -d e tenta novamente acessar localhost/metrics.

Verifica também se o Grafana está configurado corretamente para se conectar ao Prometheus, geralmente através da configuração de um datasource. Confere se as configurações da URL do Prometheus no Grafana estão corretas.

Se ainda tiver dor de cabeça, tenta acessar o Prometheus diretamente para ver se tá respondendo direitinho. Vai no navegador e digita localhost:9090.

Se mesmo com essas dicas a coisa não melhorar, dá uma revisada no docker-compose.yml, especialmente nas configurações dos serviços Prometheus e Grafana. Confirma se os volumes, redes e outras configurações estão de acordo com o que foi passado no curso.

É isso aí!

Após rodar o docker-compose ps, os seguintes containers estão com status Restarting:

app-forum-api, mysql-forum-api e prometheus-forum-api

Os outros containers estão com status Up.

Pode me passar os passos para colocar esses três containers Up? Não tenho nenhuma mensagem de erro quando rodo o docker-compose up -d, todos os containers ficam como done. Mas agora rodando o docker-compose ps, dá para ver que os três containers acima não subiram.

solução!

Estudante,

Obrigado pelas dicas.

O negócio é que após subir os containers, rodei o docker-compose logs app-forum-api e vi no log o problema de permissão. A mesma coisa para mysql-forum-api e prometheus-forum-api, tudo problema de permissão na pasta.

Então, como vi no próprio forum e rodei o chmod -R 777 para as pastas app, mysql e prometheus.

Também fiz o ajuste no aquivo Dockerfile dentro da pasta app, colocando o ponto na linha do ARG JAR.., ficou assim: ARG JAR_FILE=target/*.jar

No forum vi mensagens de que também foi preciso ajustar o aquivo "application-prod.properties", corrigindo a linha 5, mas nessa versão do arquivo que baixei já estava escrito com o nome correto. Só precisei mesmo colocar o ponto "*.jar" na linha do Dockerfile da pasta app.

  • Depois parei todos os containers --> docker stop $(docker ps -a -q)
  • Apaguei todos os containers --> docker rm $(docker ps -a -q)
  • Apaguei todas as imagens --> docker rmi $(docker image ls -aq) --force
  • Dentro da pasta app, rebuild do projeto --> mvn clean package
  • Executei o docker-compose up -d na pasta do projeto e tudo foi baixado.

O bendito do container app-forum-api ficou Up (unhealthy), mas consegui acessar localhost/metrics e localhost:9090.

Acredito que o fato do container app-forum-api estar como unhealthy, não irá atrapalhar o seguimento do curso. Mas se mais a frente precisar resolver esse unhealthy, volto a pesquisar esse tema no forum.

Obrigado.