一、组件介绍

我们采用现在比较流行的cAdvisor+InfluxDB+Grafana组合进行Docker监控。

1、cAdvisor(数据采集)

开源软件cAdvisor(Container Advisor)是用于监控容器运行状态的利器之一,该项目主页为https://github.com/google/cadvisor,它被用于多个与docker相关的开源项目中。实际上在Kubernetes系统中,cAdvisor已经被默认集成到了kubelet组件内。cAdvisor提供了web界面可供浏览器访问,在接下来的环境中我们会部署CAdvisor来收集数据信息。

2、Influxdb(数据存储)

Influxdb是用Go语言编写的一个开源的分布式时序、事件和指标数据库,不需要外部依赖,该项目的主页为https://www.influxdata.com。

它有三大特性:

  • 时序性(Time Series):与时间相关的函数的灵活使用(诸如最大、最小、求和等)。
  • 度量(Metrics):对实时大量数据进行计算。
  • 事件(Event):支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作。

同时,它还有以下几大特点:

  • schemaless(无结构),可以是任意数量的列;
  • min, max, sum, count, mean, median 一系列函数,方便统计;
  • Native HTTP API, 内置http支持,使用http读写;
  • Powerful Query Language 类似sql;
  • Built-in Explorer 自带管理工具。

3、Grafana(数据展示)

Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。其项目官方地址为https://grafana.com。

二、组件安装

1、安装流程

  • 创建自定义网络monitor(自定义网络名称),确保各容器都处于monitor网络;
  • 创建Influxdb容器,创建数据用户grafana:grafana、数据库:vadvisor;
  • 创建cAdvisor容器;
  • 创建Grafana容器,配置grafana;

  

2、安装部署

a、创建网络

[root@localhost ~]# docker network create monitor
46d9e7c32080ac35e1d3034ecf4edf2af804de9352eca37373f7437e37b1368d

  

b、创建influxdb容器

[root@localhost ~]# docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb
a0fdc618d380ece7dabd7f1f802935502d0c6ae3f606216afed5dafc43ea8da5

c、访问influxdb

通过容器的8083端口访问web页面。

d、创建数据库cadvisor和用户

cadvisor数据库用于存储数据,用户用于grafana上进行连接,后续会用到此用户。

e、创建cadvisor容器

$docker run -d \
--name=cadvisor \
--net monitor \
-p 8080:8080 \
--mount type=bind,src=/,dst=/rootfs,ro \
--mount type=bind,src=/var/run,dst=/var/run \
--mount type=bind,src=/sys,dst=/sys,ro \
--mount type=bind,src=/var/lib/docker/,dst=/var/lib/docker,ro \
google/cadvisor \
-storage_driver=influxdb \
-storage_driver_db=cadvisor \
-storage_driver_host=influxdb:8086

  

查看容器是否创建成功:

访问cadvisor

通过8081端口访问cadvisor:

f、安装grafana容器

docker run -d --name grafana --net monitor -p 3000:3000 grafana/grafana

  

g、访问grafana

3、容器监控

a、添加数据源

b、制作dashboard

新建dashboard,选择类型为Graph:

c、添加监控指标

d、制作模板

按照c步骤中添加各个指标,然后做成模板,后续你想监控哪个容器就直接替换container_name即可,是不是棒棒哒?

到这里cAdvisor+InfluxDB+Grafana容器监控系统就部署完成了,是不是非常简单?

但是,要做好容器的监控,知道这些还远远不行,我们不希望每次都手动去添加吧?如果有成千上万个容器,到那个时候该怎么监控呢?肯定是一种自动添加方式了,而不是原始的手工操作哦。

7、Docker监控方案(cAdvisor+InfluxDB+Grafana)的更多相关文章

  1. docker容器监控:cadvisor+influxdb+grafana

    cadvisor+influxdb+grafana可以实现容器信息获取.存储.显示等容器监控功能,是目前流行的docker监控开源方案. 方案介绍 cadvisor Google开源的用于监控基础设施 ...

  2. 详解k8s原生的集群监控方案(Heapster+InfluxDB+Grafana) - kubernetes

    1.浅析监控方案 heapster是一个监控计算.存储.网络等集群资源的工具,以k8s内置的cAdvisor作为数据源收集集群信息,并汇总出有价值的性能数据(Metrics):cpu.内存.netwo ...

  3. 容器监控:cadvisor+influxdb+grafana

    cAdvisor:Google开源的工具,用于监控Docker主机和容器系统资源,通过图形页面实时显示数据,但不存储:它通过宿主机/proc./sys./var/lib/docker等目录下文件获取宿 ...

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

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

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

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

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

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

  7. Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息

    Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息 一.通过redis_exporter监控redis 1.1 下载镜像 1.2 运行服务 ...

  8. cAdvisor+InfluxDB+Grafana 监控Docker

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

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

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

随机推荐

  1. MySQL-死锁查询

    1.查询是否锁表 show OPEN TABLES where In_use > 0; 查询到相对应的进程 === 然后 kill    id 2.查询进程 show processlist 补 ...

  2. Windows用命令打开常用的设置页面和常用快捷键

    Win+R输入以下内容来快捷打开常用设置 compmgmt.msc # 计算机管理 diskmgmt.msc # 磁盘管理 devmgmt.msc # 设备管理 services.msc # 服务管理 ...

  3. 【爬坑】运行 Hadoop 的 MapReduce 示例卡住了

    1. 问题说明 在以伪分布式模式运行 Hadoop 自带的 MapReduce 示例,卡在了 Running job ,如图所示 2. 解决过程 查看日志没得到有用的信息 再次确认配置信息没有错误信息 ...

  4. Active Directory、Exchange、单点登录,企业账号统一管理解决方案

    现在的公司一般都会有很多内部管理系统,比如OA.ERP.CRM.邮件系统等.员工入职之后如果每个系统都创建一个账号和密码,首先员工记系统账号就是一件非常头疼的事情,如果公司有一百个系统那就得创建一百个 ...

  5. Mysql查询缓存Query_cache的功用

    MySQL的查询缓存并非缓存执行计划,而是查询及其结果集,这就意味着只有相同的查询操作才能命中缓存,因此MySQL的查询缓存命中率很低,另一方面,对于大结果集的查询,其查询结果可以从cache中直接读 ...

  6. Office Web app server 2013 目前无法和windows server 2012 R2兼容。

    另外旧版的office文档和PDF格式不支持预览功能.

  7. 加载驱动三种execute

    executeQuery executeUpdate executeQueryBatch

  8. Angular2学习笔记(1)——Hello World

    1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之前主要使用的是jQuery,由于 ...

  9. php可逆加密解密函数

    很多PHP程序员调试使用echo.print_r().var_dump().printf()等,虽然对于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特定变量的 ...

  10. redhat7.4 使用centos yum源

    新安装了redhat7.4安装后,登录系统,使用yum update 更新系统.提示: This system is not registered to Red Hat Subscription Ma ...