首页 > 其他分享 >16. Docker容器监控CAdvisor+InfluxDB+Granfana

16. Docker容器监控CAdvisor+InfluxDB+Granfana

时间:2023-09-28 18:36:53浏览次数:35  
标签:容器 cadvisor 16 -- influxdb InfluxDB docker CAdvisor


目录

1、前言

2、原始命令

3、CAdvisor+InfluxDB+Granfana

3.1、什么是CAdvisor

3.2、什么是Influxdb

3.3、什么是Granfana

4、安装使用

4.1、安装influxdb

4.2、安装CAdvisor

4.3、安装Granfana

4.4、访问Influxdb

4.5、创建CAdvisor数据库

4.6、访问CAdvisor

4.7、Grafana配置


1、前言

容器监控方式有很多种,上一篇我们介绍了Uptime Kuma。这类一般用于检测docker应用健康状态,而今天要介绍的监控神器更多偏向于Docker的硬件资源监控,如CPU,内存,磁盘IO等,那就是cAdvisor,可以通过配合Prometheus/incAdvisor 是谷歌公司用来分析运行中的 Docker 容器的资源占用以及性能特性的工具。

cAdvisor 是一个运行中的守护进程用来收集、聚合、处理和导出运行容器相关的信息,每个容器保持独立的参数、历史资源使用情况和完整的资源使用数据。当前支持 lmctfy 容器和 Docker 容器。fluxdb,以及Grafana来进行数据的监控告警。

16. Docker容器监控CAdvisor+InfluxDB+Granfana_运维

2、原始命令

通常我们部署的Docker容器会使用命令来查看当前docker所使用的资源情况:

docker stats

16. Docker容器监控CAdvisor+InfluxDB+Granfana_docker_02

3、CAdvisor+InfluxDB+Granfana

3.1、什么是CAdvisor

cAdvisor 是谷歌公司用来分析运行中的 Docker 容器的资源占用以及性能特性的工具。

cAdvisor 是一个运行中的守护进程用来收集、聚合、处理和导出运行容器相关的信息,每个容器保持独立的参数、历史资源使用情况和完整的资源使用数据。当前支持 lmctfy 容器和 Docker 容器。

cAdvisor 还具有内置 UI,它还允许您将收集的数据导出到不同的存储驱动程序插件。

3.2、什么是Influxdb

Influxdb是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。我们后面启动CAdvisor容器时,会指定存储的方式就为Influxdb。

3.3、什么是Granfana

Granfana是一款可视化度量分析和可视化套件,常用于可视化基础设施和应用程序分析,与Kibana类似,UI更加灵活,且插件丰富。

4、安装使用

4.1、安装influxdb

我们先安装存储数据库。

拉取镜像:

docker pull tutum/influxdb

启动容器:

docker run -d -p 8086:8086 -p 8083:8083 --name influxdb -v /data/docker/influxdb:/var/lib/influxdb --restart=always tutum/influxdb

其中8083为web管理页面的端口,8086为写数据库的端口。

16. Docker容器监控CAdvisor+InfluxDB+Granfana_docker_03

4.2、安装CAdvisor

拉取镜像:

docker pull google/cadvisor

16. Docker容器监控CAdvisor+InfluxDB+Granfana_运维_04

启动容器,并指定存储方式为influxdb:

docker run -p 8080:8080 --detach=true --link influxdb:influxdb --name=cadvisor google/cadvisor:latest -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086

16. Docker容器监控CAdvisor+InfluxDB+Granfana_容器_05

4.3、安装Granfana

拉取镜像:

docker pull grafana/grafana

启动容器:

docker run -d \
  -p 3000:3000 \
  -e INFLUXDB_HOST=localhost \
  -e INFLUXDB_PORT=8086 \
  -e INFLUXDB_NAME=cadvisor \
  -e INFLUXDB_USER=root -e INFLUXDB_PASS=root \
  --link influxdb:influxdb \
  --name grafana \
  grafana/grafana

16. Docker容器监控CAdvisor+InfluxDB+Granfana_容器_06

4.4、访问Influxdb

容器启动后,可以访问http://ip:8083/访问influxdb的web管理平台。

16. Docker容器监控CAdvisor+InfluxDB+Granfana_Docker_07

点击右上角齿轮,填写连接配置信息,默认账号密码均为root。点击Save后,可以选择Query Templates下的查询模板,如SHOW DATABASES,可以查看当前已有的数据库信息。

16. Docker容器监控CAdvisor+InfluxDB+Granfana_数据_08

当然,如果对数据库熟悉的人来说,可以直接进入Influxdb终端直接输入命令查询。

4.5、创建CAdvisor数据库

点击Influxdb控制台的Create Database。

16. Docker容器监控CAdvisor+InfluxDB+Granfana_容器_09

将已有的建表语句数据库改为cadvisor,然后回车。

16. Docker容器监控CAdvisor+InfluxDB+Granfana_运维_10

16. Docker容器监控CAdvisor+InfluxDB+Granfana_运维_11

同样的道理,我们可以创建cadvisor用户,并授权:

CREATE USER "cadvisor" WITH PASSWORD 'cadvisor'
grant all privileges on "cadvisor" to "cadvisor"

16. Docker容器监控CAdvisor+InfluxDB+Granfana_数据_12

4.6、访问CAdvisor

通过访问http://ip:8080/就可以看到我们资源的一些基础信息。

16. Docker容器监控CAdvisor+InfluxDB+Granfana_数据_13

16. Docker容器监控CAdvisor+InfluxDB+Granfana_docker_14

4.7、Grafana配置

访问http://ip:3000,就可以访问Grafana控制台页面:

16. Docker容器监控CAdvisor+InfluxDB+Granfana_运维_15

第一次访问会提示你修改密码,修改之后进入页面:

16. Docker容器监控CAdvisor+InfluxDB+Granfana_容器_16

配置数据源为Influxdb:

16. Docker容器监控CAdvisor+InfluxDB+Granfana_数据_17

16. Docker容器监控CAdvisor+InfluxDB+Granfana_docker_18

其中:

  • URL:配置为http://influxdb:8086
  • Database:配置为cadvisor
  • User:Cadvisor
  • Password: Cadvisor

点击保存后,出现如下则成功。

16. Docker容器监控CAdvisor+InfluxDB+Granfana_数据_19

选择Dashboard,创建一个自己需要的仪表盘,选择刚刚创建的Influxdb数据源。

进入仪表盘之后,选择我们要监控的指标项,如这里选择了内存使用。保存后就可以看到监控数据图。

16. Docker容器监控CAdvisor+InfluxDB+Granfana_容器_20

16. Docker容器监控CAdvisor+InfluxDB+Granfana_Docker_21

这里就完成了最简单的监控模型仪表盘,Grafana还可以配置告警规则。

16. Docker容器监控CAdvisor+InfluxDB+Granfana_docker_22

这里可以配置告警规则,也可以配置告警的邮件发送配置。具体可以百度教程,这里就不赘述。

标签:容器,cadvisor,16,--,influxdb,InfluxDB,docker,CAdvisor
From: https://blog.51cto.com/u_15423953/7641598

相关文章

  • Windows server 2016:无法打开此计算机上的组策略对象。你可能没有相应的权限。
    问题现象:使用服务器管理器打开本地安全策略,或使用win+R快捷键,输入gpedit.msc打开系统组策略时,出现报错:无法打开此计算机上的组策略对象。你可能没有相应的权限。解决方法:1、使用win+E快捷键打开资源管理器,点击”查看“,勾选”隐藏的项目“,因为C:\Windows\System32\GroupPolicy......
  • 亚马逊筋膜枪UL1647测试报告申请
    筋膜枪,又称深层肌筋膜冲击仪,是一种通过高频冲击放松身体的软组织的软组织康复工具。[1]筋膜枪可理解为DMS(电动深层肌肉刺激器)的民用版本。使用时振动频率会发生变化,其基本功能与DMS相似。[2]筋膜枪的使用必须注意方法和方法。同时,筋膜枪的首次使用需要在专业人士的指导下使用。最好......
  • Problem - 616C - Codeforces
    Problem-616C-CodeforcesC.TheLabyrinth如果是直接对\(*\)去跑dfs或者bfs的话无疑是会超时的既然如此,那我们可以去对\(.\)跑搜索,将各个连通的\(.\)块标号并计算出连通块内的点的数量,然后去遍历\(*\)的时候只需要上下左右跑一下计算即可啊,在\(bfs\)或\(dfs\)的时......
  • 题解 [HEOI2016/TJOI2016] 排序
    题目链接看到这道题按照套路首先想到二分答案(即二分\(q\)位置上的数,记作\(mid\))。再按照套路将大于\(mid\)的数字设为\(1\),将等于\(mid\)的数设为\(2\),小于\(mid\)的数字设为\(0\)。那么对于区间\([l,r,0]\)操作,应该先讲\(0,1,2\)的数量找出来,然后按照从小到大......
  • vim 16进制显示
    你可以在vim中可以把文件转换为16进制来显示::%!xxd解释:把所有的行(%)用本地(!)的xxd程序打开。xxd本是linux下一个显示、编辑、转换二进制的命令。返回正常显示::%!xxd-r注意:vim的-b选项是告诉vim打开的是一个二进制文件,不指定的话,会在后面加上0x0a,即一个换行符。首先以二进制方......
  • Blazor前后端框架Known-V1.2.16
    V1.2.16Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。Gitee:https://gitee.com/known/KnownGithub:https://github.com/known/Known概述基于C#和Blazor实现的快速开发框架,前后端分离,开箱即用。跨平台,单页应用,混合桌面应用,Web和桌面......
  • CF1162 Codeforces Round 557 (Div. 2) [based on Forethought Future Cup - Final Ro
    CF1162AZoningRestrictionsAgain每个位置越高越好,暴力模拟即可。#include<iostream>#include<cstdio>usingnamespacestd;constintN=55;intn,h,m;inta[N];intmain(){ scanf("%d%d%d",&n,&h,&m); for(inti=1;i<=n;i++) a[i]=h;......
  • P3147 [USACO16OPEN] 262144 P
    Link这个题有一个很特殊的点,就是最大值不会超过28,可以想一下最多可以合并多少次。那么常规的区间dp是不能使用的,就要采用特殊的形式,因为很难的确定应该怎么转移,那么就换一种思路,转移的对象变成另外一个端点。\(dp_{i,j}\)表示\(i\)在左边,达到\(j\)的话的右端点位置\(dp_{i,j......
  • 一步教会你如何获取1688商品详情
    在当今的互联网时代,获取信息的方式和数量都呈现出爆炸式增长。这其中,商品详情作为重要的信息来源,对于许多人来说都是一项必要的任务。1688作为中国知名的B2B平台,拥有海量的商品信息。本文将通过简单的步骤教你如何获取1688商品详情。一、了解网页结构和数据抽取在开始之前,我们首先......
  • 2023-09-16:用go语言,给你一个整数 n 和一个在范围 [0, n - 1] 以内的整数 p , 它们表示
    2023-09-16:用go语言,给你一个整数n和一个在范围[0,n-1]以内的整数p,它们表示一个长度为n且下标从0开始的数组arr,数组中除了下标为p处是1以外,其他所有数都是0。同时给你一个整数数组banned,它包含数组中的一些位置。banned中第i个位置表示arr[banned[i]]=......