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

Docker监控

Docker监控

随着线上服务的全面容器化,对Docker容器的监控就很重要。传统的监控系统是物理机的监控,在一个物理机跑多个容器的情况下 ,。 为了更好的监控容器运行情况 可以使用cAdvisor+Prometheus+Grafana组合进行Docker监控,或者采用cAdvisor+InfluxDB+Grafana组合进行Docker监控。

cAdvisor+Prometheus+Grafana

其中cAdvisor是专门用来采集数据的工具,也是google公司的开源产品

Prometheus是数据源,用来存储cAdvisor获取到的数据

Grafana用来作为前端展示,它支持多种数据源

部署cAdvisor
[root@docker ~]# docker pull google/cadvisor
[root@docker ~]# docker run -itd --name=cadvisor -v /:/rootfs:ro -v /var/run:/var/run:ro -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro -v /dev/disk/:/dev/disk:ro -p 8080:8080 --detach=true --privileged --device=/dev/kms
g google/cadvisor 

通过访问8080端口查看

在这里插入图片描述

查看docker界面

在这里插入图片描述

由于cAdvisor提供的操作界面略显简陋,而且需要在不同页面之间跳转,并且只能监控一个Docker host,实用性缺陷不足。但cAdvisor可以将监控到的数据导出给第三方工具,由这些工具进一步加工处理。

我们可以把cAdvisor定位为一个监控数据收集器,收集和导出数据是它的强项,而非展示数据。

Prometheus

我们通常将Prometheus称为现代监控系统的基石。它是一款开源的系统监控和警报工具包,最初由SoundCloud开发,现在已成为CNCF(云原生计算基金会)的毕业项目。Prometheus的主要特点是多维数据模型、灵活的查询语言、高效的时间序列数据库以及易于集成的客户端库。

以下是Prometheus的核心组件和特点:

  1. 多维数据模型:Prometheus使用键值对来标识时间序列数据,通过指标名称和多个标签(labels)来唯一确定一个时间序列。这种模型使得数据可以灵活地聚合和切片。
  2. PromQL查询语言:Prometheus提供了一种功能强大的查询语言PromQL,允许用户实时选择和聚合时间序列数据。
  3. 拉取模型:Prometheus主要通过HTTP协议从配置的目标中拉取指标。同时也支持推送时间序列数据通过中间网关(Pushgateway)的方式。
  4. 时间序列数据库:Prometheus自带一个高效的时序数据库,用于存储采集到的数据。同时支持本地存储和远程存储。
  5. 服务发现:Prometheus支持多种服务发现机制,可以自动发现要监控的目标,如Kubernetes、Consul等。
  6. 告警功能:Prometheus包含一个告警管理器(Alertmanager),可以处理来自Prometheus服务器的告警,并进行去重、分组、路由以及通过多种方式(如Email、PagerDuty等)发送告警。
  7. 可视化:Prometheus提供了一个基本的Web UI,但通常与Grafana结合使用,以创建丰富的仪表盘。
  8. 易于集成:有许多客户端库和导出器(exporters)可以轻松地将应用程序和服务的指标暴露给Prometheus。

Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker

我们通常将提供被监控组件信息的HTTP接口称为Exporter。Exporter作为Prometheus监控体系中的重要组成部分,负责从目标组件收集数据,并将其转换为Prometheus可识别的格式。

目前,互联网公司常用的多种组件均有社区维护的Exporter可供直接使用,例如:

  • Varnish:可通过 varnish_exporter 获取监控指标
  • Haproxy:可通过 haproxy_exporter 获取监控指标
  • Nginx:可通过 nginx_exporter 获取监控指标(注意:Nginx需要开启状态页或使用第三方模块)
  • MySQL:可通过 mysqld_exporter 获取监控指标
  • Linux系统:可通过 node_exporter 获取系统信息,包括磁盘、内存、CPU、网络等

此外,几乎所有的常见组件都可以在Prometheus的官方GitHub仓库(https://github.com/prometheus)或社区中找到对应的Exporter

部署prometheus

先编写prometheus的配置文件,将cadvisor的数据源添加进来,然后做时钟同步

[root@docker ~]# mkdir -p /etc/prometheus
[root@docker ~]# vim /etc/prometheus/prometheus.ymlglobal:scrape_interval: 15sevaluation_interval: 15salerting:alertmanagers:- static_configs:- targets:rule_files:scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['192.168.100.10:9092']- job_name: 'cadvisor'static_configs:- targets: ['192.168.100.10:8080']
[root@docker ~]# chmod 777 /etc/prometheus/prometheus.yml
[root@docker ~]# systemctl restart chronyd
[root@docker ~]# systemctl enable chronyd
[root@docker ~]# hwclock -w

将编辑好的文件映射到容器中,启动时加上–web.enable-lifecycle的作用是启用远程热加载配置文件,在修改prometheus配置文件后不用重启容器即可生效

[root@docker ~]# docker pull prom/prometheus
[root@docker ~]# docker run -itd --name=prometheus -p 9092:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml --web.enable-lifecycle

访问9092/targets端口查看

在这里插入图片描述

Grafana

Grafana 是一款开源的数据可视化和监控分析平台,它可以将各种数据源中的指标数据转化为直观的图表和仪表盘,帮助用户实时监控系统状态和分析历史趋势。

部署grafana

[root@docker ~]# docker pull grafana/grafana
[root@docker ~]# docker run -itd --name=grafana -p 3000:3000 grafana/grafana

访问3030,账号和密码默认为admin

在这里插入图片描述

在这里插入图片描述

创建源数据

在这里插入图片描述

在这里插入图片描述

选择prometheus

在这里插入图片描述

修改

然后提交

添加仪表盘

在这里插入图片描述

在这里插入图片描述

输入193然后load加载

在这里插入图片描述

选择prometheus

然后点击import

在这里插入图片描述

然后就可以查看到docker的监控页面了,我们还可以去grafana官网查看id来更改模板

http://www.dtcms.com/a/479860.html

相关文章:

  • 建设部网站官网证书编号网站主体负责人
  • PEV2:一款PostgreSQL执行计划可视化工具
  • 网站做搜索要用数据库吗雄安网站建设多少钱
  • 做网站现在好弄么公司网站需求文档
  • wordpress网站程序济南市做网站的公司
  • 电影网站开发长沙求职网招聘网
  • 讲解线程池excute方法细节
  • 的萨芬他的回归
  • 网站信任 用户转化南京网站建设公司 w
  • 长宁区网站制作wordpress无法上传mp3
  • 动态规划核心模型精讲(上篇):斐波那契模型、路径问题与多状态DP
  • 自己做签名网站jsp网站建设毕业设计
  • Franka Research3 使用问题记录
  • 做电影网站需要用什么空间华为网络工程师认证培训
  • 响应式网站好吗建网站有什么要求
  • 如何利用VLLM方式本地部署DeepSeek大模型
  • 重庆网站建设最大建设银行泰安分行网站
  • 广州网站建设找新际流量卡网站
  • e4a做网站wordpress不能编辑
  • 【微实验】激光测径系列(五)软件上的思考与尝试
  • 记力扣2009:使数组连续的最少操作数 练习理解
  • 怎样健建设一个有利于优化的网站wordpress 萌化主题
  • 网站建设gong广东省建设监理协会网站 - 首页
  • 网页制作与网站建设填空题青岛vps网站
  • 微信公众号对接网站公司网站备案需要什么材料
  • 网站备案核验号网站建设中数据字典
  • 运动网站建设主题兰州学校网站建设
  • 从SEO到GEO:顺应AI搜索优化趋势
  • word超链接网站怎样做家具在线设计平台
  • 【java】mysql