10分钟搞定Docker容器监控平台
cAdvisor(Container Advisor)
是 Google
开源的一个容器监控工具,可用于对容器资源的使用情况和性能进行监控。用于收集、聚合、处理和导出正在运行容器的有关信息。具体来说,该组件对每个容器都会记录其资源隔离参数、历史资源使用情况、完整历史资源使用情况的直方图和网络统计信息。cAdvisor
本身就对 Docker
容器支持,并且还对其它类型的容器尽可能的提供支持,力求兼容与适配所有类型的容器。
由以上介绍我们可以知道,cAdvisor
是用于监控容器引擎的,由于其监控的实用性,Kubernetes
已经默认将其与 Kubelet
融合作为容器监控指标的默认工具,所以,对于云原生集群直接使用 Kubelet
组件提供的指标采集地址即可。
cAdvisor部署
1、使用以下命令安装启动cAdvisor组件
:
(资料图片)
docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ --privileged \ --device=/dev/kmsg \ google/cadvisor:latest
2、此时,cAdvisor组件
已经启动,我们可以使用浏览器访问 http://自己IP地址:8080
访问到cAdvisor组件
的Web UI
:
3、而在多主机的情况下,在所有节点上运行一个cAdvisor
再通过各自的Web UI
查看监控信息显然不太方便,同时cAdvisor
默认只保存2分钟的监控数据。好消息是cAdvisor
已经内置了对Prometheus
的支持。访问http://自己的IP地址:8080/metrics
即可获取到标准的Prometheus
监控样本输出:
4、下面表格中列举了一些cAdvisor
中获取到的典型监控指标:
指标名称 | 类型 | 含义 |
---|---|---|
container_cpu_load_average_10s | gauge | 过去10秒容器CPU的平均负载 |
container_cpu_usage_seconds_total | counter | 容器在每个CPU内核上的累积占用时间 (单位:秒) |
container_cpu_system_seconds_total | counter | System CPU累积占用时间(单位:秒) |
container_cpu_user_seconds_total | counter | User CPU累积占用时间(单位:秒) |
container_fs_usage_bytes | gauge | 容器中文件系统的使用量(单位:字节) |
container_fs_limit_bytes | gauge | 容器可以使用的文件系统总量(单位:字节) |
container_fs_reads_bytes_total | counter | 容器累积读取数据的总量(单位:字节) |
container_fs_writes_bytes_total | counter | 容器累积写入数据的总量(单位:字节) |
container_memory_max_usage_bytes | gauge | 容器的最大内存使用量(单位:字节) |
container_memory_usage_bytes | gauge | 容器当前的内存使用量(单位:字节 |
container_spec_memory_limit_bytes | gauge | 容器的内存使用量限制 |
machine_memory_bytes | gauge | 当前主机的内存总量 |
container_network_receive_bytes_total | counter | 容器网络累积接收数据总量(单位:字节) |
container_network_transmit_bytes_total | counter | 容器网络累积传输数据总量(单位:字节) |
Prometheus部署
1、创建prometheus
存储数据外挂目录,避免容器重启丢失:
mkdir -p /disk/docker-monitor/prometheus/datachmod 777 /disk/docker-monitor/prometheus/data
2、prometheus配置文件外挂出来,方便修改,vi /disk/docker-monitor/prometheus/prometheus.yml
:
global: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093rule_files: - rule/record/*.ymlscrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "cadvisor" static_configs: - targets: ["124.222.45.207:8080"]
❝job_name: "prometheus"配置抓取Prometheus自身相关指标;job_name: "cadvisor"配置抓取之前配置的cAdvisor组件指标。❞
3、Docker
部署Prometheus
:
docker run -d -p 9090:9090 --name prometheus \ -v /disk/docker-monitor/prometheus/conf:/opt/bitnami/prometheus/conf \ -v /disk/docker-monitor/prometheus/data:/opt/bitnami/prometheus/data \ bitnami/prometheus:2.42.0 \ --web.enable-lifecycle --web.enable-admin-api\ --config.file=/opt/bitnami/prometheus/conf/prometheus.yml\ --storage.tsdb.path=/opt/bitnami/prometheus/data
❝--web.enable-lifecycle --web.enable-admin-api提供rest api接口方式管理prometheus,比如配置热加载:curl -XPOST http://localhost:9090/-/reload。注意:这里将prometheus配置文件和存储目录外挂出来,避免容器重启后数据丢失。❞
4、Prometheus
启动完成后,浏览器访问:
访问Status -> Targets
页面,发现配置的两个抓取Job
已经显示,并且State
是绿色UP
,则接入成功。
5、当能够正常采集到cAdvisor
的样本数据后,可以通过以下表达式计算容器的CPU使用率
:sum(irate(container_cpu_usage_seconds_total{image!=""}[1m])) without (cpu)
Grafana部署
1、部署Grafana
:
docker run -d --name=grafana -p 3000:3000 -v grafana:/var/lib/grafana grafana/grafana
❝/var/lib/grafana路径外挂出来,该目录存储Grafana插件、数据信息,避免Docker容器重启数据丢失。❞
2、访问:http://自己的IP:3000/login
,输入账号admin/admin
:
3、创建Prometheus
类型数据源,指向刚才搭建的Prometheus
:
4、导入Docker
容器监控面板,这里使用11277
:
5、监控面板就可以看到Docker
容器运行情况,如下图,当前运行中容器有4个,总占用内存319MB
,总CPU使用率
大概1.84%,并以曲线方式展示每个容器的CPU使用率
、内存使用率、网络IO和磁盘IO等。
-
【云原生 • Docker】cAdvisor+Prometheus+Grafana 10分钟搞定Docker容器监控平台cAdvisor(ContainerAdvisor)是Google开源的一个容器监控工具,可用于对容器资源的使用情况和性能进行监控。
-
中海油服自研技术取得新疆市场新突破_聚焦近日,中海油服自研高温高压电成像仪器(以下简称“ERMI-SLIM”)顺利完成新疆塔东地区作业,实现陆地高端
-
Consul 的安装和配置(二)Consul提供了HTTP和DNS接口,用于注册服务和查询服务信息。服务可以在启动时通过HTTP接口向Consul注册,也
-
python-异常处理和错误调试-异步IO程序的调试方法(一)|今日播报异步IO程序是一种高效的编程方式,但是由于其特殊的运行方式,调试起来也有其特殊的难点。
-
全球今头条!都乐黄金普雅榴莲中国首发上市!都乐助力菲律宾榴莲深耕中国市场!2023年4月20日,在首批海运都乐黄金普雅榴莲抵达中国之际,都乐在上海辉展市场正式举办都乐黄金普雅榴莲中
-
天天热文:集友股份(603429):集友股份关于续聘2023年度会计师事务所证券代码:603429证券简称:集友股份公告编号:2023-012安徽集友新材料股份有限公司关于续聘2023年度会计师事
-
《小缇娜的奇幻之地》D加密移除 发售至今已一年据SteamDB数据显示,在发售一年后,2K于昨日将《小缇娜的奇幻之地》的D加密移除。本作最初于2022年3月25日
-
环球热点评!特斯拉大跌近10%,市值一夜蒸发3835亿元!美东时间4月20日,特斯拉(TSLA)报162 99美元,大跌9 75%,最新市值5165 7亿美元。其市值一夜蒸发558亿美
-
甘肃省一季度各项存款增速创新高 居民储蓄意愿仍然较强甘肃省一季度各项存款增速创新高居民储蓄意愿仍然较强
-
2023上海车展:新款林肯冒险家发布 每日视点2023年上海车展上,新款林肯冒险家正式发布。作为中期改款车型,新车采用了更新的设计以及内饰细节。
-
当前热门:知否丨药吃得多,病就好得快?西部网讯春末夏初天气多变,流感等疾病高发。孩子一生病,家长就开始着急,恨不得找到“灵丹妙药”全部试一
-
AI+量子+生物空间有多大?莫德纳联手IBM探索制药升级新路径财联社4月21日讯(编辑赵昊)当地时间周四(4月20日),美国生物技术公司莫德纳在官网宣布,其与IBM公司达
-
扬杰科技:发行GDR并在瑞士证券交易所上市交易|全球观点App4月19日消息,扬杰科技早间公告,公司发行的全球存托凭证(简称“GDR”)于2023年4月18日(瑞士时间)在
-
告别“万元时代” 种植牙不再望“价”兴叹!_精选4月20日,种植牙降价的落地,是否意味着种植牙从此可以告别“万元时代”?
-
每日报道:湖南两家单位入围 2022 年度十大著作权人候选名单近日,中国版权保护中心根据《2022年度十大著作权人遴选发布活动方案》,经专家评审,遴选出2022年度十大著
-
vivo X Flip登场:航空级铝合金中框 3英寸超大外屏今晚,vivo正式举行折叠系列及平板旗舰新品发布会,除了vivoXFold2,还给大家带来旗下首款小折叠旗舰vivo
-
雨天行车勿贸然涉水 发动机一旦进水便存在安全隐患厦门网讯(海西晨报记者白若雪通讯员颜莉莹杨帆)近日,厦门出现暴雨天气,一些车辆被淹,好在车主已及时报
-
环球微头条丨宝马回应冰淇淋事件:是误会具体详细内容是什么宝马回应冰淇淋事件:是误会今天的热度非常高,现在也是在热搜榜上了,那么具体的宝马回应冰淇淋事件:是误
-
天天热讯:惠城环保2022扣非亏损 正拟定增2019上市2募资共6.6亿惠城环保2022扣非亏损正拟定增2019上市2募资共6 6亿
-
兴业基金任命叶文煌为董事长 官恒秋离任兴业基金任命叶文煌为董事长官恒秋离任
-
天天要闻:分期乐借款逾期13年不还会上征信吗网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后
-
中宠股份“失宠”?去年增收不增利,核心产品宠物零食毛利率下滑中宠股份“失宠”?去年增收不增利,核心产品宠物零食毛利率下滑,宠物,零食,总营收,中宠股份
-
烟台市消费者协会发布“五一”期间消费提示“五一”劳动节将至,旅游、购物、聚餐将迎来新高峰。为全面保障消费者权益,构建放心、安全、和谐的消费环
-
简讯:祝福!国乒名将领证结婚,曾打败张继科、许昕,拿过单打全国冠军此消息一出,立刻引来了广大网友和球迷的纷纷点赞,对两人送上了最诚挚的祝福。周雨出生于1992年,是中国乒
-
焦点精选!时间暂停学院二集_时间暂停学院动漫1、你好,我是兔兔秃90,用百度网盘分享给你。2、点开就可以保存,链接永久有效^_^链接:提取码:qdrs复制这
-
农管铲除农民蔬菜引来骂声一片,执法方式很重要,不能伤了百姓心_天天时讯农管铲除农民蔬菜引来骂声一片,执法方式很重要,不能伤了百姓心,农药,农管,蔬菜,百姓
-
新华时评:以“时时放心不下”的责任感抓好安全生产新华社北京4月20日电题:以“时时放心不下”的责任感抓好安全生产新华社记者刘夏村近期一些地方接连发生火
-
关于尊敬老师的古诗全首1、采得百花成蜜后,为谁辛苦为谁甜。2、——唐朝罗隐《蜂》译文:蜜蜂啊,你采尽百花酿成了花蜜,到底为谁
-
每体:竞赛委员会驳回了埃尔切有关加维违规出场的投诉直播吧4月19日讯《每日体育报》消息,西班牙竞赛委员会已经驳回了埃尔切针对巴萨球员加维,在对阵他们的比
-
【时快讯】Y9000P怎么买 y9000p在哪买Y9000P可以联想京东自营旗舰店预约购买。联想拯救者Y9000P2022是联想于2022年2月28日发布的笔记本电脑,于2