千家信息网

prometheus监控docker

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,Prometheus是一个开源系统监控和警报工具包。可以将Docker配置为Prometheus目标。目前,您只能监控Docker本身。您目前无法使用Docker目标监控应用程序。监控docker的操
千家信息网最后更新 2025年12月01日prometheus监控docker

Prometheus是一个开源系统监控和警报工具包。可以将Docker配置为Prometheus目标目前,您只能监控Docker本身。您目前无法使用Docker目标监控应用程序。


监控docker的操作步骤:

1.使用docker的metrics-address向Prometheus暴露监控端口:

修改docker的daemon.json文件

{      "metrics-addr": "192.168.191.18:9323",  #docker官网上的配置是127.0.0.1:9323在Prometheus无法连接该ip,手动执行curl -L 127.0.0.1:9323时可以显示docker的监控指标的,可能由于容器之间的隔离原因无法连接吧。     "experimental": true}

之后容器docker服务:systemctl restart docker

2.编辑Prometheus.yml

# my global configglobal:  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.  # scrape_timeout is set to the global default (10s).  # Attach these labels to any time series or alerts when communicating with  # external systems (federation, remote storage, Alertmanager).  external_labels:      monitor: 'codelab-monitor'# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.rule_files:  # - "first.rules"  # - "second.rules"# A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.scrape_configs:  # The job name is added as a label `job=` to any timeseries scraped from this config.  - job_name: 'prometheus'    # metrics_path defaults to '/metrics'    # scheme defaults to 'http'.    static_configs:      - targets: ['localhost:9090']  - job_name: 'docker'         # metrics_path defaults to '/metrics'         # scheme defaults to 'http'.    static_configs:      - targets: ['192.168.191.18:9323']

3.启动一个Prometheus的容器

docker环境使用的时swarm集群方式创建服务的命令方式不一样。swarm集群部署可自行操作

[root@docker ~]# docker service create --replicas 1 --name my-prometheus  --mount type=bind,source=/root/prometheus.yml,destination=/etc/prometheus/prometheus.yml --publish published=9090,target=9090,protocol=tcp     prom/prometheusrgkmwhwqepl1qivlpq8r3nt2noverall progress: 1 out of 1 tasks 1/1: running   [==================================================>] verify: Service converged

查看创建的服务信息

[root@docker ~]# docker service  ls ID                  NAME                MODE                REPLICAS            IMAGE                    PORTSrgkmwhwqepl1        my-prometheus       replicated          1/1                 prom/prometheus:latest   *:9090->9090/tcp

查看服务的具体信息

[root@docker ~]# docker service ps  my-prometheusID                  NAME                IMAGE                    NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTSy8akc5dmwjrn        my-prometheus.1     prom/prometheus:latest   docker              Running             Running 16 minutes ago


4.访问Prometheus的页面查看监控值

监控项的查看



prometheus监控docker的基本内容已经部署及验证完成,docke官网有关Prometheus·监控docker的配置实验在查看Prometheus的监控target时报错:dial tcp xxxx: connect: connection refused。

docker官网https://docs.docker.com/config/thirdparty/prometheus/

0