当前位置: 首页 > news >正文

cAdvisor+prometheus+grafana搭建监控页面并嵌入自定义页面中

三者关系

一般公司会有很多docker主机,那么就需要对docker进行监控了,docker监控可以采用docker stats配合shell命令来取值做监控,但是无法传递给prometheus进行采集,zabbix监控docker又比较麻烦,因此就有了谷歌的cadvisor

cadvisor不仅可以搜集一台机器上的所有运行的容器信息,还提供基础查询界面的http接口,方便prometheus进行数据抓取

cadvisor可以对节点机器上的资源及容器进行实时监控和性能数据采集,包括CPU使用情况、内存使用情况、网络吞吐量及文件系统使用情况,但是cadvisor有个缺陷,只能实时展现当前的监控数据,对于历时数据不做保留,因此需要使cadvisor接入prometheus,由prometheus内置的tsdb数据库进行存储历时数据。

总结:cadvisor采集容器运行信息,将数据传递给promitheus存储,grafana配置数据源为Prometheus进行页面展示。

环境搭建

cadvisor容器化部署:

本例中将容器端口8080暴漏到宿主机9101上,使用浏览器访问 http://自己IP地址:9101访问到cAdvisor组件Web UI。

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 --volume=/cgroup:/cgroup:ro --privileged=true  --publish=9101:8080 --detach=true   --name=cadvisor google/cadvisor

Prometheus容器化部署:

使用启动容器之前先创建挂载目录并赋值操作权限,prometheus.yml中添加cadvisor地址。

mkdir -p /disk/docker-monitor/prometheus/  #挂载文件时使用chmod 777 /disk/docker-monitor/prometheus/docker run -d --name=prometheus -p 9090:9090 -v /disk/docker- monitor/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  prom/prometheus

 部署完成后,使用浏览器访问 http://自己IP地址:9090。点击Status ->Targets页面,发现配置的抓取Job已经显示,并且state是绿色WP,则接入成功。

grafana容器化部署 

使用启动容器之前先创建挂载目录并赋值操作权限,defaults.ini为grafana的配置文件。

mkdir -p /etc/grafana/  #挂载文件时使用mkdir -p  /etc/grafana/docker run -d --name=grafana -p 3000:3000 -v /etc/grafana/:/usr/share/grafana/conf/  grafana/grafana

部署完成,访问:http://自己的IP:3000/login,输入账号admin/admin:


创建Prometheus类型数据源,指向刚才搭建的Prometheus:


导入Docker容器监控面板,这里使用14282,也可以自定义模板。

 grafana页面嵌入和反向代理访问

nginx配置,首先确保nginx容器和grafana容器在同一网络中。

location /grafana {proxy_pass http://grafana:3000/grafana;proxy_send_timeout 300;proxy_read_timeout 300;proxy_connect_timeout 300;add_header Content-Security-Policy upgrade-insecure-requests;}

defaults.ini配置:

其中root_url路径就是访问监控面板的路径。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 一文掌握直播技术:实时音视频采集、编码、传输与播放
  • 开源AI智能名片商城小程序在私域流量运营中的转化效率与ROI提升研究
  • Ubuntu最小化命令行系统 安装GUI 远程桌面
  • LabVIEW多协议智能流水线控制与监控系统
  • TcpSocket在切后台后如何保活
  • k8s查看容器的日志
  • C#编程中,如何实现一个高效的数据排序算法?
  • redis基本工具类编写
  • GNU/Linux - systemd介绍
  • 实用篇| 如何快速搭建“二手系统”的数据库
  • mac编译opencv 通用架构库的记录
  • Therabody™明星产品TheragunⓇ筋膜枪,以科技健康助力舞台高光时刻
  • JVM上篇:内存与垃圾-回收篇05-本地方法接口和本地方法栈
  • 使用MicroApp重构旧项目
  • Java中Map、List、Set操作
  • [译] 怎样写一个基础的编译器
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • CSS居中完全指南——构建CSS居中决策树
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • React as a UI Runtime(五、列表)
  • Redux 中间件分析
  • spring boot下thymeleaf全局静态变量配置
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 算法-图和图算法
  • 网络应用优化——时延与带宽
  • 我的业余项目总结
  • 学习使用ExpressJS 4.0中的新Router
  • 译米田引理
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​iOS实时查看App运行日志
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • ‌移动管家手机智能控制汽车系统
  • # centos7下FFmpeg环境部署记录
  • #if等命令的学习
  • $(function(){})与(function($){....})(jQuery)的区别
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (2)STM32单片机上位机
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (PADS学习)第二章:原理图绘制 第一部分
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (转)shell调试方法
  • .bat批处理出现中文乱码的情况
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net dataexcel winform控件 更新 日志
  • .Net Web项目创建比较不错的参考文章
  • .NET 读取 JSON格式的数据
  • .net 提取注释生成API文档 帮助文档