7、Docker监控方案(cAdvisor+InfluxDB+Grafana)
一、组件介绍
我们采用现在比较流行的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)的更多相关文章
- docker容器监控:cadvisor+influxdb+grafana
cadvisor+influxdb+grafana可以实现容器信息获取.存储.显示等容器监控功能,是目前流行的docker监控开源方案. 方案介绍 cadvisor Google开源的用于监控基础设施 ...
- 详解k8s原生的集群监控方案(Heapster+InfluxDB+Grafana) - kubernetes
1.浅析监控方案 heapster是一个监控计算.存储.网络等集群资源的工具,以k8s内置的cAdvisor作为数据源收集集群信息,并汇总出有价值的性能数据(Metrics):cpu.内存.netwo ...
- 容器监控:cadvisor+influxdb+grafana
cAdvisor:Google开源的工具,用于监控Docker主机和容器系统资源,通过图形页面实时显示数据,但不存储:它通过宿主机/proc./sys./var/lib/docker等目录下文件获取宿 ...
- docker监控方案实践(cadvisor+influxdb+grafana)
一.概要 1.1 背景 虚拟化技术如今已经非常热门,如果你不知道什么是虚拟化,那你应该了解虚拟机.虚拟化技术如同虚拟机一样,用于将某些硬件通过软件方式实现"复制",虚拟出" ...
- 14、Docker监控方案(Prometheus+cAdvisor+Grafana)
上一篇文章我们已经学习了比较流行的cAdvisor+InfluxDB+Grafana组合进行Docker监控.这节课来学习Prometheus+cAdvisor+Grafana组合. cAdvisor ...
- (原)ubuntu下cadvisor+influxdb+grafana+supervisord监控主机和docker的containers
ubuntu下cadvisor+influxdb+grafana+supervisord监控主机和docker的containers(运行在主机上) 适用于类ubuntu系统.amd64. 1. in ...
- Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息
Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息 一.通过redis_exporter监控redis 1.1 下载镜像 1.2 运行服务 ...
- cAdvisor+InfluxDB+Grafana 监控Docker
容器的监控方案其实有很多,有docker自身的docker stats命令.有Scout.有Data Dog等等,本文主要和大家分享一下比较经典的容器开源监控方案组合:cAdvisor+InfluxD ...
- 在Marathon 上部署 cAdvisor + InfluxDB + Grafana Docker监控
关于 Docker 容器的监控,google cAdvisor 是个很好的工具,但是它默认只显示实时数据,不储存历史数据.为了存储和显示历史数据.自定义展示图,可以把将cAdvisor与InfluxD ...
随机推荐
- Java为什么不支持多继承
类定义属性和方法 描述某一类事物的抽象 而接口定义的是行为 并不限于任何具体意向 按照逻辑上来说 单继承更明确 一个子类就应该是其父类代表的事物中的某个更具体的类别 不应该即是这种东西又是那种东西 而 ...
- Online, Cheap -- and Elite
Online, Cheap -- and Elite Analysis of Georgia Tech’s MOOC-inspired online master's in computer scie ...
- [转]Redis学习---Redis高可用技术解决方案总结
[原文]https://www.toutiao.com/i6591646189714670093/ 本文主要针对Redis常见的几种使用方式及其优缺点展开分析. 一.常见使用方式 Redis的几种常见 ...
- sql点滴—mysql中查询表的信息
mysql中查询表的信息 查询mysql表字段信息的sql语句 SHOW DATABASES //列出 MySQL Server 数据库. SHOW TABLES [FROM db_name] //列 ...
- java使用elasticsearch进行模糊查询之must使用-项目中实际使用
java使用elasticsearch进行多个条件模糊查询 文章说明: 1.本篇文章,本人会从java连接elasticsearch到查询结果生成并映射到具体实体类(涵盖分页功能) 2.代码背景:el ...
- Programming Assignment 3: Pattern Recognition
编程作业三 作业链接:Pattern Recognition & Checklist 我的代码:BruteCollinearPoints.java & FastCollinearPoi ...
- 以太坊预言机与WEB API(原创,转载请说明原址)
什么是预言机? 从链外获得数据,提供区块链与现实世界事件之间的连接,提供外部信息的平台 预言机自身也是一种智能合约,它允许区块链连接到任何现有的API 是这个预言机去调用各种 WEB API的接口 这 ...
- selenium3 浏览器驱动下载及验证
下载浏览器驱动 当selenium升级到3.0之后,对不同的浏览器驱动进行了规范.如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动. 各浏览器下载地址: Firefox浏 ...
- 前端aes解密实战小结
很多人对于AES加密并不是很了解,导致互相之间进行加密解密困难. 本文用简单的方式来介绍AES在使用上需要的知识,而不涉及内部算法.最后给出例子来帮助理解AES加密解密的使用方法. AES的麻烦 相比 ...
- ES6中变量解构的用途—遍历Map结构