cAdvisor+Prometheus+Grafana 搞定Docker容器监控平台

cAdvisor+Prometheus+Grafana

  • cAdvisor+Prometheus+Grafana 搞定Docker容器监控平台
    • 1、先给虚拟机上传cadvisor
    • 2、What is Prometheus?
      • 2.1、架构图
    • 3、利用docker安装普罗米修斯
    • 4、安装grafana

cAdvisor+Prometheus+Grafana 搞定Docker容器监控平台

1、先给虚拟机上传cadvisor

cAdvisor(Container Advisor)Google 开源的一个容器监控工具,可用于对容器资源的使用情况和性能进行监控。用于收集、聚合、处理和导出正在运行容器的有关信息。具体来说,该组件对每个容器都会记录其资源隔离参数、历史资源使用情况、完整历史资源使用情况的直方图和网络统计信息。``cAdvisor 本身就对 Docker` 容器支持,并且还对其它类型的容器尽可能的提供支持,力求兼容与适配所有类型的容器。

[root@docker-1 ~]# mkdir /mointor
[root@docker-1 ~]# cd /mointor/
[root@docker-1 mointor]# ls
cadvisor.tar
[root@docker-1 mointor]# 
[root@docker-1 mointor]# docker load -i cadvisor.tar 
ace0eda3e3be: Loading layer  5.843MB/5.843MB
33bb68b99ee4: Loading layer  102.4MB/102.4MB
d3174d703c76: Loading layer  13.25MB/13.25MB
8b7599e512b6: Loading layer  44.19MB/44.19MB
Loaded image: gcr.io/cadvisor/cadvisor:latest
[root@docker-1 mointor]# 
[root@docker-1 mointor]# docker images|grep cadvisor
gcr.io/cadvisor/cadvisor        latest         68c29634fe49   3 years ago    163MB
google/cadvisor                 latest         eb1210707573   5 years ago    69.6MB
[root@docker-1 mointor]# 

2、What is Prometheus?

Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud.
Prometheus joined the Cloud Native Computing Foundation in 2016 as the second hosted project, after Kubernetes.

Prometheus是一个开源系统监控和警报工具包,最初由SoundCloud构建。
Prometheus于2016年加入云原生计算基金会,成为继Kubernetes之后的第二个托管项目。

Cloud Native Computing Foundation --》云原生计算基金会: Prometheus、``kubernetsETCD`

2.1、架构图

image-20240302162553611

普罗米修斯的核心组件

Prometheus server主程序

组件:

  • ``TSDB--->time series database 时序数据库 --》hdd/ssd hdd机械磁盘 hard disk drive ssd 固态磁盘 -->solid state drive`

    • promQL: select ,insert等 promQL是普罗米修斯内部的sql
  • http server web服务

    • Retrieval 是拉取数据的组件:每间隔15s去拉一次数据
  • pushgateway 中间件(代理)—–》临时存放数据的软件

  • alertmanager 告警的软件

  • exporter 收集数据,采集数据 木马程序 : 安装到被监控的机器上 类似于agent代理

采集数据:exporter pushgateway 中间件(代理)
存储数据:tsdb
提供数据:http server
显示数据: grafana
告警、报警:alertmanager

获取数据的方式:
1.pull server --》pull —》client 主动的获取数据,避免大并发
2.push client —>push—》server client 主动送数据过来,数据会非常新,会出现大量的数据同时push过来

3、利用docker安装普罗米修斯

1、编写prometheus.yml文件

[root@docker-1 mointor]# vim prometheus.yml
scrape_configs:
- job_name: cadvisorscrape_interval: 5sstatic_configs:- targets:- cadvisor:8080
[root@docker-1 mointor]# 

2、编写dockerfile文件

'先确定8080和9090,6379端口是否被占用'
[root@docker-1 ~]# lsof -i :9090
[root@docker-1 ~]# lsof -i :8080
[root@docker-1 ~]# lsof -i :6379
[root@docker-1 mointor]# vim docker-compose.yml
version: '3.2'
services:prometheus:image: prom/prometheus:latestcontainer_name: prometheusports:- 9090:9090command:- --config.file=/etc/prometheus/prometheus.ymlvolumes:- ./prometheus.yml:/etc/prometheus/prometheus.yml:rodepends_on:- cadvisorcadvisor:image: gcr.io/cadvisor/cadvisor:latestcontainer_name: cadvisorports:- 8080:8080volumes:- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:rodepends_on:- redisredis:image: redis:latestcontainer_name: redisports:- 6379:6379
[root@docker-1 mointor]# 

3、启动monitor

[root@docker-1 mointor]# docker compose up -d
[+] Running 3/3✔ Container promredis   Started                                           0.9s ✔ Container cadvisor    Started                                           1.5s ✔ Container prometheus  Started                                           1.7s 
[root@docker-1 mointor]# 

4、可以去访问8080和9090端口了

image-20240302164553027

image-20240302165316640

4、安装grafana

利用容器启动grafana

[root@docker-1 mointor]# docker run -d --name=grafana -p 3000:3000 grafana/grafana
Unable to find image 'grafana/grafana:latest' locally
latest: Pulling from grafana/grafana
97518928ae5f: Pull complete 
5b58818b7f48: Pull complete 
d9a64d9fd162: Pull complete 
4e368e1b924c: Pull complete 
867f7fdd92d9: Pull complete 
387c55415012: Pull complete 
07f94c8f51cd: Pull complete 
ce8cf00ff6aa: Pull complete 
e44858b5f948: Pull complete 
4000fdbdd2a3: Pull complete 
Digest: sha256:18d94ae734accd66bccf22daed7bdb20c6b99aa0f2c687eea3ce4275fe275062
Status: Downloaded newer image for grafana/grafana:latest
0ae83fc8b36d15bc54a757479748ab34c71b620826a887dcb22b2e42275b732a
[root@docker-1 mointor]# 

image-20240302170049296

账号:admin

密码:admin

更新密码:123456

  • 在grafana里添加数据源是Prometheus的数据库
  • 使用模板: 13946 模板编号

image-20240302170915268

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Revit-二开之东西南北立面FilledRegion的CurveLoop计算-(4)

东西南北FilledRegion的CurveLoop计算 上一篇以东立面视图为例创建FilledRegion,接下来我们将立面视图创建FilledRegion的CurveLoop汇总一下。 上图是对四个立面坐标系间的绘制方便我们计算FilledRegion的CurveLoop。 东立面CurveLoop计算 private CurveLoop GetEastCurveL…

[计算机网络]--五种IO模型和select

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、五种IO…

【BUUCTF web】通关 2.0

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 …

Linux篇: 进程控制

一、进程创建 1.1 fork函数初识 在Linux中,fork函数是非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。 返回值: 在子进程中返回0,父进程中返回子进程的PID,子进程创…

Vue3快速上手(十六)Vue3路由传参大全

Vue3路由传参 一、传参的多种方式 1.1 拼接方式 这种方式适合传递单个参数的情况&#xff0c;比如点击查看详情&#xff0c;传个id这样的场景 传参&#xff1a; <RouterLink to"/person?id1" active-class"active">person</RouterLink> …

Linux高负载排查最佳实践

在Linux系统中&#xff0c;经常会因为负载过高导致各种性能问题。那么如何进行排查&#xff0c;其实是有迹可循&#xff0c;而且模式固定。 本次就来分享一下&#xff0c;CPU占用过高、磁盘IO占用过高的排查方法。 还是那句话&#xff0c;以最佳实践入手&#xff0c;真传一句话…

如何使用naive 做一个模态框的方式

1.我的问题使用了一个table 表格&#xff0c;在表格中设置俩个按钮 最后做出来的效果 <template><div><h1>测试文件</h1><!-- 表格 --><n-data-table :columns"columns" :data"data" :pagination"pagination" …

数独游戏(dfs)

代码注释如下 #include <iostream> using namespace std; const int N 10; bool col[N][N], rol[N][N], cell[3][3][N]; char g[N][N]; bool dfs(int x, int y) { //用bool这样在找到一个方案就可以迅速退出if(y 9) x, y 0; //若y超出边界&#xff0c;则第二…

蓝桥杯-单片机组基础5——外部中断与LED的控制(附小蜜蜂课程代码)

蓝桥杯单片机组备赛指南请查看这篇文章&#xff1a;戳此跳转蓝桥杯备赛指南文章 本文章针对蓝桥杯-单片机组比赛开发板所写&#xff0c;代码可直接在比赛开发板上使用。 型号&#xff1a;国信天长4T开发板&#xff08;绿板&#xff09;&#xff0c;芯片&#xff1a;IAP15F2K6…

KubeSphere平台安装系列之二【Linux单节点部署KubeSphere】(2/3)

**《KubeSphere平台安装系列》** 【Kubernetes上安装KubeSphere&#xff08;亲测–实操完整版&#xff09;】&#xff08;1/3&#xff09; 【Linux单节点部署KubeSphere】&#xff08;2/3&#xff09; 【Linux多节点部署KubeSphere】&#xff08;3/3&#xff09; **《KubeS…

linux系统Jenkins工具配置webhook自动部署

Jenkins工具webhook自动部署 webhook自动部署webhook的意义操作流程jenkins页面操作gitlab页面操作 webhook自动部署 webhook的意义 自动化部署&#xff1a;Webhook 可以在代码提交、合并请求或其他特定事件发生时自动触发 Jenkins 构建和部署任务&#xff0c;从而实现自动化…