分享好友 最新动态首页 最新动态分类 切换频道
Docker容器监控
2024-12-26 23:33

利用docker compose组合应用并利用scale可以快速对容器进行扩充,而docker compose启动的服务容器都在同一台宿主机上,对于一个宿主机上运行多个容器应用时,容器的运行情况,如:CPU使用率,内存使用率,网络状态,磁盘空间等一系列随时间变化的时序数据信息,都需要进行了解,因此监控是必须的。 

Docker容器监控

容器监控方案选择

对于容器的监控方案可谓多种多样,除了docker本身自带的 docker stats 命令,还有Scout,Data Dog,Sysdig Cloud,Sensu Monitoring Framework,CAdvisor等都可以对容器进行监控。
通过 docker stats 命令可以很方便的看到当前宿主机上所有容器的CPU,内存,以及网络流量等数据。但 docker stats 命令的缺点是只是统计当前宿主机的所有容器,为获取的数据是实时的,没有地方存储,也没有报警功能。

 

而Scout,Data Dog,Sysdig Cloud虽然都提供了教完善的服务,但是它们都是托管的服务且都是收费的,Sensu Monitoring Framework集成度较高,也免费,但是部署过于复杂,综合考虑选择CAdvisor做监控工具。

CAdvisor出自Google,有点是开源产品,监控指标齐全,部署方便,而且有官方的docker镜像。缺点是集成度不高,默认只在本地保存2分钟数据。不过,可以加上InfluxDB存储数据,对接Grafana展示图表,比较便利搭建容器监控系统,数据收集和图表展示效果良好,对系统性能也几乎没什么影响。

CAdvisor + InfluxDB + Grafana搭建容器监控系统

CAdvisor

CAdvisor是一个容器资源监控工具,包括容器的内存,CPU,网络IO,磁盘IO等,同时提供了一个WEB页面用于查看容器的实时运行状态。CAdvisor默认存储2分钟的数据,而且只是针对单物理机,不过,CAdvisor提供了很多数据集成接口,支持InfluxDB,Redis,Kafka,Elasticsearch等集成,可以加上对应配置将监控数据发往这些数据库存储起来。
CAdvisor功能主要有两点,展示Host,容器两个层次的监控数据和展示历史变化

InfluxDB

InfluxDB是用Go语言编写的一个开源分布式时序,事件和指标数据库,无需外部依赖。
由于CAdvisor默认只在本地保存最近2分钟的数据,为了持久化数据和统一收集展示监控数据,需要将数据存储到InfluxDB中。InfluxDB是一个时序数据库,专门用于存储时序相关数据,很适合存储CAdvisor数据,而且CAdvisor本身提供了InfluxDB集成的方法,在启动容器时指定配置即可。

InfluxDB主要功能

  • 基于时间序列,支持与时间有关的相关函数
  • 可度量性,可以实时对大量数据进行计算
  • 基于事件,支持任意的事件数据

InfluxDB主要特点

  • 无结构
  • 可以是任意数量的列
  • 可拓展
  • 支持min,max等一系列的函数,方便统计
  • 原生的HTTP支持,内置HTTP API
  • 强大的类SQL语法

Granfana

Grafana是一个开源的数据监控分析可视化平台,支持多种数据源配置(如InfluxDB,MySQL,Elasticserach,OpenTSDB,Graphite等)和丰富的插件及模板功能,支持图表权限控制和报警。

Grafana主要特点

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

CAdvisor负责收集容器随时间变化的数据
InfluxDB负责存储时序数据
Grafana负责分析和展示时序数据

安装部署

部署InfluxDB服务

启动InfluxDB的服务容器

 

在容器中创建test数据库和root用户

 

 

部署CAdvisor

启动CAdvisor的服务容器

 

服务容器起来后可通过浏览器访问 http:///ip:8080

 

部署Grafana

启动Grafana服务容器:

 

直接运行该命令后有可能会发现容器并没有启起来,通过 docker logs 命令会发现”mkdir: can’t create directory ‘/var/lib/grafana/plugins’: Permission denied“的错误,其实就是没有 数据卷对应的主机上 /data/grafana 的权限,可以在运行启动命令前先创建 /data/grafana 目录并给定权限777,或者通过”docker run —entrypoint “id” grafana/grafana“ 查看uid,gid,groups (默认为472,然后通过”chown -R 472:472 /data/grafana“修改权限。

 

Grafana正常启动后就可以 http://ip:3000 访问,出现以下的登录页面,初次访问需要修改密码,默认用户名密码为:admin/admin

 

Docker Compose集成部署

准备docker-compose.yml文件

 

在docker-compose.yml文件目录运行以下命令启动服务

 

-d指定在后台启动,初次启动可以不加可以在控制台查看启动日志,当然后台启动也可以通过“docker-compose logs”进行查看启动日志。

服务正常启动后就可以 http://ip:3000 访问Granafa,在Home Dashboard页面点击添加data source

 

配置InfluxDB连接信息,当然在配置连接信息前需要进入InfluxDB容器创建相应的cadvisor数据库和用户root/root

在容器中创建cadvisor数据库和root用户

 

配置连接InfluxDB连接

 

数据源配好之后可以回到Home Dashboard添加添加dashboard图表展示监控信息,Grafana提供了丰富的图片模板对监控数据进行展示。

 

 

 

最新文章
泸县第二人民医院医共体党委书记康健接受纪律审查和监察调查
  泸县第二人民医院医共体党委书记康健涉嫌严重违纪违法,目前正接受泸县纪委监委纪律审查和监察调查。  康健简历  康健,男,汉族,1975年7月生,四川泸县人,在职大学学历。1994年8月参加工作,2009年7月加入中国共产党。  1994
阿里巴巴和淘宝有什么区别
阿里巴巴和淘宝有什么区别1、成交客户不同一个是零售平台,一个是批发平台,最大的不同就在于这个客户类型;零售客户是一单单的发货,成交周期短,百分百平台上成交,他可能这辈子只跟你做这一次买卖;批发客户是大批量的采购,成交周期长
百度输入法定制版
百度输入法定制版是一款针对打字设计的输入法软件。这款软件由百度官方出品,为大家带来了超多的输入方式,无论是手写、五笔、拼音、语音还是各个国家的语言都可以满足大家的需求,更有海量的表情包、金句可以随心选,让大家的聊天更加的富
青春绽放 创新无限
近日,由全国高校思想政治工作网、南开大学和中国移动联合主办,咪咕互动娱乐有限公司、南开大学软件学院、中国电子学会智能人机交互专委会承办的动感地带AI+高校创智计划海选赛在智慧与创意的碰撞中落幕,经过三个月的激烈比拼,50支高校
高清美女写真一键生成:探索AI绘画工具的奥秘与玩法
在这个数字化的时代,AI技术的普及使得我们可以轻松生成超逼真的美女写真。想象一下,只需简单的几步操作,你就能得到一张涵盖各类风格和细节的完美人像。这是不是让你心动呢?今天,我们将带你进入AI生成美女写真工具的世界,分析几款热门
泉州爱采购自运营
百度爱采购是如何排序的?1.时间因素:爱采购网站展示的高品质数据,并非人工介入,而是受时间因素控制,在不同的时间,同一物品会出现在不同的地点。比方说,您在采购中做了一款游泳产品,早上您查询的展示位置是在首页首行,下午再次查询
PTA: 确定班级排名
某学年的班级考评中,班名为cn1​的班级获评先进班集体,班名为cn2​的班级获评优秀学风班。经了解,该学年学院所有班级中,按班级考评的总分sc1​排名选前3个班级获评先进班集体,按学风得分sc2​排名选排
“朋友圈被领导点赞”被认定为加班证据?法院:算加班
12月10日据上海市总工会消息法院处理了一起以领导点赞朋友圈证明加班事实的劳动纠纷案一员工休息时间推广公司产品发朋友圈后领导为其点赞后该员工被公司开除主张领导朋友圈点赞应视为加班公司应支付加班费双方为此对簿公堂员工被开除,要求
滁州琅琊区蛙人水下封堵-善于管理「施工单位」(2025新+排名一览)
滁州琅琊区蛙人水下封堵-善于管理「施工单位」(2025新+排名一览)标题:滁州琅琊区蛙人水下封堵:守护城市水下安全近年来,我国城市化进程的加快,城市水下基础设施的安全维护日益受到重视。滁州琅琊区作为一座历史悠久的城市,其水下基础设
“适度宽松”所释放的重要信号(2024版)(文字版+视频版合集)
每年的年底都有定调来年楼市关键会议,今天会议也出来了,房地产相关,天狼明天在给大家细说,今晚同样也是说重点的,那么是什么样的重点呢?适度宽松,对于这四个字,稍微熟悉楼市的购房者基本是熟悉的,今晚天狼给大家说下对于楼市而言,
相关文章
推荐文章
发表评论
0评