构建Docker容器监控系统(cadvisor+influxDB+grafana)
目录
一、部署
1、安装docker-cd
2、阿里云镜像加速
3、下载组件镜像
4、创建自定义网络
5、创建influxdb容器
6、创建Cadvisor 容器
7、创建granafa容器
一、部署
1、安装docker-cd
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# wget http://mirrors.aliyun.com/repo/Centos-7.repo[root@localhost ~]# yum -y install yum-utils device-mapper-persistent-data lvm2
[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
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
[root@localhost ~]# docker version
Client: Docker Engine - CommunityVersion: 19.03.5API version: 1.40Go version: go1.12.12Git commit: 633a0eaBuilt: Wed Nov 13 07:25:41 2019OS/Arch: linux/amd64Experimental: falseServer: Docker Engine - CommunityEngine:Version: 19.03.5API version: 1.40 (minimum version 1.12)Go version: go1.12.12Git commit: 633a0eaBuilt: Wed Nov 13 07:24:18 2019OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.2.10GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339runc:Version: 1.0.0-rc8+devGitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657docker-init:Version: 0.18.0GitCommit: fec3683
2、阿里云镜像加速
[root@localhost ~]# cat << END > /etc/docker/daemon.json
{"registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]
}
END
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
3、下载组件镜像
[root@localhost ~]# docker pull tutum/influxdb
[root@localhost ~]# docker pull google/cadvisor
[root@localhost ~]# docker pull grafana/grafana
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
grafana/grafana latest 9b957e098315 20 months ago 275MB
google/cadvisor latest eb1210707573 4 years ago 69.6MB
tutum/influxdb latest c061e5808198 6 years ago 290MB
4、创建自定义网络
为了把后期创建的Cadvisor+InfluxDB+Grafana这三个容器都加入自己定义的网络便于理解和管理,所以才新建一个自定义网络
[root@localhost ~]# docker network create monitor
18b6d5f890466b563c7f4aec62a208e65ced90ac01717550248fcda7c99de5eb
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
ff5212270fa2 bridge bridge local
e2de4f2fd93e host host local
18b6d5f89046 monitor bridge local
7212bc002123 none null local
5、创建influxdb容器
启动容器,tutum/influxdb镜像这里没有指定版本,默认会pull最新版本的influxdb:
[root@localhost ~]# docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb
e729bfb694a1657178557eea325c0b3d6d497b91a700ba69eb55b9441a27bc84
参数说明:
- -d :后台运行此容器;
- --name :启运容器分配名字influxdb;
- --net : 把容器加入到新的网络monitor;
- -p :映射端口,8083端口为infuxdb后台控制端口,8086端口是infuxdb的数据端口;
- tutum/influxdb:通过这个容器来运行的,默认会在docker官方仓库pull下来;
查看influxdb容器是否启动:
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e729bfb694a1 tutum/influxdb "/run.sh" 32 seconds ago Up 31 seconds 0.0.0.0:8083->8083/tcp, :::8083->8083/tcp, 0.0.0.0:8086->8086/tcp, :::8086->8086/tcp influxdb

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

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

6、创建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
f70fa681a8ab62ef13281cc661d4526a4a9aa3af20281cb0804be04c8be25609
参数说明:
- -d:后台运行此容器;
- --name:启运容器分配名字Cadvisor ;
- --net:把容器加入到新的网络monitor;
- -p:映射端口8080;
- --mout:把宿主机的相文目录绑定到容器中,这些目录都是Cadvisor 需要采集的目录文件和监控内容;
- -storage_driver:需要指定Cadvisor 的存储驱动、数据库主机、数据库名;
- google/Cadvisor :通过Cadvisor 这个镜像来运行容器,默认会在docker官方仓库把镜像pull下来;
查看Cadvisor 容器:
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f70fa681a8ab google/cadvisor "/usr/bin/cadvisor -…" 26 seconds ago Up 25 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp cadvisor
第一次访问这个页面有点慢

从上图可以看到,其实Cadvisor 也有基础的图形展示功能,我们这里主要用它来做数据采集。
准备测试镜像
[root@localhost ~]# docker pull nginx
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@localhost ~]# docker run -itd --name nginx -p 8000:80 nginx
63844f017e3db7ecd04879384743fec427048e52e2a46a3440361fba1876c616
[root@localhost ~]# docker images nginx
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 19 months ago 141MB
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
63844f017e3d nginx "/docker-entrypoint.…" 8 minutes ago Up 7 minutes 0.0.0.0:8000->80/tcp, :::8000->80/tcp nginx

7、创建granafa容器
[root@localhost ~]# docker run -d --name grafana --net monitor -p 3000:3000 grafana/grafana
11201213a39a45735822f693f49597e90d8ecf7be0ee74ad3683094e08a24e4f
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11201213a39a grafana/grafana "/run.sh" 8 seconds ago Up 7 seconds 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp grafana
[root@localhos
访问granfana,通过http://192.168.147.139:3000端口的方式访问,默认账户密码(admin/admin),首次登陆需要更新密码。

添加数据源Add data source,如下图:

数据库:cadvisor 用户:root 密码:123456 然后save

新建 Dashboard,如下图:
可以看见已经创建成功,然后进入Dashboard
Add a new panel
可以查看我们之前建立的nginx,内存使用情况,在default里选择memory_usage里选择container_name里选择nginx

右上角保存

我们还可以多添加一个panel一起监控


到这里Cadvisor+InfluxDB+Grafana容器监控系统就部署完成了,至于其它grafana的监控项配置不重点介绍。大家如果感兴趣可以参考一些官方资料都是图形化的界面操作。
相关文章:
构建Docker容器监控系统(cadvisor+influxDB+grafana)
目录 一、部署 1、安装docker-cd 2、阿里云镜像加速 3、下载组件镜像 4、创建自定义网络 5、创建influxdb容器 6、创建Cadvisor 容器 7、创建granafa容器 一、部署 1、安装docker-cd [rootlocalhost ~]# iptables -F [rootlocalhost ~]# setenforce 0 setenforce: SELi…...
最强自动化测试框架Playwright(17)- 模拟接口
模拟接口 介绍 Web API 通常作为 HTTP 终结点实现。Playwright提供了API来模拟和修改网络流量,包括HTTP和HTTPS。页面所做的任何请求,包括 XHR 和获取请求,都可以被跟踪、修改和模拟。使用Playwright,您还可以使用包含页面发出的…...
Python爬虫——requests_get请求
import requests# ?可加可不加 url http://www.baidu.com/s?headers {Cookie: ,User-Agent: , }data {wd: 北京 } # params 参数 response requests.get(urlurl, paramsdata, headersheaders)content response.text print(content)总结: 参数使用params传递…...
【EI复现】一种建筑集成光储系统规划运行综合优化方法(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
C++11 异步与通信之 std::async
概念简介 std::async 异步运行一个函数,将返回值保存在std::future中。 含有2个策略参数: launch::deferred 延迟执行,当调用wait()和get()时,任务才会被运行,且不创建线程;launch::async : 创建线程并执…...
影视站用什么cms好?
影视站是指用于提供电影、电视剧、综艺等视频资源的网站。由于影视站需要频繁更新大量的内容,因此使用一个好的内容管理系统(CMS)非常重要。以下是几个受欢迎的影视站CMS的介绍。最新下载地址:roulang WordPress WordPress是目前…...
HOT88-乘积最大子数组
leetcode原题链接:乘积最大子数组 题目描述 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个 32-位 整数。子数组 是…...
工博士与纷享销客达成战略合作,开启人工智能领域合作新篇章
近日,工博士与纷享销客在上海正式签署了战略合作协议,正式拉开了双方在人工智能与数字营销领域的合作序幕。这次合作将为双方带来更多机遇和发展空间,并为全球人工智能领域的客户提供更高效、智能的CRM解决方案。 < 双方项目人员合影 >…...
拆解与重构:慕云游首页组件化设计
目录 前言1 项目准备1.1 创建项目目录1.2 搭建项目开发环境 2 项目组件化2.1 在当前环境启动原有项目2.2 顶部组件2.3 幻灯片组件2.4 机酒自由行组件2.5 拆分余下的css文件 3 项目完善3.1 幻灯片组件3.1.1 结构和样式3.1.2 功能实现3.1.3 使用Ajax获取数据3.1.4 加载中组件 3.2…...
刷了3个月的华为OD算法题,刷出感觉了,如洁柔般丝滑,文末送《漫画算法2:小灰的算法进阶》
目录 一、考研二战,入职华为,反向调剂电子科大深圳下面分享一道2023 B卷 朋友抽中题 简易内存池:二、题目描述三、输入描述四、输出描述样例:输出样例: 五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明…...
ip转换器哪个好用 ip地址切换器有哪些
在互联网时代,IP转换器成为了实现高效工作的常见工具。而如今,市面上涌现出了众多的IP转换器软件,使得用户在选择时感到困惑。本文将介绍一种深度IP转换器软件,探讨其特点和优势,以及与其他软件相比的差异,…...
【python】爬取豆瓣电影Top250(附源码)
前言 在网络爬虫的开发过程中,经常会遇到需要处理一些反爬机制的情况。其中之一就是网站对于频繁访问的限制,即IP封禁。为了绕过这种限制,我们可以使用代理IP来动态改变请求的来源IP地址。在本篇博客中,将介绍如何使用代理IP的技术…...
35岁职业危机?不存在!体能断崖?不担心
概述 90年,硕士毕业,干了快8年的Java开发工作。现年33岁,再过2年就要35岁。 工作这些年,断断续续也看过不少35岁找不到工作,转行,降薪入职的传闻、案例。 35岁,甚至30岁之后,体能…...
C语言——指针进阶
本章重点 字符指针数组指针指针数组数组传参和指针传参函数指针函数指针数组指向函数指针数组的指针回调函数指针和数组面试题的解析 1. 字符指针 在指针的类型中我们知道有一种指针类型为字符指针 char* int main() { char ch w; char *pc &ch; *pc w; return 0; }…...
heap pwn 入门大全 - 1:glibc heap机制与源码阅读(上)
本文为笔者学习heap pwn时,学习阅读glibc ptmalloc2源码时的笔记,与各位分享。可能存在思维跳跃或错误之处,敬请见谅,欢迎在评论中指出。本文也借用了部分外网和其他前辈的素材图片,向各位表示诚挚的感谢!如…...
树莓派RP2040 用Arduino IDE安装和编译
目录 1 Arduino IDE 1.1 IDE下载 1.2 安装 arduino mbed os rp2040 boards 2 编程-烧录固件 2.1 打开点灯示例程序 2.2 选择Raspberry Pi Pico开发板 2.3 编译程序 2.4 烧录程序 2.4.1 Raspberry Pi Pico开发板首次烧录提示失败 2.4.2 解决首次下载失败问题 2.4.2.1…...
云安全攻防(八)之 Docker Remote API 未授权访问逃逸
Docker Remote API 未授权访问逃逸 基础知识 Docker Remote API 是一个取代远程命令行界面(rcli)的REST API,其默认绑定2375端口,如管理员对其配置不当可导致未授权访问漏洞。攻击者利用 docker client 或者 http 直接请求就可以…...
2023-08-13 LeetCode每日一题(合并两个有序数组)
2023-08-13每日一题 一、题目编号 88. 合并两个有序数组二、题目链接 点击跳转到题目位置 三、题目描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 …...
nbcio-boot升级springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json问题
升级后,运行显示项目的时候出现下面错误 2023-08-12 10:57:39.174 [http-nio-8080-exec-3] [1;31mERROR[0;39m [36morg.jeecg.common.aspect.DictAspect:104[0;39m - json解析失败Java 8 date/time type java.time.LocalDateTime not supported by default: add Mo…...
「C/C++」C/C++搭建程序框架
✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C」C/C程序设计「Win」Windows程序设计「DSA」数据结构与算法「File」数据文件格式 目录 1. 分离职…...
Hunyuan-MT-7B行业落地:医疗说明书、药品标签民汉双语自动生成
Hunyuan-MT-7B行业落地:医疗说明书、药品标签民汉双语自动生成 在医疗健康领域,信息的准确传递至关重要。无论是药品说明书、医疗器械标签,还是患者教育材料,都需要清晰、无误地传达给不同语言背景的使用者。然而,传统…...
OFA图文语义蕴含系统应用场景:AI驱动的内容安全审核方案
OFA图文语义蕴含系统应用场景:AI驱动的内容安全审核方案 1. 引言:当图文不符成为网络常态 你有没有遇到过这样的情况?刷社交媒体时,看到一张触目惊心的图片,配文讲述一个悲惨的故事,但仔细一看࿰…...
Zig中结构体和枚举怎么用?
在 Zig 编程语言中,结构体(struct)和枚举(enum)是两种基本的数据类型。 结构体和枚举是定义和使用自定义数据类型的两种主要方式。 结构体和枚举提供了更高层次的数据组织和类型安全,适用于不同的编程场景…...
Qwen3-Embedding-4B保姆级教程:知识库多行输入规范与非法字符过滤逻辑
Qwen3-Embedding-4B保姆级教程:知识库多行输入规范与非法字符过滤逻辑 1. 项目简介与核心价值 今天给大家带来一个特别实用的工具——基于阿里通义千问Qwen3-Embedding-4B大模型构建的语义搜索演示服务。这个项目最大的特点就是真正理解你的意思,而不是…...
Chart.js与Lightning Web Components集成:lwcc使用指南
Chart.js与Lightning Web Components集成:lwcc使用指南 【免费下载链接】awesome A curated list of awesome Chart.js resources and libraries 项目地址: https://gitcode.com/GitHub_Trending/awesome/awesome Chart.js作为一款功能强大的开源图表库&…...
智慧树自动刷课插件:3步实现无人值守学习
智慧树自动刷课插件:3步实现无人值守学习 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台的网课进度烦恼吗?智慧树自动刷课插件…...
org.openpnp.vision.pipeline.stages.DetectFixedCirclesHough
文章目录org.openpnp.vision.pipeline.stages.DetectFixedCirclesHough功能参数固定参数(在 XML 中配置)动态参数(必须通过 pipeline.setProperty() 预先设置)例子效果ENDorg.openpnp.vision.pipeline.stages.DetectFixedCirclesH…...
SUPER COLORIZER作品集:从经典素描到赛博朋克的风格化上色展示
SUPER COLORIZER作品集:从经典素描到赛博朋克的风格化上色展示 你有没有想过,一张简单的黑白线稿,能在几秒钟内变成一幅充满未来感的赛博朋克画作,或者一幅意境深远的水墨画?这听起来像是专业画师的工作,但…...
MiniCPM-o-4.5-nvidia-FlagOS企业应用:制造业BOM图纸识别+物料说明生成系统
MiniCPM-o-4.5-nvidia-FlagOS企业应用:制造业BOM图纸识别物料说明生成系统 1. 引言:当图纸遇到AI,制造业的“说明书”难题迎刃而解 想象一下这个场景:一家制造工厂的工程师小王,正对着一份刚从供应商那里发来的复杂装…...
Neeshck-Z-lmage_LYX_v2实战教程:提示词引导强度(1.0-7.0)效果对照表
Neeshck-Z-lmage_LYX_v2实战教程:提示词引导强度(1.0-7.0)效果对照表 1. 引言:为什么你需要关注这个参数? 如果你用过文生图工具,肯定遇到过这种情况:明明输入了“一只猫”,结果生…...
