容器监控方案

news2025/4/17 21:52:57
1、docker部署prometheus

Prometheus是一套开源的系统监控报警框架,它基于时序数据库,并通过HTTP协议周期性地从被监控的组件中抓取指标数据。以下是一些关于Prometheus的详细介绍:

  1. 基本概念:Prometheus所有采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库(TSDB)中,这些指标属于同一指标名称和同一标签集合,并具有时间戳标记。除了存储的时间序列,Prometheus还可以根据查询请求产生临时的、衍生的时间序列作为返回结果。

  2. 主要特点:

  • 多维数据模型:Prometheus使用时间序列数据模型,可以对多种维度的数据进行监控和分析。

  • 灵活的查询语言:Prometheus提供PromQL查询语言,可以方便地对监控数据进行灵活的查询和分析。

  • 高效的数据存储:Prometheus使用本地存储方式,可以高效地存储监控数据,并且支持数据压缩和数据刷写等功能。

  • 强大的告警系统:Prometheus内置了强大的告警系统,可以根据监控数据设置告警规则,并及时地发送告警通知。

  • 易管理性:Prometheus的核心部分由一个单独的二进制文件构成,这使得它容易部署和管理。它可以在本地运行,不依赖于分布式存储系统。

  • 高效性:Prometheus设计上能够处理大量的监控指标,即使是单个Prometheus实例也能够每秒处理数百万的数据点。

  • 灵活性:Prometheus支持通过配置文件定义监控目标,用户可以根据自己的需求灵活配置监控项。

  • 社区支持:作为一个开源项目,Prometheus拥有一个活跃的社区,不断有新的功能和改进被贡献出来。

  1. 组成和架构:

  • Prometheus Server:主要负责数据采集和存储,提供PromQL查询语言支持。

  • Push Gateway:支持临时性job主动推送指标的中间网关。

  1. 应用领域:

  • 监控和警报:Prometheus被广泛应用于监控和警报系统中,可以实时收集、存储和查询监控指标,并生成警报以便及时处理问题。

  • 分布式系统的性能监控:Prometheus可以用于监控分布式系统的性能,例如Kubernetes集群、Docker容器等。

  • 自动化运维:通过Prometheus的自动化功能,可以实现一些运维任务的自动化,比如自动扩容、自动负载均衡等。

  • 数据分析:Prometheus可以用于收集和分析大量的监控数据,帮助用户更好地理解系统的性能和行为。

  • 物联网监控:Prometheus也可以被应用于物联网设备的监控,帮助用户监控和管理大量的设备数据。

  • 日志分析:Prometheus可以和日志系统结合使用,实现对日志数据的实时监控和分析。

  • 安全监控:Prometheus可以帮助用户监控系统的安全性,检测潜在的安全威胁并及时采取措施。

总之,Prometheus是一个功能强大、灵活易用的系统监控报警框架,在云原生和微服务架构中得到了广泛的应用。

环境

redhat 9.2

步骤
安装docker
[root@master1 ~]# yum -y install  yum-utils.noarch
[root@master1 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master1 ~]#yum clean  all && yum makecache
[root@master1 ~]#yum -y install  docker-ce*
#镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://7f40piyw.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
[root@master1 ~]# systemctl  restart  docker.service 
[root@master1 ~]# systemctl  enable docker.service 
[root@master1 ~]# 

Prometheus部署

[root@master1 ~]#  docker pull prom/prometheus
#创建一个工作目录
[root@master1 ~]# mkdir /prom  
#创建一个容器将prometheus配置文件拷贝出来
[root@master1 ~]# docker run -id --name prom prom/prometheus:latest 
04610c29ef4f2399d03bc7f7ee192d7ff0d6b63a3eafdad8a4dd4e33ef839516
[root@master1 ~]# 
[root@master1 ~]# docker cp prom:/etc/prometheus/prometheus.yml /prom/ 
Successfully copied 2.56kB to /prom/
[root@master1 ~]# ls /prom/
prometheus.yml
#删除刚刚创建的容器,重新创建新容器
[root@master1 ~]# docker stop prom 
prom
[root@master1 ~]# docker rm prom 
prom
[root@master1 ~]# docker run -id --name prom -p 9090:9090 -v /prom/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:latest 
0c76e2fef6ac8063f5c8a626fda84d9183b7f6e7582ada236f32ce0b7586ad2e
[root@master1 ~]# 

浏览器IP+9090访问

下载node-exporter⽤于获取宿主机指标数据(⽆法获取容器的指标)

Node Exporter 是 Prometheus 的一个组件,用于从主机(如 Linux 服务器)收集硬件和操作系统的度量指标

[root@master1 ~]# docker pull  prom/node-exporter

创建node-exporter容器

[root@master1 ~]# docker run -id --name exporter -p 9100:9100 prom/node-exporter:latest 
9b1b58da2fa8ddb12ce3790f24049f86f703cb36b060bf22e8f27355f1d24017

修改Prometheus.yml配置⽂件定义监控对象

[root@master1 ~]# vim /prom/prometheus.yml 
....
- job_name: "node-exporter"
    static_configs:
      - targets: ["192.168.200.133:9100"]   
[root@master1 ~]# docker restart prom 

点击targets

 可以看到相关信息
 

 

2、docker部署Grafana

Grafana是一款开源的数据可视化和监控平台。以下是关于Grafana的一些关键信息和功能:

  1. 数据可视化和监控:Grafana支持从多种数据源(包括时序数据库、关系型数据库、日志文件等)中查询数据,并以多种图表形式(如折线图、柱状图、饼图等)进行可视化展示。这使得用户能够实时监控和分析数据。

  2. 多种数据源支持:Grafana支持多种不同的时序数据库数据源,如Graphite、InfluxDB、OpenTSDB、Prometheus、Elasticsearch、CloudWatch和KairosDB等。每种数据源都有其特定的查询方法和特性,Grafana能够很好地支持这些特性。

  3. 多组织和用户管理:Grafana支持多组织部署模式,允许使用一个单一的Grafana实例为多个潜在的不受信任的组织提供服务。每个组织可以有一个或多个数据源,所有的仪表板都是由一个特定的组织拥有。同时,Grafana还支持用户权限和认证管理,可以根据用户角色和权限对数据进行授权管理。

  4. 警报功能:Grafana中的警报允许将规则附加到仪表板面板上。当满足特定条件时,Grafana会触发警报,并可以通过多种方式(如钉钉、邮箱等)将报警消息推送至移动端。但目前Grafana只支持graph面板的报警。

  5. 高度定制化和扩展性:Grafana是一个功能强大的平台,支持高度定制化和扩展性。用户可以根据自己的需求自定义仪表板、数据源和警报规则等。

总的来说,Grafana是一个功能丰富的数据可视化和监控平台,广泛应用于各种场景,包括基础设施监控、应用程序性能管理、网络监控等。

步骤

拉取镜像并部署

[root@master1 ~]# docker pull  grafana/grafana
[root@master1 ~]# docker run -id --name grafana  -p 3000:3000 grafana/grafana:latest 
40381e2e20cc050ca543adb360a9d74d0f65f76b95f4756b22f73074d178426d
[root@master1 ~]# 

 浏览器ip+3000访问 默认用户名密码admin。之后会要求你更改新密码

 

3、Docker部署Cadvisor

Cadvisor(全称Container Advisor)是Google开源的一款容器性能监控工具。它可以提供容器的性能、使用情况以及资源利用率等信息,这些信息可以帮助运维人员自动化管理容器资源,快速发现和解决容器可用性和性能问题。

Cadvisor主要用于监控和管理容器内部的资源使用情况,它可以收集容器内部的CPU、内存、网络、存储等资源使用情况并可视化展示出来。Cadvisor使用Go语言开发,利用Linux的cgroups获取容器的资源使用信息。在Kubernetes中,Cadvisor集成在Kubelet里作为默认启动项,官方标配。

[root@master1 ~]# docker pull lagoudocker/cadvisor:v0.37.0  

创建容器

[root@master1 ~]# docker run -id  -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 8888:8080  --name cadvisor lagoudocker/cadvisor:v0.37.0 
9d142544d2b521f28bd75afcd7cfa58cdf34147267f5bb151663196c99af9264

浏览器ip+8888访问

修改promethes.yml⽂件添加cadvisor为监控对象

[root@master1 ~]# vim /prom/prometheus.yml 
- job_name: "cadvisor"
    static_configs:
      - targets: ["192.168.200.133:8888"]
[root@master1 ~]# docker restart  prom 
prom

 

在监控框中输入process_cpu_seconds_total

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Swift使用JSONDecoder处理json数据,实现json序列化和反序列化

Json数据处理是开发中不可获取的一项技能&#xff0c;如果你不会处理json数据&#xff0c;那你离失业就不远了&#xff0c;所以学完了swift基础教程&#xff0c;还是先老老实实学习一下json处理吧&#xff0c;有了这项技能&#xff0c;你才可以继续下一个网络请求阶段的开发&am…

深度学习之基于YoloV5车型识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 在智能交通、安全监控等领域&#xff0c;车型识别技术具有重要的应用价值。传统的车型识别方法…

栈(基于动态顺序表实现的栈)

栈的简单介绍 关于栈的性质咳咳 栈&#xff1a;栈是一种特殊的线性表,其中只让在一端插入和删除元素。 后进先出 进行插入删除的那一端叫栈顶&#xff0c;另一端叫栈底 我们实现的栈是基于一个动态顺序表的的栈&#xff0c;会实现栈的 入栈&#xff0c;出栈&#xff0c;获取…

【NumPy】关于numpy.eye()函数,看这一篇文章就够了

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

15:00面试,15:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

【重学C++】02 脱离指针陷阱:深入浅出 C++ 智能指针

前言 大家好&#xff0c;今天是【重学C】系列的第二讲&#xff0c;我们来聊聊C的智能指针。 为什么需要智能指针 在上一讲《01 C如何进行内存资源管理》中&#xff0c;提到了对于堆上的内存资源&#xff0c;需要我们手动分配和释放。管理这些资源是个技术活&#xff0c;一不…

Thinkphp内核开发盲盒商城源码v2.0 对接易支付/阿里云短信/七牛云存储

源码简介 这套系统是我从以前客户手里拿到的,100完整可用,今天测试防红链接失效了,需要修改防红API即可!前端页面展示我就不放了,懂的都懂 优点是Thinkphp开发的&#xff0c;二开容易。 源码图片 资源获取&#xff1a;Thinkphp内核开发盲盒商城源码v2.0 对接易支付/阿里云短…

浅谈hook下的免杀研究

文章目录 前记实现过程后记reference 前记 原理 CS在高版本中推出了sleep mask功能&#xff0c;即在beacon sleep时对堆进行加密混淆&#xff0c;绕过内存扫描&#xff0c;在恢复运行前还原&#xff0c;防止进程崩溃。beacon每次运行的时间远短于sleep时间&#xff0c;内存扫描…

python实现520表白图案

今天是520哦&#xff0c;作为程序员有必要通过自己的专业知识来向你的爱人表达下你的爱意。那么python中怎么实现绘制520表白图案呢&#xff1f;这里给出方法&#xff1a; 1、使用图形库&#xff08;如turtle&#xff09; 使用turtle模块&#xff0c;你可以绘制各种形状和图案…

GPT‑4o普通账户也可以免费用

网址 https://chatgpt.com/ 试了一下&#xff0c;免费的确实显示GPT‑4o的模型&#xff0c;问了一下可以联网&#xff0c;不知道能不能通过插件出图 有兴趣的可以试试

海山数据库(He3DB)代理ProxySQL使用详解:(一)架构说明与安装

一、ProxySQL介绍 1.1 简介 业界比较知名的MySQL代理&#xff0c;由ProxySQL LLC公司开发并提供专业的服务支持&#xff0c;基于GPLv3开源协议进行发布,大部分配置项可动态变更。后端的MySQL实例可根据用途配置到不同的hostgroup中&#xff0c;由ProxySQL基于7层网络协议,将来…

第二证券股市资讯:突传重磅!高盛最新发声,事关中国股票!

外资猛买我国财物。 高盛在最新发布的陈述中称&#xff0c;海外对冲基金已连续第四周增持我国股票。另据彭博社的数据显现&#xff0c;上星期&#xff0c;我国是新式商场国家中录得最大资金流入的商场&#xff0c;达4.88亿美元&#xff08;约合人民币35亿元&#xff09;。 北…

滴滴三面 | Go后端研发

狠狠的被鞭打了快两个小时… 注意我写的题解不一定是对的&#xff0c;如果你认为有其他答案欢迎评论区留言 bg&#xff1a;23届 211本 社招 1. 自我介绍 2. 讲一个项目的点&#xff0c;因为用到了中间件平台的数据同步&#xff0c;于是开始鞭打数据同步。。 3. 如果同步的时候…

OpenFeign高级用法:缓存、QueryMap、MatrixVariable、CollectionFormat优雅地远程调用

码到三十五 &#xff1a; 个人主页 微服务架构中&#xff0c;服务之间的通信变得尤为关键。OpenFeign&#xff0c;一个声明式的Web服务客户端&#xff0c;使得REST API的调用变得更加简单和优雅。OpenFeign集成了Ribbon和Hystrix&#xff0c;具有负载均衡和容错的能力&#xff…

LInux实验二--进程间通信--信号

一、实验原理&#xff1a; 信号类似 windows 下的消息,用于通知进程有某种事件发生。只要知道进程的进 程号,就可以向进程发送信号。而进程可以自行定义对信号的处理方法。 二、实验内容&#xff1a; 实例一&#xff1a;编写实例&#xff0c;让子进程在启动2s后杀死父进程 /…

Docker Portainer使用

Portainer是什么 Docker Portainer是一个轻量级的 Web UI 管理界面,可以用来管理Docker环境。它提供了一个直观的控制台,用户可以通过它来管理Docker主机、容器、网络、卷等Docker资源。 Portainer的主要功能和特点包括: 容器管理:可以查看、启动、停止、删除容器,以及查看容器…

跳过无限debugger实战——替换和条件断点实战

网址&#xff1a;Scrape | Movie 打卡开发者工具&#xff1a; debugger代码及含义 setInterval((function() {debugger ;console.log("debugger")} function()是要执行的函数。interval是每次执行之间的时间间隔&#xff0c;以毫秒为单位。 你可以用想要的时间间隔…

用C语言把一棵普通二叉树安排得明明白白

1. 树的相关术语 结点的度&#xff1a;一个结点含有的子树的个数称为该结点的度&#xff1b; 如上图&#xff1a;A的为6 叶结点或终端结点&#xff1a;度为0的结点称为叶结点&#xff1b; 如上图&#xff1a;B、C、H、I...等结点为叶结点 非终端结点或分支结点&#xff1a;度不…

linux与windows脚本格式必须转换,linux只有LF

如果windows下的脚本在linux下直接执行&#xff0c;则会造成无穷的错误。 在文本处理中, CR, LF, CR/LF是不同操作系统上使用的换行符. Dos和windows&#xff1a; 采用回车换行CR/LF表示下一行. UNIX/Linux &#xff1a; 采用换行符LF表示下一行. MAC OS &#xff1a; 采用回车…

Git提交和配置命令

一、提交代码到仓库 在软件开发中&#xff0c;版本控制是一个至关重要的环节。而Git作为目前最流行的版本控制系统之一&#xff0c;为我们提供了便捷高效的代码管理和协作工具。在日常开发中&#xff0c;我们经常需要将本地代码提交到远程仓库&#xff0c;以便于团队协作和版本…