通过Docker部署Prometheus + Grafana搭建监控平台【超详细版】

在这里插入图片描述

文章目录

  • 前言
  • 一、Prometheus、Grafana
    • 1.1 Prometheus简介
    • 1.2 Grafana简介
    • 1.3 Prometheus的核心组件
    • 1.4 Prometheus优点
    • 1.5 Prometheus缺点
  • 二、部署Docker
  • 三、主节点部署Prometheus+Grafana
    • 3.1 部署Prometheus
    • 3.2 防火墙开放端口
    • 3.3 访问服务
    • 3.4 安装Grafana
    • 3.5 防火墙开放端口
    • 3.6 访问服务
    • 3.7自定义账号/密码:admin/admin
  • 四、从节点部署Node_exporter
    • 4.1 被采集的主机节点上部署Node_exporter
    • 4.2 防火墙开放端口
  • 五、主节点配置Prometheus
    • 5.1 在主节点上修改Prometheus主配置文件
  • 六、配置Grafana监控界面
    • 6.1 添加Prometheus数据源
    • 6.2 选择Prometheus类型
    • 6.3 输入主节点PrometheusIP地址及端口
    • 6.4 点击sava保存
    • 6.5 新增Dashboard Linux基础数据展示
    • 6.6 填写模板id
    • 6.7 选择刚刚创建好的数据源
    • 6.8 查看Dashboard
  • 总结


前言

Prometheus(普罗米修斯R)是一套开源的监控&报警&时间序列数据库的组合,由SoundCloud公司开发。
Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker。
Prometheus应该是为数不多的适合Docker、Mesos、Kubernetes环境的监控系统之一。
Prometheus 号称下一代监控系统,已经成为主导及容器监控方面的标配,并且在未来可见的时间内被广泛应用


提示:以下是本篇文章正文内容,下面案例可供参考

一、Prometheus、Grafana

1.1 Prometheus简介

Prometheus是由SoundCloud公司开发的开源监控和警报工具包。其设计思想是通过时间序列数据库存储监控数据,并通过强大的查询语言PromQL对数据进行分析。Prometheus的架构高度模块化,易于扩展,特别适合云原生环境,如Kubernetes集群。

1.2 Grafana简介

Grafana是一个开源的数据可视化工具,广泛用于绘制图表和仪表盘。它可以与多种数据源配合使用,如Prometheus、Graphite等,并提供丰富的图表类型和插件支持。Grafana的用户友好界面使得自定义和共享仪表盘变得轻而易举。

通过将Prometheus的数据采集、存储与Grafana的可视化能力相结合,可以创建一套强大的监控系统,帮助维护和优化大规模的IT环境。
在这里插入图片描述

1.3 Prometheus的核心组件

Prometheus服务器:负责收集和存储时间序列数据。
exporters:用于将不同类型的监控指标转化为Prometheus格式,例如node_exporter用于收集主机级别的指标。
Pushgateway:允许短暂的生命进程将指标推送到Prometheus,适用于批处理作业。
Alertmanager:负责处理Prometheus服务器发出的警报。
各种客户端库:用于与被监控的程序集成,这些库可以帮助自动生成指标。
Prometheus服务器是架构中的关键组件,它通过拉取(Pull)的方式从配置的目标中收集指标数据,并存储在自身的时序数据库中。通过查询接口,用户可以实时获取监控数据,进行问题诊断和趋势分析。

1.4 Prometheus优点

(1)提供多维度数据模型和灵活的查询方式
通过将监控指标关联多个 tag,来将监控数据进行任意维度的组合,并且提供简单的 PromQL 查询方式,还提供 HTTP 查询接口,可以很方便地结合 Grafana 等 GUI 组件展示数据。

(2)基于时序数据库,支持服务器节点的本地存储
通过 Prometheus 自带的时序数据库,可以完成每秒千万级的数据存储;不仅如此,在保存大量历史数据的场景中,Prometheus 可以对接第三方时序数据库和 OpenTSDB 等。

(3)定义了开放指标数据标准
以基于 HTTP 的 Pull 方式采集时序数据,只有实现了Prometheus监控数据才可以被 Prometheus 采集、汇总、并支持 Push 方式向中间网关推送时序列数据,能更加灵活地应对多种监控场景。

(4)支持通过静态文件配置和动态发现机制发现监控对象
自动完成数据采集。Prometheus 目前已经支持 Kubernetes、etcd、Consul 等多种服务发现机制。

(5)易于维护
可以通过二进制文件直接启动,并且提供了容器化部署镜像。

(6)集群支持
支持数据的分区采样和集群部署,支持大规模集群监控。

1.5 Prometheus缺点

Prometheus 是基于 Metric 的监控,不适用于日志(Logs)、事件(Event)、调用链(Tracing)。
由于Prometheus采用的是Pull模型拉取数据,意味着所有被监控的endpoint必须是可达的,需要合理规划网络的安全配置。
指标众多,需进行适当裁剪。
本次部署Prometheus+Grafana需要两台服务器

主节点(10.10.10.65)主要负责部署Prometheus+Grafana,搭建监控server平台,并开启9090、3000端口
从节点(10.10.10.214)主要负责部署Node_exporter,主要在被采集的主机上部署插件服务,并开启9100服务端口,支持部署多台被采集的主机,由主节点统一管理

二、部署Docker

可以参考我之前部署docker教程,非常详细

三、主节点部署Prometheus+Grafana

3.1 部署Prometheus

#拉取镜像
docker pull prom/prometheus
#运行容器
docker run -itd --name=prometheus --restart=always -p 9090:9090 prom/prometheus

3.2 防火墙开放端口

#开放端口策略
firewall-cmd --zone=public --add-port=9090/tcp --permanent
#刷新防火墙配置
firewall-cmd --reload
#查看已开放端口
firewall-cmd --list-ports

在这里插入图片描述

3.3 访问服务

通过浏览器访问http://ip地址:9090
在这里插入图片描述

3.4 安装Grafana

#创建存储卷
docker volume create -d local grafana_storage
#查看存储卷
docker volume ls
#拉取镜像
docker pull grafana/grafana
#运行容器
docker run -itd --name=grafana \
--restart=always \
-p 3000:3000 \
-v grafana_storage:/var/lib/grafana \
grafana/grafana

3.5 防火墙开放端口

#开放端口策略
firewall-cmd --zone=public --add-port=3000/tcp --permanent
#刷新防火墙配置
firewall-cmd --reload
#查看已开放端口
firewall-cmd --list-ports

3.6 访问服务

通过浏览器访问http://ip地址:3000
在这里插入图片描述

3.7自定义账号/密码:admin/admin

在这里插入图片描述

四、从节点部署Node_exporter

4.1 被采集的主机节点上部署Node_exporter

Node_exporter收集机器的系统数据,这里采用prometheus官方提供的exporter,除node_exporter外,官方还提供consul,memcached,haproxy,mysqld等exporter,具体可查看官网。

#创建存储卷
docker volume create -d local node_proc
docker volume create -d local node_sys
#查看存储卷
docker volume ls
#拉取镜像
docker pull prom/node-exporter
#运行容器
docker run -itd --name=node-exporter \
--restart=always \
-p 9100:9100 \
-v node_proc:/host/proc:ro \
-v node_sys:/host/sys:ro \
-v "/:/rootfs:ro" \
prom/node-exporter

在这里插入图片描述

4.2 防火墙开放端口

#开放端口策略
firewall-cmd --zone=public --add-port=9100/tcp --permanent
#刷新防火墙配置
firewall-cmd --reload
#查看已开放端口
firewall-cmd --list-ports

五、主节点配置Prometheus

5.1 在主节点上修改Prometheus主配置文件

#复制文件
docker cp prometheus:/etc/prometheus/prometheus.yml $PWD#修改prometheus.yml文件
vim prometheus.yml#在Prometheus配置文件按以下内容修改:
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']labels:instance: prometheus- job_name: linuxstatic_configs:- targets: ['ip地址:9100']					#被监控端的IP地址和端口号(有多个被监控端可用 逗号 隔开)labels:instance: localhost#复制文件
docker cp $PWD/prometheus.yml prometheus:/etc/prometheus/prometheus.yml
#重启容器服务
docker restart prometheus

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、配置Grafana监控界面

6.1 添加Prometheus数据源

使用浏览器访问http:/ /10.10.10.65:3000监控平台,添加Prometheus数据源
在这里插入图片描述

6.2 选择Prometheus类型

在这里插入图片描述

6.3 输入主节点PrometheusIP地址及端口

在这里插入图片描述
在这里插入图片描述

6.4 点击sava保存

在这里插入图片描述

6.5 新增Dashboard Linux基础数据展示

在这里插入图片描述

6.6 填写模板id

更多grafana模板: https://grafana.com/grafana/dashboards 搜索 相应 dashboards的id如8919,12227
在这里插入图片描述

6.7 选择刚刚创建好的数据源

在这里插入图片描述

6.8 查看Dashboard

成功显示资源使用率可视化图形界面
在这里插入图片描述

总结

可以创建不同类型的数据源,比如MySQL、redis、MongoDB、PostgreSQL等等
在这里插入图片描述
选择不同数据源类型
在这里插入图片描述

可以在官网查看更多可视化模板
官网提供很多模板

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

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

相关文章

华为云Flexus+DeepSeek征文|DeepSeek-V3商用服务开通教程

目录 DeepSeek-V3/R1商用服务开通使用感受 DeepSeek-V3/R1商用服务开通 1、首先需要访问ModelArts Studio_MaaS_大模型即服务_华为云 2、在网站右上角登陆自己的华为云账号&#xff0c;如果没有华为云账号的话&#xff0c;则需要自己先注册一个。 3、接着点击ModelArts Stu…

ubuntu20.04修改默认网卡名称为eth*

在Ubuntu 20.04.6中&#xff0c;遵循可预测网络接口设备命名规则&#xff0c;网卡名称默认可能是以"enp*"、"ens*"等开头的格式&#xff0c;但是实际使用过程中&#xff0c;某些应用只能读取eth*的网卡&#xff0c;需要修改。 查看网卡名称 ip link show …

linux下抓包工具--tcpdump介绍

文章目录 1. 前言2. 命令介绍3. 常见选项3.1. 接口与基本控制3.2 输出控制3.3 文件操作3.4 高级调试 4. 过滤表达式4.1 协议类型4.2 方向与地址4.3 逻辑运算符 5. 典型使用场景5.1 网络故障排查5.2 安全分析与入侵检测5.3 性能分析与优化 linux下抓包工具--tcpdump介绍 1. 前言…

AI大模型-RAG到底能做些什么?

RAG常见的应用场景&#xff0c;有以下几个方面&#xff1a; 1.智能客服系统&#xff1a;比如电商领域&#xff0c;对客户提出的常见问题&#xff0c;进行自动回复。减少人力成本。 2.人力资源管理&#xff1a;一个新的员工&#xff0c;入职一家大型公司&#xff0c;公司中有各…

C++ unordered_set unordered_map

上篇文章我们讲解了哈希表的实现&#xff0c;这节尝试使用哈希表来封装unordered_set/map 1. unordered_set/map的框架 封装的过程实际上与set/map类似&#xff0c;在unordered_set/map层传递一个仿函数&#xff0c;用于取出key值 由于我们平常使用的都是unordered_set/map&…

REST API、FastAPI与Flask API的对比分析

以下是关于REST API、FastAPI与Flask API的对比分析&#xff0c;涵盖架构设计、性能表现、开发效率等核心维度&#xff1a; 一、核心定位与架构差异 REST API 本质&#xff1a;一种基于HTTP协议的架构风格&#xff0c;强调资源化操作&#xff08;通过URI定位资源&#xff09;、…

实战交易策略 篇二十二:情绪流龙头交易策略

文章目录 系列文章理论基础股市的本质资金与情绪题材龙头股龙头战法实战技法情绪流技术分析择时实操情绪流龙头战法要诀六大步骤九大术法买卖点量化标准系列文章 实战交易策略 篇一:奥利弗瓦莱士短线交易策略 实战交易策略 篇二:杰西利弗莫尔股票大作手操盘术策略 实战交易策…

用VNA进行天线阻抗匹配的实例大图

比如我这天线&#xff0c;在7Mhz时不谐振&#xff0c;我进行匹配 天线的阻抗很高&#xff0c;大约是在500-1400欧&#xff0c;而等效电容电感很小。 所以我考虑使用阻抗变压器降低阻抗。 1。测试天线阻抗&#xff0c;电阻相当高&#xff0c;等效电容很小。 2。通过磁环匹配到…

一个读写excel的简单程序(golang)

最近总有一些临时统计的需求&#xff0c;比如其他团队生产的一批数据&#xff0c;需要确认这批数据是否入到数仓&#xff0c;提供的列表就是一个excel&#xff0c;我们就需要读取excel中的所有数据&#xff0c;之后查询数仓数据库确认这批数据是否存在&#xff0c;并分别将存在…

【AI面试准备】AI误判案例知识库优化方案

面试题&#xff1a;建立内部知识库&#xff1a;收集AI误判案例训练领域专属模型。 在回答关于“建立内部知识库收集AI误判案例训练领域专属模型”的面试问题时&#xff0c;建议从以下结构化框架展开&#xff0c;既能体现专业性&#xff0c;又能展现解决问题的系统性和实际落地…

Ocelot\Consul\.NetCore的微服务应用案例

案例资料链接&#xff1a;https://download.csdn.net/download/ly1h1/90733765 1.效果 实现两个微服务ServerAPI1和ServerAPI2的负载均衡以及高可用。具体原理&#xff0c;看以下示意图。 2.部署条件 1、腾讯云的轻量化服务器 2、WindowServer2016 3、.NETCore7.0 4、Negut …

中小企业MES系统需求文档

适用对象&#xff1a;中小型离散制造企业&#xff08;年产值1-5亿&#xff0c;员工200-800人&#xff09; 版本&#xff1a;V1.0 日期&#xff1a;2025年5月2日 一、业务背景与目标 1.1 现状痛点 生产黑箱化&#xff1a;车间进度依赖人工汇报&#xff0c;异常响应延迟>2小…

OpenAI最新发布的GPT-4.1系列模型,性能体验如何?

简单来说,这次GPT-4.1的核心思路就是:更实用、更懂开发者、更便宜!OpenAI这次没搞太多花里胡哨的概念,而是实实在在地提升了大家最关心的几个点:写代码、听指令、处理超长文本,而且知识库也更新到了2024年6月。 写代码。要说这次GPT-4.1最亮眼的地方,可能就是写代码这块…

【基础算法】二分查找的多种写法

前言 在算法竞赛中&#xff0c;二分查找使用的频率是非常高的&#xff0c;对于C选手而言&#xff0c;有STL中自带的lower_bound和upper_bound二分查找&#xff0c;可以很方便的进行二分查找。但是非C选手、或者需要自定义多条件查找的情况需要自己写一个二分&#xff0c;本文对…

兰亭妙微:火箭发射界面案例分享

北京蓝蓝设计团队来自清华美院&#xff0c;工作多年&#xff0c;行业经验丰富&#xff0c;专业性很强。我们是热爱设计&#xff0c;设计不仅是我们的专业&#xff0c;我们的职业&#xff0c;还是我们的爱好。每一个蓝蓝设计的设计师都希望自己的设计越来越好&#xff0c;以高标…

完美解决.NET Framework 4.0 中 System.Drawing 库不支持 WebP 格式的图像处理

如果你想在 .NET Framework 4.0 中使用 ImageMagick 处理图片&#xff0c;可以通过 Magick.NET 库来实现。Magick.NET 是 ImageMagick 的 .NET 封装&#xff0c;可以用来读取、写入、编辑图像。 以下是如何使用 Magick.NET 来处理图像并提取图像的宽度和高度。 步骤&#xff…

string--OJ1

链接: 例一 链接: 例er class Solution { public:int myAtoi(string str) {int sign 1;int ret0;int i0;while(str[i] ){i;}if(str[i]||str[i]-){if(str[i]-)sign*-1;i;}while(str[i]>0&&str[i]<9){int rstr[i] - 0;if(ret>INT_MAX/10||(retINT_MAX/10&…

Go 写一个简单的Get和Post请求服务

Go 写一个简单的Get和Post请求服务 ✅ 一、准备工作 安装 Go 官网下载地址 安装后执行&#xff1a; go version安装 VS Code 插件 在 VS Code 插件市场搜索并安装插件&#xff1a;Go&#xff08;由 Go 团队提供&#xff09; 配置环境变量&#xff08;可选&#xff09; 设置 …

哪些因素会影响远程视频监控的质量?浅述EasyCVR视频智能诊断技术

在安防领域&#xff0c;无线监控系统凭借其灵活部署、便捷扩展的特性得到广泛应用。然而&#xff0c;实时监控图像清晰度不足、回放调查受限等问题&#xff0c;严重制约了其应用效果。经分析&#xff0c;摄像机性能、线缆质量、无线网桥性能、交换机配置及供电电压等是影响图像…

Java大师成长计划之第10天:锁与原子操作

&#x1f4e2; 友情提示&#xff1a; 本文由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;平台gpt-4o-mini模型辅助创作完成&#xff0c;旨在提供灵感参考与技术分享&#xff0c;文中关键数据、代码与结论建议通过官方渠道验证。 在多线程编程中&#xff0c;锁与原子…