Docker容器监控系统

news2024/11/13 9:59:13

目录

简化描述

Cadvisor +InfluxDB+Grafana

监控组件架构图

部署

安装docker-ce

阿里云镜像加速器

下载组件镜像

创建自定义网络

创建influxdb容器

创建granafa容器


简化描述


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

容器信息采集及监控的方案有很多,有docker自身的docker stats命令、Scout、Data Dog、Prometheus等,本次为大家分享两款比较经典的容器开源监控组合方案Cadvisor +InfluxDB+Grafana和Cadvisor +Prometheus+Grafana

Cadvisor +InfluxDB+Grafana


Cadvisor、InfluxDB 和 Grafana 是三个常用的开源软件工具,通常在容器监控和可视化方面使用。

Cadvisor 是一个用于监控容器资源使用情况的工具,可以提供关于 CPU、内存、磁盘和网络等方面的性能指标。

特点:

  • 可以展示主机和容器两个层次的监控数据。
  • 可以展示历史变化数据。
  • 谷歌公司的开源产品。
  • 监控指标齐全。
  • 方便部署,有官方的docker镜像。
  • 默认只在本地保存1分钟数据,可以集成InfluxDB等第三方存储使用。

InfluxDB 是一个时间序列数据库,用于存储和管理大量时间序列数据。它被广泛应用于在实时监控、运维监控和物联网等领域。

主要功能

  • 基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等);
  • 可度量性:你可以实时对大量数据进行计算;
  • 基于事件:它支持任意的事件数据;

特点

  • 无结构(无模式):可以是任意数量的列;
  • 支持拓展;
  • 支持min, max, sum, count, mean, median 等一系列函数,方便统计;
  • 原生的HTTP支持,内置HTTP API;
  • 强大的类SQL语法;
  • 自带管理界面,方便使用;

Grafana 是一个用于创建和共享实时数据监控仪表盘的工具,可以从各种数据源中提取和可视化数据。它能够连接到 InfluxDB 数据库,并以可视化的方式展示容器运行时的各种性能指标和监控数据。

因此,Cadvisor、InfluxDB 和 Grafana 的组合通常用于容器环境中,以获取、存储和展示容器的性能指标和监控数据。

主要特性

  • 灵活丰富的图形化选项;
  • 可以混合多种风格;
  • 支持白天和夜间模式;
  • 支持多个数据源;

监控组件架构图


监控组件架构部署方案:

  • 创建自定义网络monitor(自定义网络名称),用于后期容器加入此网络中;
  • 创建Influxdb容器,创建数据用户、数据库;
  • 创建Cadvisor 容器;
  • 创建Grafana容器,配置grafana;

部署


安装docker-ce

环境:

关闭防火墙

保证连接外网

[root@localhost ~]# wget http://mirrors.aliyun.com/repo/Centos-7.repo

【下载镜像】

[root@localhost ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

【在 CentOS 系统上安装了三个软件包:yum-utils、device-mapper-persistent-data 和 lvm2。这些软件包提供了一些方便的工具和库,用于增强 yum 命令的功能,并支持设备映射器的持久化数据和逻辑卷管理。】

[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

【添加仓库源】

[root@localhost ~]# yum -y install docker-ce  【安装docker-ce】

[root@localhost ~]# systemctl start docker    【启动】

[root@localhost ~]# systemctl enable docker  【设置开机自启】

[root@localhost ~]# docker version 【查看版本信息】

阿里云镜像加速器

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企业应用、物联网等云计算服务。https://cr.console.aliyun.com/

[root@localhost ~]# cat << END > /etc/docker/daemon.json

{

        "registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]

}

END

指定的镜像加速器(阿里云镜像加速器)的地址添加到 Docker 配置文件 /etc/docker/daemon.json

[root@localhost ~]# systemctl daemon-reload

【重新加载 systemd 守护程序配置文件】

[root@localhost ~]# systemctl restart docker

【重启】

下载组件镜像

 [root@localhost ~]# docker pull tutum/influxdb

[root@localhost ~]# docker pull google/cadvisor

[root@localhost ~]# docker pull grafana/grafana

[root@localhost ~]# docker images

【查看已下载的 Docker 镜像列表及其相关信息】

 

创建自定义网络

为了把后期创建的Cadvisor+InfluxDB+Grafana这三个容器都加入自己定义的网络便于理解和管理,所以才新建一个自定义网络。

[root@localhost ~]# docker network create monitor

[root@localhost ~]# docker network ls

创建influxdb容器

启动容器,tutum/influxdb镜像这里没有指定版本,默认会pull最新版本的influxdb:

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

参数说明:

  • -d :后台运行此容器;
  • --name :启运容器分配名字influxdb;
  • --net : 把容器加入到新的网络monitor;
  • -p :映射端口,8083端口为infuxdb后台控制端口,8086端口是infuxdb的数据端口;
  • tutum/influxdb:通过这个容器来运行的,默认会在docker官方仓库pull下来;

查看influxdb容器是否启动

[root@localhost ~]# docker ps -l

访问influxdb控制台http://192.168.200.111:8083

从上图可以看到,在Query Templates选项中提供了常用的操作模板,可根据这些模版来管理influxdb,下面我们就来创建数据库和数据库用户。

CREATE USER "root" WITH PASSWORD '123456' WITH ALL PRIVILEGES

创建Cadvisor 数据库cadvisor 、用户root,用户和数据库大家可以自行随意定义,用于后期grafana的配置:

CREATE DATABASE "cadvisor"

 创建Cadvisor 容器

[root@localhost ~]# docker run -d --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --net monitor --publish=8080:8080  --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086

参数说明:

  • -d:后台运行此容器;
  • --name:启运容器分配名字Cadvisor ;
  • --net:把容器加入到新的网络monitor;
  • -p:映射端口8080;
  • --mout:把宿主机的相文目录绑定到容器中,这些目录都是Cadvisor 需要采集的目录文件和监控内容;
  • -storage_driver:需要指定Cadvisor 的存储驱动、数据库主机、数据库名;
  • google/Cadvisor :通过Cadvisor 这个镜像来运行容器,默认会在docker官方仓库把镜像pull下来;

查看Cadvisor 容器:

[root@localhost ~]# docker ps -l

通过http://192.168.200.111:8080端口访问测试一下,第一次访问这个页面有点慢

从上图可以看到,其实Cadvisor 也有基础的图形展示功能,我们这里主要用它来做数据采集。

准备测试镜像

[root@localhost ~]# docker run -itd  --name nginx -p 8000:80 nginx

[root@localhost ~]# docker images nginx

[root@localhost ~]# docker ps -l

创建granafa容器

[root@localhost ~]# docker run -d --name grafana --net monitor -p 3000:3000 grafana/grafana

  • docker run:Docker 命令,用于运行一个容器。
  • -d:表示以后台方式运行容器(detached mode)。
  • --name grafana:为容器指定名称为 “grafana”。
  • --net monitor:将容器连接到名为 “monitor” 的网络。
  • -p 3000:3000:将主机的端口3000映射到容器的端口3000,允许主机通过端口3000访问容器内的Grafana服务。
  • grafana/grafana:使用 “grafana/grafana” 镜像创建容器。

查看运行结果:

[root@localhost ~]# docker ps -l

访问granfana,通过http://192.168.200.111:3000端口的方式访问,默认账户密码(admin/admin),首次登陆需要更新密码。

 

 

 

滚轮向下滑

新建 Dashboard,如下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/897832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度解读波卡 2.0:多核、更有韧性、以应用为中心

本文基于 Polkadot 生态研究院整理&#xff0c;有所删节 随着波卡 1.0 的正式实现&#xff0c;波卡于 6 月 28 日至 29 日在哥本哈根举办了年度最重要的会议 Polkadot Decoded 2023&#xff0c;吸引了来自全球的行业专家、开发者和爱好者&#xff0c;共同探讨和分享波卡生态的…

数据结构 - 算法的时间效率和空间效率

一、时间效率 程序在计算机上执行所消耗的时间。 两种估算方式&#xff1a; 事后统计事前分析 算法运行时间 一个简单操作所需的时间X简单操作次数 算法运行总时间 Σ每条语句执行次数&#xff08;即&#xff1a;每条语句频度&#xff09;X该语句执行一次所需的时间 每条语…

【SpringCloud】Hystrix使用

文章目录 Hystrix重要概念使用POM启动类YML示例Global fallback 服务降级&#xff0c;客户端去调用服务端&#xff0c;碰上服务端宕机或关闭服务熔断HystrixCommand中commandProperties参数 Hystrix执行流程服务监控hystrixDashboardPOM Hystrix重要概念 https://github.com/N…

Golang Gorm 更新字段 save update updates

更新和删除操作的前提条件都是要在找到数据的情况下&#xff0c;先要查询到数据才可以做操作。 更新的前提的先查询到记录&#xff0c;Save保存所有字段&#xff0c;用于单个记录的全字段更新它会保控所有字段&#xff0c;即使零值也会保存。 在更新和删除之前&#xff0c;要利…

Python学习笔记_进阶篇(二)_django知识(一)

本章简介&#xff1a; Django 简介Django 基本配置Django urlDjango viewDjango 模板语言Django Form Django 简介 Django是一个开放源代码的Web应用框架&#xff0c;由Python写成。采用了MVC的软件设计模式&#xff0c;即模型M&#xff0c;视图V和控制器C。它最初是被开发来…

不知道开黑语音哪个软件好?

黑盒语音官方网站&#xff1a;https://chat.top 免费支持AI降噪免费支持高品质立体声免费支持码率128Kbps,192Kbps免费支持上传100M文件免费支持动态房间头像和横幅支持更多自定义动态表情即将支持更多免费功能

Lua 语言笔记(一)

1. 变量命名规范 弱类型语言(动态类型语言)&#xff0c;定义变量的时候&#xff0c;不需要类型修饰 而且&#xff0c;变量类型可以随时改变每行代码结束的时候&#xff0c;要不要分号都可以变量名 由数字&#xff0c;字母下划线组成&#xff0c;不能以数字开头&#xff0c;也不…

CSS:filter滤镜 详解(用法 + 代码 + 例子 + 效果)

文章目录 filter 滤镜blur() 模糊度例子 渐变光晕 brightness() 元素亮度contrast() 对比度grayscale() 元素灰度hue-rorate() 色相opacity() 透明度invert() 反转颜色saturate() 饱和度 backdrop-filter 蒙版&#xff0c;滤镜例子 卷轴展开 filter 滤镜 动图为效果添加前后对…

计算复杂度基础

1. 抽象问题 抽象问题包括决策问题和优化问题 注意&#xff1a;描述中&#xff0c;I的缩写是Instance&#xff0c;S的缩写是Solution。 2. 决策问题 3. 优化问题 将一个优化问题转换为决策问题后&#xff0c;不会变的更难。 \color {green}将一个优化问题转换为决策问题后&…

实验篇——多序列比对,构树

实验篇——多序列比对&#xff0c;构树 文章目录 前言一、名词解释二、实操1. 文件准备2. 多序列比对3. 对比对序列修剪4. 构建进化树5. 可视化进化树 总结 前言 系统发育树构建的软件大致有如下几种策略&#xff1a;从最简单的UPGMA法&#xff0c;到邻接法&#xff0c;最大简…

一文学会配置Fanuc控制柜端ROS2驱动

文章目录 前言一、RobotGuide是什么&#xff1f;二、实现步骤创建机器人工作单元导入程序TP程序Karel程序 构建程序配置控制柜配置机器人控制柜通讯配置可同时运行程序数量配置ROS_RELAY变量配置ROS_STATE变量设置启用标志 三、测试机器人状态反馈机器人命令接收整体运行测试 总…

新晋游资:华东大导弹音频读后感

昨天晚上听了新晋游资 华东大导弹的一个音频&#xff0c;感受还是颇多的&#xff0c;首先他是一个很谦虚&#xff0c;很善良的人&#xff0c;同样的评价我会给92科比老师。其实&#xff0c;他说的都是很实在的话&#xff0c;没有半点虚言&#xff0c;很想帮助大家利用超短线走出…

C++初阶语法——static类成员

前言&#xff1a;本文将介绍类和对象中的static类成员——静态成员函数&#xff0c;静态成员变量的使用方法和注意点。在某些场景下&#xff0c;静态成员很有意义。 目录 一.概念二.特性静态成员不存在对象中 三.静态成员变量在类外初始化四.静态成员函数 一.概念 声明为stati…

RDMA qp数量和RDMA性能

QP数量上升性能下降 ​​​​​​https://icnp21.cs.ucr.edu/papers/icnp21camera-paper30.pdf 在现代云数据中心中&#xff0c;大规模分布式应用通常构建在许多机器上&#xff0c;需要使用大量并发连接进行频繁的网络通信[4]–[6]。但是&#xff0c;RDMA的性能会随着连接数的…

SpringBoot第42讲:SpringBoot集成Redis - 基于RedisTemplate+Lettuce数据操作

SpringBoot第42讲&#xff1a;SpringBoot集成Redis - 基于RedisTemplateLettuce数据操作 在SpringBoot 2.x版本中Redis默认客户端是Lettuce&#xff0c;本文是SpringBoot第42讲&#xff0c;主要介绍SpringBoot 和默认的 Lettuce 的整合案例。 文章目录 SpringBoot第42讲&#x…

通过案例学习pandas计算相关系数

pandas计算相关系数 在数据分析和统计学中&#xff0c;相关系数是一种用于衡量两个变量之间关系强度的统计指标。它可以帮助我们了解两个变量之间的线性关系强度和方向。 Pandas是一个强大的Python库&#xff0c;提供了许多用于数据分析和处理的功能。在本文中&#xff0c;我…

「新整理」战略定位理论发展史

1954年&#xff0c;彼得德鲁克——现代管理学之父 代表作《管理的实践》 提出具有划时代意义的概念——目标管理&#xff0c;将管理划分为战略管理、组织管理和自我管理。将生产力从生产部门扩大到组织的所有职能部门&#xff0c;以知识精英为代表的职业经理人开始代替资本家走…

基于ssm的CRM客户管理系统(spring + springMVC + mybatis)营销业务信息java jsp源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于ssm的CRM客户管理系统&#xff08;spring spring…

java-JVM 类加载机制

JVM 类加载机制 JVM 类加载机制分为五个部分&#xff1a;加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化&#xff0c;下面我们就分别来看一下这五个过程。 1.1. 加载 加载是类加载过程中的一个阶段&#xff0c;这个阶段会在内存中生成一个代表这…

浏览器控制台调试实用方法

许多程序员仅知道控制台的console.log&#xff0c;其实控制台API还包含一些其他实用方法&#xff0c; 这些方法在前端调试时会很有帮助。 目录 console.dir 查看对象属性和方法 输出DOM元素 console.error console.time和console.timeEnd console.log console.clear 总结…