Cadvisor+InfluxDB+Grafan+Prometheus(详解)

目录

一、Cadvisor+InfluxDB+Grafan案例概述

(一)Cadvisor 

Cadvisor 产品特点:

(二)InfluxDB

InfluxDB应用场景:

InfluxDB主要功能:

InfluxDB主要特点:

(三)Grafana

Grafana主要特性:

(四)Prometheus产品简介

Prometheus的主要特征有:

二、Cadvisor+InfluxDB+Grafan监控组件架构


一、Cadvisor+InfluxDB+Grafan案例概述

        Docker作为目前十分出色的容器管理技术,得到大量企业的青睐,在生产环境中使用Docker容器部署服务及应用的场景越来越多。所以面对日益庞大的docker服务群应用,如何具有针对性的,有效的监控也变成了企业运维人员工作需求。

        容器信息采集及监控的方案有很多,有docker自身的docker stats命令、Scout、Data Dog、Prometheus等,

        本次为大家分享两款比较经典的容器开源监控组合方案

Cadvisor +InfluxDB+Grafana

Cadvisor +Prometheus+Grafana

(一)Cadvisor 

        Cadvisor 是Google用来监测单节点资源信息的监控工具。 Cadvisor 提供了基础查询界面和http接口,方便其他组件如Grafana 、Prometheus等进行数据抓取。Cadvisor 可以对Docker主机上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况等。Cadvisor 使用Go语言开发,利用Linux的Cgroups获取容器的资源使用信息。

        Google的Kubernetes中也默认地将其作为单节点的资源监控工具,各个节点默认会安装上Cadvisor组件。

        Cadvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行Cadvisor用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。

Cadvisor 产品特点:

可以展示主机和容器两个层次的监控数据。

可以展示历史变化数据。

谷歌公司的开源产品。

监控指标齐全。

方便部署,有官方的docker镜像。

默认只在本地保存1分钟数据,可以集成InfluxDB等第三方存储使用。

        由于 Cadvisor 提供的操作界面略显简陋,而且需要在不同页面之间跳转,并且只能监控一个 Host,这不免会让人质疑它的实用性。

        但 Cadvisor 的一个亮点是它可以将监控到的数据导出给第三方工具,由这些工具进一步加工处理。

        我们可以把 Cadvisor  定位为一个监控数据收集器,收集和导出数据是它的强项,而非展示数据。

(二)InfluxDB

        InfluxDB是一个由InfluxData开发的开源非关系型时序型数据库。它由Go写成,着力于高性能地查询与存储时序型数据。

        InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。

        同类型的数据库产品还有Elasticsearch、Graphite等。

InfluxDB应用场景:

性能监控,应用程序指标,物联网传感器数据和实时分析等的后端存储。

InfluxDB主要功能:

基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等);

可度量性:你可以实时对大量数据进行计算;

基于事件:它支持任意的事件数据;

InfluxDB主要特点:

无结构(无模式):可以是任意数量的列;

支持拓展;

支持min, max, sum, count, mean, median 等一系列函数,方便统计;

原生的HTTP支持,内置HTTP API;

强大的类SQL语法;

自带管理界面,方便使用;

(三)Grafana

        Grafana是一个可视化面板(Dashboard)工具,有着非常漂亮的图表和布局等展示功能,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB等组件作为数据源。

Grafana主要特性:

灵活丰富的图形化选项;

可以混合多种风格;

支持白天和夜间模式;

支持多个数据源;

(四)Prometheus产品简介

        Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包。

        自2012年成立以来,很多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。 它现在是一个独立的开源项目,可以独立于任何公司进行维护。 为了强调这一点,并阐明项目的治理结构,Prometheus于2016年加入Cloud Native Computing Foundation(云原生基金会),作为继Kubernetes之后的第二个托管项目。

Prometheus的主要特征有:

多维度数据模型-由指标键值对标识的时间序列数据组成;

PromQL,一种灵活的查询语言;

不依赖分布式存储; 单个服务器节点是自治的;

以HTTP方式,通过pull模型拉取时间序列数据;

支持通过中间网关推送时间序列数据;

通过服务发现或者静态配置,来发现目标服务对象;

支持多种多样的图表和界面展示。

二、Cadvisor+InfluxDB+Grafan监控组件架构

监控组件架构图:

Cadvisor+InfluxDB+Grafan+Prometheus(详解)_第1张图片

提示:InfluxDB用于数据存储,Cadvisor 用户数据采集,Grafana用于数据展示。

监控组件架构部署方案:

创建自定义网络monitor(自定义网络名称),用于后期容器加入此网络中;

创建Influxdb容器,创建数据用户、数据库;

创建Cadvisor 容器;

创建Grafana容器,配置grafana;

你可能感兴趣的:(prometheus,docker,容器,学习)