构建Docker容器监控系统(2)(Cadvisor +Prometheus+Grafana)

news/2025/1/9 12:09:14/

Cadvisor产品简介

Cadvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行Cadvisor用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。

接着上一篇来继续

部署Cadvisor

被监控主机上部署Cadvisor容器

清空原来的

[root@agent ~]# docker rm -f $(docker ps -aq)

c78b7f80fd41

a76c56a3155b

14c0398f35a2

a0010d5c535f

[root@agent ~]#  docker run -d \

> --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 \

> google/cadvisor:latest

fbd537636358169b4bcbce652b94211b06c4c7aee41362ceeb456004510b7e82

访问cAdvisor页面

访问http://192.168.50.50:8080 cAdvisor页面可以看到收集到的数据

 

 

Prometheus产品简介

Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包。自2012年成立以来,很多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。 它现在是一个独立的开源项目,可以独立于任何公司进行维护。 为了强调这一点,并阐明项目的治理结构,Prometheus于2016年加入Cloud Native Computing Foundation(云原生基金会),作为继Kubernetes之后的第二个托管项目。

Prometheus的主要特征有:

  1. 多维度数据模型-由指标键值对标识的时间序列数据组成
  2. PromQL,一种灵活的查询语言
  3. 不依赖分布式存储; 单个服务器节点是自治的
  4. 以HTTP方式,通过pull模型拉取时间序列数据
  5. 支持通过中间网关推送时间序列数据
  6. 通过服务发现或者静态配置,来发现目标服务对象
  7. 支持多种多样的图表和界面展示

部署Prometheus 

[root@agent ~]# docker pull prom/prometheus

Using default tag: latest

*latest: Pulling from prom/prometheus

3cb635b06aa2: Pull complete

34f699df6fe0: Pull complete

33d6c9635e0f: Pull complete

f2af7323bed8: Pull complete

c16675a6a294: Pull complete

827843f6afe6: Pull complete

3d272942eeaf: Pull complete

7e785cfa34da: Pull complete

05e324559e3b: Pull complete

170620261a59: Pull complete

ec35f5996032: Pull complete

5509173eb708: Pull complete

Digest: sha256:cb9817249c346d6cfadebe383ed3b3cd4c540f623db40c4ca00da2ada45259bb

Status: Downloaded newer image for prom/prometheus:latest

docker.io/prom/prometheus:latest

 配置prometheus.yml

一定注意格式很容易出错

[root@agent ~]# vim /tmp/prometheus.yml# my global configglobal:scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.#       # scrape_timeout is set to the global default (10s).# Alertmanager configurationalerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ['localhost:9090']- job_name: 'docker'      ##定义一个叫docker的组static_configs:- targets: ['192.168.50.50:8080']   ##填写一个或多个cadvisor的主机地址用逗号隔开

运行容器

[root@agent ~]# docker run -d \

> --name=prometheus  -p 9090:9090  \

> -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \

>  -v /etc/localtime:/etc/localtime \

> prom/prometheus

a8d8416ff184232a062a71fa4ee458c904b74f6f7b86313539708fe435bd4dd1

查看有没有启动

[root@agent ~]# docker ps -a

CONTAINER ID   IMAGE                    COMMAND                   CREATED         STATUS         PORTS                                       NAMES

a8d8416ff184   prom/prometheus          "/bin/prometheus --c…"   2 minutes ago   Up 2 seconds   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   prometheus

7c5c6cae02da   google/cadvisor:latest   "/usr/bin/cadvisor -…"   3 minutes ago   Up 3 minutes   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   cadvisor

 访问prometheus页面

http://192.168.50.50:9090

 看到docker组状态up为正常

 

 查询都可以查

 

 部署Granfana

[root@agent ~]# docker run -d \
> --name=grafana \
>  -p 3000:3000 \
> grafana/grafana
91f8dea9a3970f374e521eeb9203fab24e9ef766b8f95bb0672ea1706daa2e7d
[root@agent ~]# docker run --name=nginx -d -p 80:80 nginx
accb1ec5c8c9f711ba8d023474746beb32c041929b934029d41248c7c81c64d8

访问http://192.168.50.50:3000默认账户admin 密码 admin首次登陆需要修改密码

 

 配置数据源

 

 

 

导入模板

 

 选择对应的数据源,点击导入,就可以看到被监控主机的数据

 准备测试容器

[root@agent ~]# docker run --name=nginx -d -p 80:80 nginx
accb1ec5c8c9f711ba8d023474746beb32c041929b934029d41248c7c81c64d8

可以看到成功了

右上角保存

 

到此Cadvisor +Prometheus+Grafana基本架构部署完毕


http://www.ppmy.cn/news/1025695.html

相关文章

golang拥有wireshark数据包解析能力

golang拥有wireshark数据包解析能力 1. 功能和实现 wireshark拥有世界上最全面的协议解析能力并且还在不断更新中&#xff0c;通过调研&#xff0c;没有办法找到与wireshark同水平的解析工具。 为了使得golang语言可以拥有wireshark一样强大的协议解析能力&#xff0c;库 gowir…

Python 字符串格式化的方式有哪些?

当在 Python 中进行字符串格式化时&#xff0c;有三种常用的方式&#xff1a;百分号&#xff08;%&#xff09;、.format() 方法和 f-string。以下是每种方式的总结&#xff1a; 百分号&#xff08;%&#xff09;格式化&#xff1a; 使用 % 操作符在字符串中插入变量值。使用占…

MongoDB的下载和安装

一、MongoDB下载 下载地址&#xff1a;https://www.mongodb.com/try/download/community 二、安装 因为选择下载的是 .zip 文件&#xff0c;直接跳过安装&#xff0c;一步到位。 选择在任一磁盘创建空文件夹&#xff08;不要使用中文路径&#xff09;&#xff0c;解压之后把…

Spark(40):Streaming DataFrame 和 Streaming DataSet 中的触发器

目录 0. 相关文章链接 1. 触发器定义 2. 连续处理模式(Continuous processing) 0. 相关文章链接 Spark文章汇总 1. 触发器定义 流式查询的触发器定义了流式数据处理的时间, 流式查询根据触发器的不同, 可以是根据固定的批处理间隔进行微批处理查询, 也可以是连续的查询。…

Windows11 使用 VS2022 构建 Doom3-BFG 源码的失败记录

克隆原仓库 使用 VS2022 打开原仓库&#xff0c;首先将构建模式切换成 Release&#xff0c;为了构建游戏&#xff0c;我们不需要 Debug 模式 然后将所有项目在属性页把“警告视为错误”改为否&#xff0c;对照 https://github.com/AmbushedRaccoon/Doom3-BFG-Edition-VS-2019…

实时时钟+闹钟

在江科大实时时钟的基础上添加闹钟的配置&#xff0c;参考http://t.csdn.cn/YDlYy。 实现功能 &#xff1a;每隔time秒蜂鸣器响一次、设置闹钟的年月日时分秒&#xff0c;到时间蜂鸣器响。 前三个函数没有变&#xff0c;添加 void RTC_AlarmInit(void) 闹钟的中断配置void…

红帽8.5 ansible 安装和部署 |(简单版)

安装 配置yum仓库&#xff1a; vim /etc/yun.repo.d/aliyun.repo [AppStream] nameApp baseurlhttps://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os gpgcheck0[BaseOS] namebase baseurlhttps://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os gpgcheck…

LayUi介绍前言

目录 1.什么是layui 2.layui、easyui与bootstrap的对比 有趣的对比方式&#xff0c;嘿嘿嘿.... easyuijqueryhtml4&#xff08;用来做后台的管理界面&#xff09; 半老徐娘 bootstrapjqueryhtml5 美女 拜金 layui 清纯少女 2.1 layui和bootstrap对比&#xff08;这两个都属…