14、Docker监控方案(Prometheus+cAdvisor+Grafana)

上一篇文章我们已经学习了比较流行的cAdvisor+InfluxDB+Grafana组合进行Docker监控。这节课来学习Prometheus+cAdvisor+Grafana组合。

cAdvisor是专门用来采集数据的工具,也是google公司的一款开源产品,Grafana则是前端展示,支持多种数据源,定制非常灵活。而prometheus则作为数据源。

整体架构图如下:

一、prometheus

1、Prometheus介绍

Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区。为强调开源及独立维护,Prometheus于2016年加入云原生云计算

基金会(CNCF),成为继Kubernetes之后的第二个托管项目。

官网:https://prometheus.io
github地址:https://github.com/prometheus

2、Prometheus 特点
• 多维数据模型:由度量名称和键值对标识的时间序列数据
• PromSQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询
• 不依赖分布式存储,单个服务器节点可直接工作
• 基于HTTP的pull方式采集时间序列数据
• 推送时间序列数据通过PushGateway组件支持
• 通过服务发现或静态配置发现目标
• 多种图形模式及仪表盘支持(grafana)

3、Prometheus架构图

• Prometheus Server:收集指标和存储时间序列数据,并提供查询接口
• ClientLibrary:客户端库
• Push Gateway:短期存储指标数据。主要用于临时性的任务
• Exporters:采集已有的第三方服务监控指标并暴露metrics
• Alertmanager:告警
• Web UI:简单的Web控制台

4、监控对象

实例:可以抓取的目标称为实例(Instances)
作业:具有相同目标的实例集合称为作业(Job)

scrape_configs:
- job_name: ‘prometheus‘
static_configs:
- targets: [‘localhost:9090‘]
- job_name: ‘node‘
static_configs:
- targets: [‘192.168.1.100:9090‘]

  

5、Prometheus 部署

二进制部署:https://prometheus.io/docs/prometheus/latest/getting_started/
Docker部署:https://prometheus.io/docs/prometheus/latest/installation/
访问Web:http://localhost:9090
配置Prometheus监控本身:
scrape_configs:
- job_name: ‘prometheus‘
scrape_interval: 5s
static_configs:
- targets: [‘localhost:9090‘]

下面已docker部署为例:

docker run -d  -p 9090:9090 -v /root/prometheus.yml:/etc/prometheus/prometheus.yml  prom/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.
  # scrape_timeout is set to the global default (10s).

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

# Load rules once and periodically evaluate them according to the global ‘evaluation_interval‘.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# 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=<job_name>` 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: ‘cadvisor‘
    static_configs:
    - targets: [‘10.11.97.187:8081‘]

  

这时就可以通过9090端口进行访问prometheus的页面了:

prometheus网页比较简单,包括告警、图像、以及基本信息。

6、Prometheus 配置

全局配置

scrape配置

二、cAdvisor部署

github地址:https://github.com/google/cadvisor

通过docker快速安装cadvisor,然后通过8081就可以访问了。

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=8081:8080   --detach=true   --name=cadvisor   google/cadvisor:latest

  

访问web页面:

里面包含的内容非常丰富,包括docker主机上所有容器的资源监控和图表展示。

三、grafana部署

1、grafana安装

一句话安装:

docker run -d -p 3000:3000 grafana/grafana

  

安装完成后,即可访问:

2、grafana添加数据源

进入grafana后,点击设置,添加数据源,填写类型为prometheus以及prometheus的URL。

3、导入模板

grafana里面的template(模板)可以自己制作,也可以直接从grafana官网导入。

点击Import dashaboard,我们直接从grafana官网导入模板:

输入ID号:

输入后回车,grafana会自动从官网查到到官网,并可以进行导入:

记得在prometheus里面把添加cadvisor作为采集数据源:

稍等片刻后,grafana里面就会有数据了:

原文地址:https://www.cnblogs.com/skyflask/p/11148702.html

时间: 2024-08-06 19:54:37

14、Docker监控方案(Prometheus+cAdvisor+Grafana)的相关文章

Docker学习(12):Docker监控方案之Prometheus

Docker常用的监控方案 Prometheus Prometheus架构 Prometheus是一种很不错的监控方案,它提供了监控数据搜集.存储.处理.可视化和警告一套完整的解决方案,下面是Prometheus的架构 Prometheus Server Prometheus Server负责从Exporter拉取和存储监控数据,并提供一套灵活的查询语言(PromQL)供用户使用 Exporter Exporter负责收集目标对象(host,container...)的性能数据,并通过HTTP接

docker stack 部署容器监控方案(cAdvisor、Prometheus、Grafana)

=============================================== 2018/7/8_第1次修改                       ccb_warlock =============================================== 最近正式业务终于开始上容器,虽然前期通过swarm解决了服务部署和扩展等问题,但是针对容器监控方面缺乏经验甚至是无从入手,因为没有监控数据我根本不知道目前给的资源限制是否合理,业务量激增的时候资源是否可以支撑负

Docker监控:google/cadvisor

Docker自带了容器监控功能,可以对容器进行相关的性能监控,指标查看 主要包括: 主机的CPU情况和使用量 主机的内存情况和使用量 主机的本地镜像情况 主机的容器运行情况 常规使用docker ps -a   ,docker images命令查看后两者,当然docker stats命令就是监控相关容器实例情况. [[email protected] ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 14

(转)使用InfluxDB+cAdvisor+Grafana配置Docker监控

文档来源 文档来源:How to setup Docker Monitoring 由garyond翻译.校正及整理 Docker监控简介 我们提供的Docker主机和容器越来越多,对Docker服务器和容器的监控越来越必要.本文将引导你了解如何通过多个不同组件的配置和协作,以实现Docker监控. Docker监控组件 首先, 我们假设在您的主机上已经安装.配置和运行Docker Engine.请确保您可以通过Web浏览器在本地或者通过网络IP连接到Docker主机.以下我们将详细介绍如何创建我

docker管理监控方案

docker相关管理可分为四类:docker基础功能.docker监控.docker集群管理和docker系统认证管理.docker管理的基础或信息来源都是docker命令行或docker API. docker基础功能 docker基础功能,如容器管理.镜像管理,直接调用docker命令或dockerAPI即可实现.humpback和portainer实现了常用docker生命周期管理.镜像管理,可供参考. docker监控 docker监控的基础是docker stats或相关API,通过实

Docker 监控实战 教你如何监控 Docker 容器内部

如今,越来越多的公司开始使用 Docker 了,现在来给大家看几组数据: 2 / 3 的公司在尝试了 Docker 后最终使用了它 也就是说 Docker 的转化率达到了 67%,而转化市场也控制在 60 天内. 越大型的公司越早开始使用 Docker 研究发现主机数量越多的公司,越早开始使用 Docker.而主机数量多,在这个研究里就默认等同于是大型公司了. Docker 优势 那为什么 Docker 越来越火呢?一谈起 Docker 总是会跟着让人联想到轻量这个词,甚至会有一种通过 Dock

[经验交流] 在 Mesos Marathon 上部署 cAdvisor + InfluxDB + Grafana Docker监控

关于 Docker 容器的监控,google cAdvisor 是个很好的工具,但是它默认只显示实时数据,不储存历史数据.为了存储和显示历史数据.自定义展示图,可以把将cAdvisor与InfluxDB.Grafana 集成起来,国外的专家 Brian Christner 写了一篇文章”How to setup Docker Monitoring“,描述了部署方法. Brian 的方法是手动运行 docker run 命令进行部署,为了能在 Mesos Marathon 平台上自动部署,我对他的

在Marathon 上部署 cAdvisor + InfluxDB + Grafana Docker监控

关于 Docker 容器的监控,google cAdvisor 是个很好的工具,但是它默认只显示实时数据,不储存历史数据.为了存储和显示历史数据.自定义展示图,可以把将cAdvisor与InfluxDB.Grafana 集成起来. 需要的镜像: tutum/influxdb google/cadvisor grafana/grafana 安装:有8台mesos-slave,都需要运行一个cAdvisor docker实例对docker进行监控,然后需要运行一个InfluxDB docker实例存

docker监控: cAdvisor

docker监控: cAdvisor 什么是 cAdvisor? cAdvisor 是 Google 开源的一款用于展示和分析容器运行状态的可视化工具,通过在主机上运行 cAdvisor 用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示. 使用 cAdvisor 想运行在这个很简单,只需要执行如下命令即可 docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:r