首页 > 解决方案 > Docker 舞会/Prometheus 容器退出

问题描述

当我运行此命令时,它会创建 docker 容器,但显示为退出状态,我无法启动它

我的目标是能够用自定义 prometheus.yml 替换 prometheus.yml 文件,以监控在http://localhost:70/nginx_status运行的 nginx

   docker run -it -d --name prometheus3 -p 9090:9090 -v 
    /opt/docker/prometheus:/etc/prometheus prom/prometheus - 
    config.file=/etc/prometheus/prometheus.yml

这是我的 prometheus.yml 文件

     scrape_configs: 
     - job_name: 'prometheus' 

     scrape_interval: 5s 
     scrape_timeout: 5s 

     static_configs: 
       - targets: ['localhost: 9090'] 

       - job_name: 'node' 
     static_configs: 
     - targets: ['localhost: 70/nginx_status'] 

标签: dockercontainersprometheusnginx-config

解决方案


您应该能够通过运行以下命令查看已停止容器的日志:

docker logs prometheus3

无论如何,您的配置存在(至少)两个问题:

  1. prometheus.yml 文件无效,因此 prometheus 进程立即退出。
    和需要在一个部分中,scrape_interval并且缩进已关闭。请参阅下面的正确格式的 yml 文件的示例。scrape_timeoutglobal

    2.) 您不能只抓取/nginx_status端点,还需要使用 nginx 导出器来为您提取指标。然后 Prometheus 服务器将抓取 nginx_exporter 以检索指标。您可以在此处找到出口商列表并选择适合您的出口商。
    导出器运行后,您需要将 Prometheus 指向导出器的地址,以便对其进行抓取。


工作 prometheus.yml :

global:
  scrape_interval: 5s 
  scrape_timeout: 5s 

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

  - job_name: 'node' 
    static_configs: 
    - targets: ['<< host name and port of nginx exporter >>'] 

推荐阅读