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

搭建prometheus+grafana监控系统抓取Linux主机系统资源数据

Prometheus 和 Grafana 是两个非常流行的开源工具,通常结合使用来实现监控、可视化和告警功能。它们在现代 DevOps 和云原生环境中被广泛使用。

1. Prometheus

  • 定义:Prometheus 是一个开源的系统监控和告警工具包,最初由 SoundCloud 开发,现在是 CNCF(云原生计算基金会)的毕业项目。

  • 核心功能

    • 数据采集:通过拉取(Pull)方式从目标服务(如应用程序、服务器、数据库等)收集指标数据。

    • 数据存储:将采集到的时序数据(Time Series Data)存储在本地或远程存储中。

    • 查询语言:提供强大的查询语言 PromQL,用于分析和查询监控数据。

    • 告警功能:支持基于规则的告警,可以通过 Alertmanager 发送告警通知(如邮件、Slack、PagerDuty 等)。

  • 特点

    • 多维数据模型(通过标签区分不同的指标)。

    • 支持服务发现,动态监控目标。

    • 高性能,适合大规模监控。

  • 适用场景

    • 监控 Kubernetes 集群。

    • 监控微服务架构。

    • 监控基础设施(如服务器、数据库、网络设备等)。

2. Grafana

  • 定义:Grafana 是一个开源的指标分析和可视化工具,支持多种数据源(如 Prometheus、InfluxDB、Elasticsearch 等)。

  • 核心功能

    • 数据可视化:通过丰富的图表(如折线图、柱状图、仪表盘等)展示监控数据。

    • 多数据源支持:支持 Prometheus、InfluxDB、MySQL、Elasticsearch 等多种数据源。

    • 仪表盘:用户可以创建和共享自定义的监控仪表盘。

    • 告警功能:Grafana 也支持告警功能,可以根据指标设置告警规则并发送通知。

  • 特点

    • 界面美观,交互性强。

    • 支持插件扩展,功能丰富。

    • 社区活跃,有大量现成的仪表盘模板。

  • 适用场景

    • 可视化 Prometheus 的监控数据。

    • 分析和展示时序数据。

    • 创建自定义的监控和运维仪表盘。

3. Prometheus + Grafana 的结合

  • Prometheus 负责数据采集和存储,而 Grafana 负责数据的可视化和展示。

  • 典型工作流程

    1. Prometheus 从目标服务(如应用程序、服务器)拉取指标数据。

    2. Prometheus 将数据存储在其时序数据库中。

    3. Grafana 连接到 Prometheus 数据源,查询数据并展示在仪表盘上。

    4. 用户通过 Grafana 的仪表盘实时监控系统状态。

    5. 如果需要告警,可以通过 Prometheus 的 Alertmanager 或 Grafana 的告警功能发送通知。


部署环境:

OS:Rocky Linux 9.4

上传所需软件版本:

prometheus-2.40.1.linux-amd64.tar.gz

grafana-enterprise-9.2.4-1.x86_64.rpm

node_exporter-1.4.0.linux-amd64.tar.gz

初始化操作:

关闭防火墙和seLinux,这台机之前关过了,所以没啥提示

systemctl stop firewalld
systemctl disable firewalld
setenforce 0 #临时关闭,也可在/etc/selinux/config文件里永久关闭

修改一下主机名:hostnamectl set-hostname prometheus

下载prometheus安装包:
地址:https://prometheus.io/download/

解压并重命名和启动prometheus:

tar xf prometheus-2.40.1.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/prometheus-2.40.1.linux-amd64/ /usr/local/prometheus
nohup /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &

查看启动情况:

查看启动端口:

netstat -an |grep 9090

通过主机IP:端口浏览器访问:

默认可以查看到已监控本机
菜单Status -> Targets

查看监控数据:主机IP:端口/metrics

在WEB界面首页可以通过关键字搜索查询监控项


接下来安装Grafana图形化监测工具

官网:https://grafana.com/

下载安装包:
地址:
https://dl.grafana.com/enterprise/release/grafana-enterprise-9.2.4-1.x86_64.rpm

上传grafana的rpm包之后,先安装两个依赖

yum install fontconfig urw-fonts

如果安装grafana报了这个问题:

我这里直接强制跳过了这个chkconfig依赖

rpm -ivh --nodeps grafana-enterprise-9.2.4-1.x86_64.rpm

接着启动grafana并查看端口号是否正在监听

systemctl start grafana-server
systemctl enable grafana-server
netstat -an |grep 3000

浏览使用主机ip:端口访问默认账号密码:admin/admin

登录后把prometheus服务器收集的数据作为一个数据源添加到grafana,让grafana可以得到prometheus的数据

(1)从左侧导航栏找到Data sources菜单

url填上PrometheusIP地址加端口

2.2配置Grafana仪表板

配置完数据源后,grafana接收到prometheus的数据需要使用仪表板展示,仪表板可自定义或导入模板,grafana官网也有非常多类型的模板供下载

Grafana dashboards | Grafana Labs

(1)从左侧导航栏找到导入仪表板,选择添加一个面板我选了官网的3662面板

接下来采集Linux主机系统资源

下载安装包:

地址:Download | Prometheus

上传采集器node_exporter-1.4.0.linux-amd64.tar.gz

解压文件

移动文件到/usr/local/目录下并重命名为node_exporter

启动采集器并修改默认端口

tar -zxf  node_exporter-1.4.0.linux-amd64.tar.gz
mv node_exporter-1.4.0.linux-amd64 /usr/local/node_exporter
nohup /usr/local/node_exporter/node_exporter --web.listen-address=":9900" &

接下来配置prometheus

编辑prometheus.yml文件,配置监控项

[root@prometheus prometheus]# cat  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:#- "/usr/local/prometheus/rules.yml"# - "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: ["192.168.158.183:9090"]- job_name: 'linux'file_sd_configs:- files:- /usr/local/prometheus/node_exporter_targets.json

如果有大批量的机器要监控的话,为了方便维护,可以把所有主机信息单独存放到一个文件中

标签名:beijing代表这台机是北京区域的,、prod代表是生产环境的,可自行修改。

[root@prometheus prometheus]# cat  /usr/local/prometheus/node_exporter_targets.json
[{"targets": ["192.168.158.183:9900"],"labels": {"project": "beijing","env": "prod"}}
]

接下来执行

ps -ef |grep prometheus |grep -v grep |awk '{print $2}' |xargs kill -9

停止prometheus进程并启动。

nohup /usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &

接下来在grafana导入linux主机详情监控面板

我选择了这个面板

修改面板添加env变量并修改这两个查询语句

此时可以直观看到这台机的资源使用率,后续将继续完善监控系统添加报警功能。

相关文章:

搭建prometheus+grafana监控系统抓取Linux主机系统资源数据

Prometheus 和 Grafana 是两个非常流行的开源工具&#xff0c;通常结合使用来实现监控、可视化和告警功能。它们在现代 DevOps 和云原生环境中被广泛使用。 1. Prometheus 定义&#xff1a;Prometheus 是一个开源的系统监控和告警工具包&#xff0c;最初由 SoundCloud 开发&am…...

uni-app无限级树形组件简单实现

因为项目一些数据需要树形展示&#xff0c;但是官网组件没有。现在简单封装一个组件在app中使用&#xff0c;可以无线嵌套&#xff0c;展开&#xff0c;收缩&#xff0c;获取子节点数据等。 简单效果 组件TreeData <template><view class"tree"><te…...

基于华为ENSP的OSPF状态机、工作过程、配置保姆级别详解(2)

本篇技术博文摘要 &#x1f31f; 基于华为enspOSPF状态机、OSPF工作过程、.OSPF基本配置等保姆级别具体详解步骤&#xff1b;精典图示举例说明、注意点及常见报错问题所对应的解决方法 引言 &#x1f4d8; 在这个快速发展的技术时代&#xff0c;与时俱进是每个IT人的必修课。我…...

请求方式(基于注解实现)

1.编写web.xml文件配置启动信息 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app><display-name>Archetype Created Web Application</di…...

day38 tcp 并发 ,linux下的IO模型----IO多路复用

TCP 并发 由于tcp协议只能实现一对一的通信模式。为了实现一对多&#xff0c;有以下的的处理方式 1. 多进程 开销大 效率低 2. 多线程 创建线程需要耗时 3. 线程池 多线程模型创建线程耗时问题&#xff0c;提前创建 4. IO多路复用 在不创建进程和线程的前提下&#xff0c;对…...

更新Office后,LabVIEW 可执行程序生成失败

问题描述&#xff1a; 在计算机中&#xff0c;LabVIEW 开发的源程序运行正常&#xff0c;但在生成可执行程序时提示以下错误&#xff1a; ​ A VI broke during the build process from being saved without a block diagram. Either open the build specification to include…...

重塑视频创作的格局!ComfyUI-Mochi本地部署教程

一、介绍 mochi是近期Genmo公司开源的先进视频生成模型&#xff0c;具有高保真运动和强大的提示遵循性。此模型的发布极大的缩小了闭源和开源视频生成系统之间的差距。 目前&#xff0c;视频生成模型与现实之间存在巨大差距。其中最影响视频生成的两个关键功能也就是运动质量和…...

如何理解机器学习中的非线性模型 ?

在机器学习中&#xff0c;非线性模型是指能够捕捉输入特征与输出之间复杂非线性关系的一类模型。与线性模型不同&#xff0c;非线性模型的假设更加灵活&#xff0c;因此可以更好地处理真实世界中复杂、多样的数据分布。以下是对非线性模型的理解&#xff1a; 1. 非线性模型的核…...

Web 品质样式表

《Web 品质样式表》是一个重要的指南&#xff0c;旨在帮助开发者提升网站的整体质量和用户体验。以下是一些关键点&#xff1a; 避免使用 <font> 标签&#xff1a;应使用 CSS 来设置显示网页上的字体尺寸。使用 <font> 标签会增加文档的规模&#xff0c;且使每次改…...

计算机网络 笔记 数据链路层3(局域网,广域网,网桥,交换机)

局域网: LAN:在某一区域内由多台计算机互联成的计算机组&#xff0c;使用广播信道 特点&#xff1a; 覆盖范围有限&#xff1a;通常局限在几千米范围内&#xff0c;比如一栋办公楼、一个校园或一个工厂等相对较小的地理区域。 数据传输速率高&#xff1a;一般能达到 10Mbps…...

centos7.6 安装nginx 1.21.3与配置ssl

1 安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel2 下载Nginx wget http://nginx.org/download/nginx-1.21.3.tar.gz3 安装目录 mkdir -p /data/apps/nginx4 安装 4.1 创建用户 创建用户nginx使用的nginx用户。 #添加www组 # groupa…...

redis 内存管理和持久化机制

文章目录 前言一、内存管理1、Redis过期策略1.1、惰性过期1.2、定期过期清理频率配置清理流程 2、Redis淘汰策略策略流程算法分析1、LRU2、LFU 二、持久化1、RDB2、AOF 前言 redis 内存管理与持久化 一、内存管理 redis我们的数据都是放在内存里面的&#xff0c;但是内存是有…...

python-42-使用selenium-wire爬取微信公众号下的所有文章列表

文章目录 1 seleniumwire1.1 selenium-wire简介1.2 获取请求和响应信息2 操作2.1 自动获取token和cookie和agent2.3 获取所有清单3 异常解决3.1 请求url失败的问题3.2 访问链接不安全的问题4 参考附录1 seleniumwire Selenium WebDriver本身并不直接提供获取HTTP请求头(header…...

机器人碳钢去毛刺,用大扭去毛刺主轴可轻松去除

在碳钢精密加工的最后阶段&#xff0c;去除毛刺是确保产品质量的关键步骤。面对碳钢这种硬度较高的材料&#xff0c;采用大扭矩的SycoTec去毛刺主轴&#xff0c;成为了行业内的高效解决方案。SycoTec作为精密加工领域的领军品牌&#xff0c;其生产的高速电主轴以其卓越的性能&a…...

day05_Spark SQL

文章目录 day05_Spark SQL课程笔记一、今日课程内容二、Spark SQL 基本介绍&#xff08;了解&#xff09;1、什么是Spark SQL**为什么 Spark SQL 是“SQL与大数据之间的桥梁”&#xff1f;****实际意义**为什么要学习Spark SQL呢?**为什么 Spark SQL 像“瑞士军刀”&#xff1…...

Java线程的异常处理:确保线程安全运行

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云/阿里云/华为云/51CTO&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互…...

nvim 打造成可用的IDE(2)

上一个 文章写的太长了&#xff0c; 后来再写东西 就一卡一卡的&#xff0c;所以新开一个。 主要是关于 bufferline的。 之前我的界面是这样的。 这个图标很不舒服有。 后来发现是在这里进行配置。 我也不知道&#xff0c;这个配置 我是从哪 抄过来的。 测试结果&#xff1…...

如何当前正在运行的 Elasticsearch 集群信息

要查看当前正在运行的 Elasticsearch 集群信息&#xff0c;可以通过以下几种方法&#xff1a; 1. 使用 _cluster/health API _cluster/health API 返回集群的健康状态、节点数量、分片状态等信息。可以用 curl 命令直接访问&#xff1a; curl -X GET "http://localhost…...

PHP Filesystem:深入解析与实战应用

PHP Filesystem:深入解析与实战应用 引言 PHP作为一种流行的服务器端编程语言,提供了强大的文件系统操作功能。本文将深入探讨PHP的Filesystem函数,这些函数允许开发者访问和操作服务器上的文件系统。无论是进行基本的文件操作,还是实现复杂的文件管理系统,PHP的Filesys…...

pdf提取文本,表格以及转图片:spire.pdf

文章目录 &#x1f412;个人主页&#xff1a;信计2102罗铠威&#x1f3c5;JavaEE系列专栏&#x1f4d6;前言&#xff1a;&#x1f380; 1. pdfbox1.1导入pdfbox 的maven依赖1.1 提取文本1.2 提取文本表格&#xff08;可自行加入逻辑处理&#xff09;1.3 pdf转换成图片代码&…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...