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

Erro- Subindo a stack com API e Prometheus

Professor estou com um erro para subir 1 dos serviços do microserviços que é o "prometheus-forum-api" esta dando erro em algum ponto de montagem. vou te passar os prints de configurações e erro para facilitar o analise.

  1. arquivo docker-compose.yml Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAo executar docker-compose up -d para subir os microservios, ele informa que não criou "prometheus-forum-api" Segue o print Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade
8 respostas

Oi, Jorge! Tudo bem?

Jorge, creio que você esteja sem o conteúdo fornecido no pacote que esta disponível para download na aula "Primeiros passos com Prometheus", neste pacote existe o diretório prometheus com um arquivo chamado prometheus.yml e um diretório chamado prometheus_data, conforme imagem abaixo:

neste pacote existe o diretório prometheus com um arquivo chamado prometheus.yml e um diretório chamado prometheus_data

Este pacote esta disponível na aula "Primeiros passos com Prometheus" no ítem "Download do Material da Aula", conforme abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Faça do download deste pacote e compare com sua configuração atual, mova o diretório prometheus com todo seu conteúdo para o path onde esta seu arquivo docker-compose.yml e suba a stack, caso ocorra algum erro, me notifique, por favor.

Fala, professor!!

Deu o mesmo erro, apois baixar os novos arquivos,

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Oi Jorge! Tudo bem?

Dando uma lida no output de erro, verifiquei o seguintes pontos:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Existe um diretório chamado prometheus.yml, e ele não existe no projeto e nem nos pacotes liberados para download, creio que seja dervado de alguma configuração residual que você fez. Existe um backup do arquivo docker-compose que você criou, chamado docker-compose_ant.yml e um arquivo atual, chamado docker-compose.yaml.

Partindo dessa observação, peço que siga os seguintes passos.

  1. Valide a sintaxe do arquivo docker-compose.yaml conforme o bloco de código disponível abaixo dessa lista
  2. Remova a configuração residual, ou seja, remova o diretório prometheus.yml e o arquivo dpcker-compose_ant.yml

Segue o código que deve estar no seu arquivo docker-compose.yml

version: '3'

networks:
  database:
    internal: true
  cache:
    internal: true
  api:
    internal: true
  monit:
  proxy:

services:
  redis-forum-api:
    image: redis
    container_name: redis-forum-api
    restart: unless-stopped
    expose:
      - 6379
    networks:
      - cache

  mysql-forum-api:
    image: mysql:5.7
    container_name: mysql-forum-api
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: 'forum'
      MYSQL_USER: 'forum'
      MYSQL_PASSWORD: 'Bk55yc1u0eiqga6e'
      MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
      MYSQL_ROOT_HOST: '%'
    volumes:
      - ./mysql:/docker-entrypoint-initdb.d
    expose:
      - 3306
    networks:
      - database
    depends_on:
      - redis-forum-api

  app-forum-api:
    build:
      context: ./app/
      dockerfile: Dockerfile
    image: app-forum-api
    container_name: app-forum-api
    restart: unless-stopped
    networks:
      - api
      - database
      - cache
    depends_on:
      - mysql-forum-api
    healthcheck:
      test: "curl -sS http://app-forum-api:8080/actuator/health"
      interval: 1s
      timeout: 30s
      retries: 60

  proxy-forum-api:
    image: nginx
    container_name: proxy-forum-api
    restart: unless-stopped
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/proxy.conf:/etc/nginx/conf.d/proxy.conf
    ports:
      - 80:80
    networks:
      - proxy
      - api
    depends_on:
      - app-forum-api

  prometheus-forum-api:
    image: prom/prometheus:latest
    container_name: prometheus-forum-api
    restart: unless-stopped
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - ./prometheus/prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--web.console.libraries=/etc/prometheus/console_libraries'
      - '--web.console.templates=/etc/prometheus/consoles'
      - '--web.enable-lifecycle'
    ports:
      - 9090:9090
    networks:
      - monit
      - api
    depends_on:
      - proxy-forum-api

  client-forum-api:
    build:
      context: ./client/
      dockerfile: Dockerfile
    image: client-forum-api
    container_name: client-forum-api
    restart: unless-stopped
    networks:
      - proxy
    depends_on:
      - proxy-forum-api

Agora, assegure que o conteúdo do seu diretório prometheus, seja igual ao do pacote disponibilizado para download na aula 03, contendo o seguinte conteúdo:

Listagem do diretório prometheus, com um arquivo chamado prometheus.yml e com um subdiretório, chamado prometheus_data

Assegure que as configurações do seu arquivo application-prod.properties do projeto maven, estão configuradas para se comunicarem com os containers e não mais com localhost, validando os endpoints com esta configuração:

# Redis cache config 
spring.cache.type=redis
**spring.redis.host=redis-forum-api**

# datasource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
**spring.datasource.url=jdbc:mysql://mysql-forum-api:3306/forum**
spring.datasource.username=forum
spring.datasource.password=Bk55yc1u0eiqga6e

Depois de garantir que as configurações estão todas iguais as que estão nos pacotes fornecidos nas aulas, rode o comando "docker-compose up -d" para realizar a subida, conforme o output abaixo:

A imagem exibe a criação de todos os conteiners da stack

Tendo executado estes passos, valide a rota para tópicos via browser ou terminal

A imagem exibe o acesso ao rota /topicos via browser com sucesso

Jorge, caso tenha ainda algum problema, me de um retorno, por favor.

Bons estudos!

Boa tarde,

Professor, deu certo ao subir as stack dos micro serviços. unica observação seria o prometheus-forum-api que esta com o status "reiniciar"

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Oi Jorge! Boa noite.

Sim, se esse status estiver em loop , é sinal de que existe algum problema na configuracao do Prometheus.

Boa noite, Professor.

Realmente esta em loop, vou te mandar o print do log do micro serviço.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Oi Jorge! Tudo bem?

É um problema de permissionamento, para resolver rode o seguinte comando no path do arquivo docker-compose.yaml

Para a stack do docker

docker-compose down 

Habilite o permissionamento menos restritivo para que o usuário do prometheus possa escrever nos diretórios compartilhados

find prometheus -type d -exec chmod 777  {} \;

Suba a stack novamente

docker-compose up -d

Faça o teste e me nforme caso ocorra algum problema, por favor.

Bons estudos!

Bom dia,

Professor isso mesmo era o diretorio "prometheus" nao estava com a permissão 777.

Parabéns

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software