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

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 config

global:

  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 configuration

alerting:

  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基本架构部署完毕

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

比较研发项目管理系统:哪个更适合您的需求?

项目管理系统对于保持项目进度、提高效率和确保质量至关重要。然而&#xff0c;市场上众多的研发项目管理系统让许多团队陷入选择困难。本文将对几个主流的研发项目管理系统进行深入分析&#xff0c;以帮助您找到最适合您团队的解决方案。 “哪个研发项目管理系统好用好&#x…

在时间和频率域中准确地测量太阳黑子活动及使用信号处理工具箱(TM)生成广泛的波形,如正弦波、方波等研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

vue3获得url上的参数值

1、引入 import { useRoute } from vue-router2、获得const route useRoute() console.log(route.query.number)

程序员必备技能-九大分布式ID生成策略

九大分布式ID生成策略 1.UUID UUID (Universally Unique Identifier)&#xff0c;通用唯一识别码。UUID是基于当前时间、计数器&#xff08;counter&#xff09;和硬件标识&#xff08;通常为无线网卡的MAC地址&#xff09;等数据计算生成的。 UUID由以下几部分的组合&#x…

《Python入门到精通》os模块详解,Python os标准库

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 os模块详解 1、文件目录操作os.stat() 获取文件状态os.utime() 修改文件时间os.r…

vuejs 设计与实现 - 简单diff算法

DOM 复用与key的作用&#xff1a; DOM 复用什么时候可复用&#xff1f; key 属性就像虚拟节点的“身份证”号&#xff0c;只要两个虚拟节点的 type属性值和 key 属性值都相同&#xff0c;那么我们就认为它们是相同的&#xff0c;即可以进行 DOM 的复用。即 我们通过【移动】来…

无需公网-用zerotier异地组网

无需公网-用zerotier异地组网 在前面的文章中我们讲到利用frp进行内网穿透&#xff0c;但是他的局限在于你需要一台公网服务器。并且对公网服务器的带宽有一定的要求。因此这里我们推荐一款异地组网工具搭建属于自己的虚拟网络&#xff0c;经过授权连接成功之后彼此都在同一网…

Oracle单实例升级补丁

目录 1.当前DB环境2.下载补丁包和opatch的升级包3.检查OPatch的版本4.检查补丁是否冲突5.关闭数据库实例&#xff0c;关闭监听6.应用patch7.加载变化的SQL到数据库8.ORACLE升级补丁查询 oracle19.3升级补丁到19.18 1.当前DB环境 [oraclelocalhost ~]$ cat /etc/redhat-releas…

\vendor\github.com\godror\orahlp.go:531:19: undefined: VersionInfo

…\goAdmin\vendor\github.com\godror\orahlp.go:531:19: undefined: VersionInfo 解决办法 降了go版本(go1.18)&#xff0c;之前是go1.19 gorm版本不能用最新的&#xff0c;降至&#xff08;gorm.io/gorm v1.21.16&#xff09;就可以 修改交插编译参数 go env -w CGO_ENABLED1…

# ⛳ Docker 安装、配置和详细使用教程-Win10专业版

目录 ⛳ Docker 安装、配置和详细使用教程-Win10专业版&#x1f69c; 一、win10 系统配置&#x1f3a8; 二、Docker下载和安装&#x1f3ed; 三、Docker配置&#x1f389; 四、Docker入门使用 ⛳ Docker 安装、配置和详细使用教程-Win10专业版 &#x1f69c; 一、win10 系统配…

区块链实验室(15) - 编译FISCO BCOS的过程监测

首次编译开源项目&#xff0c;一般需要下载很多依赖包&#xff0c;尤其是从github、sourceforge等下载依赖包时&#xff0c;速度很慢&#xff0c;编译进度似乎没有一点反应&#xff0c;似乎陷入死循环&#xff0c;似乎陷入一个没有结果的等待。本文提供一种监测方法&#xff0c…

redis的事务和watch机制

这里写目录标题 第一章、redis事务和watch机制1.1&#xff09;redis事务&#xff0c;事务的三大命令语法&#xff1a;开启事务 multi语法&#xff1a;执行事务 exec语法&#xff1a;取消事务 discard 1.2&#xff09;redis事务的错误和回滚的情况1.3&#xff09;watch机制语法&…

【Linux】为.sh脚本制作桌面快捷方式(.desktop,可双击执行),且替换显示图标(图文详情)

目录 0.背景环境 1、原理 2、详细步骤 1&#xff09;创建.desktop快捷方式 2&#xff09; 给test.desktop快捷方式增加可执行权限 3&#xff09;编辑test.desktop内容和参数 4&#xff09;修改快捷方式属性为双击可执行 5&#xff09;将桌面快捷方式发送到桌面 0.背景环…

2023全新UI好看的社区源码下载/反编译版

2023全新UI好看的社区源码下载/反编译版 这次分享一个RuleAPP二开美化版&#xff08;尊重每个作者版权&#xff09;&#xff0c;无加密可反编译版本放压缩包了&#xff0c;自己弄吧&#xff01;&#xff01;&#xff01; RuleAPP本身就是一款免费开源强大的社区&#xff0c;基…

交替方向乘子

目录 一&#xff0c;交替方向乘子ADMM 1&#xff0c;带线性约束的分离优化模型 2&#xff0c;常见优化模型转带线性约束的分离优化模型 3&#xff0c;带线性约束的分离优化模型求解 4&#xff0c;交替方向乘子ADMM 本文部分内容来自教材 一&#xff0c;交替方向乘子ADMM …

Linux计划任务管理at、crond

一、单次任务at at命令可以设置在一个指定的时间执行一个指定任务&#xff0c;只能执行一次&#xff0c;使用前确认系统开启了atd服务。 例如&#xff1a;定时执行某命令或脚本&#xff0c; 1、输入at 19:00&#xff0c;回车&#xff1b; 2、输入需要执行的命令或脚本文件&am…

如何给Google Chrome增加proxy

1. 先打开https://github.com/KaranGauswami/socks-to-http-proxy/releases 我的电脑是Liunx系统所以下载第一个 2. 下载完之后把这个文件变成可执行文件&#xff0c;可以是用这个命令 chmod x 文件名 3. 然后执行这个命令&#xff1a; ./sthp-linux -p 8080 -s 127.0.0.1:…

c#设计模式-创建型模式 之 工厂模式

前言&#xff1a; 工厂模式&#xff08;Factory Pattern&#xff09;是一种常用的对象创建型设计模式。该模式的主要思想是提供一个创建对象的接口&#xff08;也可以是抽象类、静态方法等&#xff09;&#xff0c;将实际创建对象的工作推迟到子类中进行。这样一来&#xff0c…

APT80DQ40BG-ASEMI快恢复二极管APT80DQ40BG

编辑&#xff1a;ll APT80DQ40BG-ASEMI快恢复二极管APT80DQ40BG 型号&#xff1a;APT60DQ20BG 品牌&#xff1a;ASEMI 封装&#xff1a;TO-3P 恢复时间&#xff1a;≤50ns 正向电流&#xff1a;80A 反向耐压&#xff1a;400V 芯片个数&#xff1a;双芯片 引脚数量&…

SpringBoot之Actuator基本使用

SpringBoot之Actuator基本使用 引入分类常用接口含义healthbeansconditionsheapdumpmappingsthreaddumploggersmetrics 引入 <!-- actuator start--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…