搭建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 负责数据的可视化和展示。
-
典型工作流程:
-
Prometheus 从目标服务(如应用程序、服务器)拉取指标数据。
-
Prometheus 将数据存储在其时序数据库中。
-
Grafana 连接到 Prometheus 数据源,查询数据并展示在仪表盘上。
-
用户通过 Grafana 的仪表盘实时监控系统状态。
-
如果需要告警,可以通过 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 是两个非常流行的开源工具,通常结合使用来实现监控、可视化和告警功能。它们在现代 DevOps 和云原生环境中被广泛使用。 1. Prometheus 定义:Prometheus 是一个开源的系统监控和告警工具包,最初由 SoundCloud 开发&am…...
uni-app无限级树形组件简单实现
因为项目一些数据需要树形展示,但是官网组件没有。现在简单封装一个组件在app中使用,可以无线嵌套,展开,收缩,获取子节点数据等。 简单效果 组件TreeData <template><view class"tree"><te…...
基于华为ENSP的OSPF状态机、工作过程、配置保姆级别详解(2)
本篇技术博文摘要 🌟 基于华为enspOSPF状态机、OSPF工作过程、.OSPF基本配置等保姆级别具体详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法 引言 📘 在这个快速发展的技术时代,与时俱进是每个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协议只能实现一对一的通信模式。为了实现一对多,有以下的的处理方式 1. 多进程 开销大 效率低 2. 多线程 创建线程需要耗时 3. 线程池 多线程模型创建线程耗时问题,提前创建 4. IO多路复用 在不创建进程和线程的前提下,对…...
更新Office后,LabVIEW 可执行程序生成失败
问题描述: 在计算机中,LabVIEW 开发的源程序运行正常,但在生成可执行程序时提示以下错误: 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公司开源的先进视频生成模型,具有高保真运动和强大的提示遵循性。此模型的发布极大的缩小了闭源和开源视频生成系统之间的差距。 目前,视频生成模型与现实之间存在巨大差距。其中最影响视频生成的两个关键功能也就是运动质量和…...
如何理解机器学习中的非线性模型 ?
在机器学习中,非线性模型是指能够捕捉输入特征与输出之间复杂非线性关系的一类模型。与线性模型不同,非线性模型的假设更加灵活,因此可以更好地处理真实世界中复杂、多样的数据分布。以下是对非线性模型的理解: 1. 非线性模型的核…...
Web 品质样式表
《Web 品质样式表》是一个重要的指南,旨在帮助开发者提升网站的整体质量和用户体验。以下是一些关键点: 避免使用 <font> 标签:应使用 CSS 来设置显示网页上的字体尺寸。使用 <font> 标签会增加文档的规模,且使每次改…...
计算机网络 笔记 数据链路层3(局域网,广域网,网桥,交换机)
局域网: LAN:在某一区域内由多台计算机互联成的计算机组,使用广播信道 特点: 覆盖范围有限:通常局限在几千米范围内,比如一栋办公楼、一个校园或一个工厂等相对较小的地理区域。 数据传输速率高:一般能达到 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我们的数据都是放在内存里面的,但是内存是有…...
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…...
机器人碳钢去毛刺,用大扭去毛刺主轴可轻松去除
在碳钢精密加工的最后阶段,去除毛刺是确保产品质量的关键步骤。面对碳钢这种硬度较高的材料,采用大扭矩的SycoTec去毛刺主轴,成为了行业内的高效解决方案。SycoTec作为精密加工领域的领军品牌,其生产的高速电主轴以其卓越的性能&a…...
day05_Spark SQL
文章目录 day05_Spark SQL课程笔记一、今日课程内容二、Spark SQL 基本介绍(了解)1、什么是Spark SQL**为什么 Spark SQL 是“SQL与大数据之间的桥梁”?****实际意义**为什么要学习Spark SQL呢?**为什么 Spark SQL 像“瑞士军刀”࿱…...
Java线程的异常处理:确保线程安全运行
哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互…...
nvim 打造成可用的IDE(2)
上一个 文章写的太长了, 后来再写东西 就一卡一卡的,所以新开一个。 主要是关于 bufferline的。 之前我的界面是这样的。 这个图标很不舒服有。 后来发现是在这里进行配置。 我也不知道,这个配置 我是从哪 抄过来的。 测试结果࿱…...
如何当前正在运行的 Elasticsearch 集群信息
要查看当前正在运行的 Elasticsearch 集群信息,可以通过以下几种方法: 1. 使用 _cluster/health API _cluster/health API 返回集群的健康状态、节点数量、分片状态等信息。可以用 curl 命令直接访问: curl -X GET "http://localhost…...
PHP Filesystem:深入解析与实战应用
PHP Filesystem:深入解析与实战应用 引言 PHP作为一种流行的服务器端编程语言,提供了强大的文件系统操作功能。本文将深入探讨PHP的Filesystem函数,这些函数允许开发者访问和操作服务器上的文件系统。无论是进行基本的文件操作,还是实现复杂的文件管理系统,PHP的Filesys…...
pdf提取文本,表格以及转图片:spire.pdf
文章目录 🐒个人主页:信计2102罗铠威🏅JavaEE系列专栏📖前言:🎀 1. pdfbox1.1导入pdfbox 的maven依赖1.1 提取文本1.2 提取文本表格(可自行加入逻辑处理)1.3 pdf转换成图片代码&…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
