cadvisor+influxdb+grafana可以实现容器信息获取、存储、显示等容器监控功能,是目前流行的docker监控开源方案。

方案介绍

cadvisor

Google开源的用于监控基础设施应用的工具,可以零配置运行在docker主机上来监控Docker主机以及Docker容器。其为单节点监控,只能监控一个主机。多节点监控可参考Google的Kubernetes。作为docker服务的监控数据收集器,提供给influxdb。

influxdb

InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖、提供管理界面。提供基于时间序列,基于事件的可度量的实时计算功能。

grafana

Grafana可视化大型测量数据的开源程序,有灵活丰富的图形化选项,可以混合多种风格,多个数据源。例如Graphite、zabbix、InfluxDB、Prometheus、mysql和OpenTSDB 详见配置页面。

方案实施

在Ubuntu16.04上可通过docker部署体验。

1. 部署influxdb

docker run -p : -p : --name=influxdb --hostname=influxdb tutum/influxdb

通过ip:8083浏览器访问数据库,设置用户名和密码为root,save保存。

创建cadvisor数据库供数据采集使用。

2. 部署cadvisor

在需要监控的主机上运行如下命令启动容器:

docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro \
--hostname=cadvisor --publish=: --detach=true --name=cadvisor google/cadvisor \
-storage_driver=influxdb -storage_driver_host=192.168.134.144: -storage_driver_db=cadvisor -storage_driver_user=root -storage_driver_password=root

注:-storage_driver_host=ip:8086

通过IP:8080访问cadvisor,可看到主机实时信息和图示,不仅包含docker信息还有整个系统信息,如CPU和Filesystem。

可通过IP:8080/metrics获取所有采集数据(某一时刻)。

此时,可在influxdb界面中看到advisor采集的数据,验证两容器运行正常。

3. 部署grafana

docker run -d -p : --hostname grafana --name grafana grafana/grafana

注:测试版本为latest,即6.2.4。

可通过IP:3000浏览grafana,用户名密码都是admin。

1) 首先添加数据源InfluxDB。

2) 配置数据源

点选按钮“Save&Test”,确保输出“Data source is working”。

3) 添加dashboard->Add Query, 配置查询

点选所需配置项,然后保存即可。

4) 可以配置报警信息,如mem管控等

内存超过250MB报警。

5) 配置CPU和memory界面如下图

参考:

1. Docker监控:基于阿里云容器服务构建自己的Docker监控框架

2. https://github.com/Kentik/docker-monitor

3. https://www.brianchristner.io/how-to-setup-docker-monitoring/

4. docker监控方案的最佳实践(cadvisor+influxdb+grafana)

5. docker 实时监控:cadvisor+influxdb+grafana

6. https://rancher.com/comparing-10-container-monitoring-solutions-rancher/

7. 容器监控实践—cAdvisor

8. Cadvisor源码分析监控项

9. Using InfluxDB in Grafana

docker容器监控:cadvisor+influxdb+grafana的更多相关文章

  1. Docker进阶-容器监控cAdvisor+InfluxDB+Granfana

    概述 前面文章介绍使用docker compose组合应用并利用scale快速对容器进行扩容. 由于docker compose启动的服务都在同一台宿主机上,对于一个宿主机上运行多个容器应用时,容器的 ...

  2. 7、Docker监控方案(cAdvisor+InfluxDB+Grafana)

    一.组件介绍 我们采用现在比较流行的cAdvisor+InfluxDB+Grafana组合进行Docker监控. 1.cAdvisor(数据采集) 开源软件cAdvisor(Container Adv ...

  3. docker监控方案实践(cadvisor+influxdb+grafana)

    一.概要 1.1 背景 虚拟化技术如今已经非常热门,如果你不知道什么是虚拟化,那你应该了解虚拟机.虚拟化技术如同虚拟机一样,用于将某些硬件通过软件方式实现"复制",虚拟出" ...

  4. (原)ubuntu下cadvisor+influxdb+grafana+supervisord监控主机和docker的containers

    ubuntu下cadvisor+influxdb+grafana+supervisord监控主机和docker的containers(运行在主机上) 适用于类ubuntu系统.amd64. 1. in ...

  5. Docker容器监控

    利用docker compose组合应用并利用scale可以快速对容器进行扩充,而docker compose启动的服务容器都在同一台宿主机上,对于一个宿主机上运行多个容器应用时,容器的运行情况,如: ...

  6. kubernetes监控-Heapster+InfluxDB+Grafana(十五)

    cAdvisor+InfluxDB+Grafana cAdvisor:是谷歌开源的一个容器监控工具,采集主机上容器相关的性能指标数据.比如CPU.内存.网络.文件系统等. Heapster是谷歌开源的 ...

  7. cAdvisor+InfluxDB+Grafana 监控Docker

    容器的监控方案其实有很多,有docker自身的docker stats命令.有Scout.有Data Dog等等,本文主要和大家分享一下比较经典的容器开源监控方案组合:cAdvisor+InfluxD ...

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

    关于 Docker 容器的监控,google cAdvisor 是个很好的工具,但是它默认只显示实时数据,不储存历史数据.为了存储和显示历史数据.自定义展示图,可以把将cAdvisor与InfluxD ...

  9. 使用cAdvisor+Influxdb+Grafana监控系统

      今天准备开始研究研究当前非常流行的Grafana+Influxdb监控系统,两者都是非常轻量级的应用但是功能却异常强大,可以说Grafana在作图显示方面真的毫不逊色与Cacti. 组件介绍 cA ...

随机推荐

  1. Kafka限流

    1. 客户端认证 如果kafka客户端是认证的,那么可以使用userId和clientId两种认证方式.如果没有认证只能使用clientId限流. bin/kafka-configs. --alter ...

  2. Efficient and Accurate Arbitrary-Shaped Text Detection with Pixel Aggregation Network(利用像素聚合网络进行高效准确的任意形状文本检测)

    PSENet V2昨日刚出,今天翻译学习一下. 场景文本检测是场景文本阅读系统的重要一步,随着卷积神经网络的快速发展,场景文字检测也取得了巨大的进步.尽管如此,仍存在两个主要挑战,它们阻碍文字检测部署 ...

  3. Java之数组类型

    如果我们有一组类型相同的变量.例如,5位同学的成绩,可以这么写 public class Main { public static void main(String[] args) { // 5位同学 ...

  4. 【Docker学习之七】Docker图形化管理和监控

    环境 docker-ce-19.03.1-3.el7.x86_64 centos 7 一.Docker管理工具 (官方三剑客)1.Docker Machine(学习的Openstack Heat)Cr ...

  5. DockerFile语法【h】

    DockerFile在我理解就是可以将所需要构建镜像的功能.组件都天前配置好,然后直接生成一个Image,而不是先生成镜像,再通过修改容器的方法来生成最终需要的镜像.   镜像的定值实际上就是定值每一 ...

  6. Vue父子组件相互传值及调用方法的方案

    Vue父子组件相互传值及调用方法的方案 一.调用方法: 1.父组件调用子组件方法: 2.子组件调用父组件方法: 参考:https://www.cnblogs.com/jin-zhe/p/9523782 ...

  7. python3.5+tornado学习

    python3.5的安装 python官网下载地址:https://www.python.org/ 自行下载最新版本 下载pip包或者easy_install 后缀为.gz格式 地址:https:// ...

  8. LuoguP2698 【[USACO12MAR]花盆Flowerpot】

    题目描述 首先我们简化一下题意: 要找一段区间[L,R],使区间[L,R]内元素最大值减最小值大于等于D. 做法: 首先很容易想到采用二分,分什么呢? 我们二分区间长度为mid 这个时候,检验就成为了 ...

  9. 重置 Macbook 登录密码

    1.按 开机键 的同时 按 Command + R,等进度条走完,会出现如下图 2.在菜单栏,选取“实用工具”>“终端”. 3.在终端窗口,键入下面的命令:resetpassword 按下回车键 ...

  10. golang 网络编程之如何正确关闭tcp连接以及管理它的生命周期

    欢迎访问我的个人网站获取更佳阅读排版 golang 网络编程之如何正确关闭tcp连接以及管理它的生命周期 | yoko blog (https://pengrl.com/p/47401/) 本篇文章部 ...