Prometheus监控Docker服务

Posted cyleon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Prometheus监控Docker服务相关的知识,希望对你有一定的参考价值。

一、使用cAdvisor(Container Advisor)收集正在运行的容器资源使用和性能信息。

https://github.com/google/cadvisor

运行单个cAdvisor来监控整个Docker主机,默认的监听端口为8080

# docker run   --volume=/:/rootfs:ro   --volume=/var/run:/var/run:ro   --volume=/sys:/sys:ro   --volume=/var/lib/docker/:/var/lib/docker:ro   --volume=/dev/disk/:/dev/disk:ro   --publish=8080:8080   --detach=true   --name=cadvisor   google/cadvisor:latest

# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                      NAMES
736e45251dd4        google/cadvisor:latest   "/usr/bin/cadvisor -…"   20 seconds ago      Up 16 seconds       0.0.0.0:8080->8080/tcp                     cadvisor
64b6b784dcb0        tengine2.2:v2            "nginx -g ‘daemon of…"   5 months ago        Up 5 months         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nginx
c864cd8e4f09        php55:v13                "php-fpm"                5 months ago        Up 5 months         0.0.0.0:9000->9000/tcp                     php

查看metrics:

http://192.168.5.85:8080/metrics

技术图片

 二、修改prometheus配置文件

# vim /usr/local/prometheus/prometheus.yml 
# my global config
global:
  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.

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  - job_name: prometheus

    # metrics_path defaults to /metrics
    # scheme defaults to http.

    static_configs:
    - targets: [192.168.5.237:9090]

  - job_name: node
    file_sd_configs:
    - refresh_interval: 30s
      files:
      - "/usr/local/prometheus/sd_config/node*.yml"
# 增加要监控的docker主机
  - job_name: docker
    static_configs:                                                                                                                     
    - targets: [192.168.5.85:8080]   

# 检查配置文件
# /usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml 
Checking /usr/local/prometheus/prometheus.yml
  SUCCESS: 0 rule files found

# 重启服务
# systemctl restart prometheus.service 

targets中已经能查到docker主机的信息了

技术图片

 技术图片

 三、配置Grafana图表盘

技术图片

 修改名称及数据源等信息后点击import

技术图片

 能查到主机上所有运行容器的CPU、内存、和网络的使用情况

技术图片

以上是关于Prometheus监控Docker服务的主要内容,如果未能解决你的问题,请参考以下文章

docker swarm 部署 prometheus 用于监控服务器

docker swarm 部署 prometheus 用于监控服务器

Prometheus监控Docker服务

Prometheus监控Docker服务

Prometheus监控docker服务

使用 Prometheus 如何监控每个实例提供自己的 /metrics 的扩展 Docker 服务?