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监控组件架构
监控组件架构图:

提示:InfluxDB用于数据存储,Cadvisor 用户数据采集,Grafana用于数据展示。
监控组件架构部署方案:
创建自定义网络monitor(自定义网络名称),用于后期容器加入此网络中;
创建Influxdb容器,创建数据用户、数据库;
创建Cadvisor 容器;
创建Grafana容器,配置grafana;
相关文章:
Cadvisor+InfluxDB+Grafan+Prometheus(详解)
目录 一、CadvisorInfluxDBGrafan案例概述 (一)Cadvisor Cadvisor 产品特点: (二)InfluxDB InfluxDB应用场景: InfluxDB主要功能: InfluxDB主要特点: (三&#…...
AtcoderABC222场
A - Four DigitsA - Four Digits 题目大意 给定一个整数N,其范围在0到9999之间(包含边界)。在将N转换为四位数的字符串后,输出它。如果N的位数不足四位,则在前面添加必要数量的零。 思路分析 可以使用输出流的格式设…...
架构实践方法
一、识别复杂度 将主要的复杂度问题列出来,然后根据业务、技术、团队等综合情况进行排序,优先解决当前面临的最主要的复杂度问题。对于按照复杂度优先级解决的方式,存在一个普遍的担忧:如果按照优先级来解决复杂度,可…...
点淘的MCN机构申请详细入驻指南!
消费趋势的变化,来自消费人群的变化。 后疫情时代,经济复苏的反弹力度不足,人们开始怀疑我们正从前几年的消费升级,跌入消费降级的时代,但这并不能准确概括消费市场的变化。 仔细翻看各大奢侈品集团的财报࿰…...
事务和事务的隔离级别
1.4.事务和事务的隔离级别 1.4.1.为什么需要事务 事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句,select语句不包含事务&…...
每日一题 34在排序数组中查找元素的第一个和最后一个位置(二分查找)
题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 1&…...
Spring Boot Admin 环境搭建与基本使用
Spring Boot Admin 环境搭建与基本使用 一、Spring Boot Admin是什么二、提供了那些功能三、 使用Spring Boot Admin3.1搭建Spring Boot Admin服务pom文件yml配置文件启动类启动admin服务效果 3.2 common-apipom文件feignhystrix 3.3服务消费者pom文件yml配置文件启动类control…...
JVM之内存模型
1. Java内存模型 很多人将Java 内存结构与java 内存模型傻傻分不清,java 内存模型是 Java Memory Model(JMM)的意思。 简单的说,JMM 定义了一套在多线程读写共享数据时(成员变量、数组)时,对数据…...
音视频 vs2017配置FFmpeg
vs2017 ffmpeg4.2.1 一、首先我把FFmpeg整理了一下,放在C盘 二、新建空项目 三、添加main.cpp,将bin文件夹下dll文件拷贝到cpp目录下 #include<stdio.h> #include<iostream>extern "C" { #include "libavcodec/avcodec.h&…...
【项目管理】PMP备考宝典-第二章《环境》
第一节:概述 1.项目所处的组织环境 (1)事业环境因素(EEFs) 组织内部的事业环境因素: 企业都会有愿景、使命、价值观,这些决定了企业的发展方向。不忘初心,坚定地走自己的路&#…...
ELK 将数据流转换回常规索引
ELK 将数据流转换回常规索引 现象:创建索引模板是打开了数据流,导致不能创建常规索引,并且手动修改、删除索引模板失败 "reason" : "composable template [logs_template] with index patterns [new-pattern*], priority [2…...
jackson库收发json格式数据和ajax发送json格式的数据
一、jackson库收发json格式数据 jackson库是maven仓库中用来实现组织json数据功能的库。 json格式 json格式一个组织数据的字符文本格式,它用键值对的方式存贮数据,json数据都是有一对对键值对组成的,键只能是字符串,用双引号包…...
ubuntu安装和卸载CLion
安装 在https://www.jetbrains.com/clion/download/#sectionlinux下载相应版本的安装包,解压之后,找到解压文件夹中的bin文件夹运行./clion.sh 卸载 使用sudo rm -rf删除以下内容;并把刚刚解压的文件删掉 ~/.config/JetBrains ~/.local/s…...
Petrel解释二维浅地层数据
Petrel是斯伦贝谢开发的一款地质解释和建模软件,有点像地理信息系统的ArcGIS,主要用于数据分析和展示。它不是用来处理原始数据的,而是集成各种处理后的结果数据进行特征分析和目标拾取。当然,它也能读取原始数据,比如…...
分布式任务调度平台XXL-JOB使用
说明:分布式任务调度平台XXL-JOB,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用(官方语)。 本文介绍使用XXL-JOB实现定时执行代码,可用于项目中…...
自考本科汉语言文学专业真的太难了吗
自考本科汉语言文学专业的难度和就业前景都需要综合考虑。目前,自考汉语言文学专业通过率是比较高的,与其他专业比较,难度会低一些,主要考验考生的记忆能力。 自学考试汉语言文学难度怎么样 本科自学考试汉语言文学难度还是比较简…...
STM32CubeMX之freeRTOS信号量
队列可以传输数据,任务之间和任务和中断之间,消息队列用来传数据,占用时间也长 但哦我们有时候只需要传递状态,只需要一个数值表示 如果我们屏幕按固定刷新,就会很消耗资源,如果我们数据变化了࿰…...
react-spring,一个react的动画库的使用
介绍 React Spring 是一个 spring physics based animation library 用于 React。它可以轻松地在 React 中实现弹性、渐变等动画效果。 使用 安装依赖: 使用npm: npm install react-spring 使用yarn: yarn add react-spring 导入和使用&a…...
Python中的lambda函数
前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! Python中的lambda函数 在Python中,我们使用lambda关键字来声明一个匿名函数, 这就是为什么我们将它们称为“lambda函数”。 匿名函数是指没有声明函数名称的函数。 尽管它们在语法上看起来不同&a…...
Ajax入门
文章目录 axios体验axios-查询参数常用请求方法数据提交 axios错误处理 axios体验 引入axios库 使用axios语法 axios({url: 目标资源地址 }).then((result)>{// 对服务器返回的数据做后续处理 })完整实例 <!DOCTYPE html> <html lang"en"><head&g…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
