即使Docker容器没有运行,Prometheus也会在9090上显示

z2acfund  于 2023-04-29  发布在  Docker
关注(0)|答案(1)|浏览(166)

遵循教程。我有以下docker compose:

version: "3.9"
services:
  grafana:
    image: grafana/grafana
    ports:
      - 3000:3000

  prometheus:
    image: prom/prometheus
    ports:
      - 9090:9090
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro

  postgres:
    image: postgres:12
    ports:
      - 5432:5432
    volumes:
      - ./backup:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: postgrespassword
      POSTGRES_DB: shop

  postgres-exporter:
    image: prometheuscommunity/postgres-exporter
    ports:
      - 9187:9187
    environment:
      DATA_SOURCE_NAME: "postgresql://postgres:postgrespassword@postgres:5432/shop?sslmode=disable"
    links:
      - postgres
      - prometheus

这是我的普罗米修斯。yml:

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ["localhost:9090"]
  - job_name: postgres-exporter
    static_configs:
      - targets: ["postgres-exporter:9187"]

我意识到我需要做一些改变,所以把集装箱拿下来。但我注意到我仍然可以访问:
http://xxx.xx.xx.xxx:9090/config
在检查容器时,它似乎重新启动了普罗米修斯。我再次禁用它,检查浏览器,看到它再次重新启动。另外,我对普罗米修斯所做的任何改变。yml不会反映在配置中。
我检查了正在运行的服务,没有prometheus在docker之外运行的示例。禁用docker服务会使它关闭,但一旦我重新启用它,它就会再次出现,并且总是使用旧的配置。
有什么想法吗?(也试过杀死端口,只是重生)

CONTAINER ID   IMAGE                    COMMAND                  CREATED       STATUS       PORTS      NAMES
34c66a78b75e   prom/prometheus:latest   "/bin/prometheus --c…"   2 hours ago   Up 2 hours   9090/tcp   my-prometheus.1.iht6uk1okzlb3gc9y9jdaf2fg
9jyewag0

9jyewag01#

遇到了完全相同的问题,原来是Docker Swarm导致了这个问题。
要验证,请运行docker inspect container_name命令并检查是否提到docker swarm。
如果是,使用docker service ls列出服务并删除创建www.example的特定服务 www.example.com 容器使用docker service rm service_name
这为我们解决了问题。

相关问题