当前位置: 首页 > 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转换成图片代码&…...

jQuery UI 主题

关于“jQuery UI 主题”&#xff0c;我找到了一些有用的信息。 首先&#xff0c;jQuery UI 主题允许开发人员无缝集成UI小部件到他们网站或应用程序的外观和感观。每个插件通过CSS定义样式&#xff0c;包含两层样式信息&#xff1a;标准的jQuery UI CSS框架样式和具体的插件样…...

C# GDI+的DrawString无法绘制Tab键的现象

【啰嗦2句】 现在用C#的人很少了吧&#xff1f;GDI更少了吧&#xff1f;所以这个问题估计也冷门。没关系&#xff0c;分享给特定需要的人也不错。 【问题现象】 工作中开发了一个报告编辑器&#xff0c;实现图文排版等功能&#xff0c;用着没什么问题&#xff0c;直到有一天…...

C# GID+绘制不透明和半透明的线条

绘制线条时&#xff0c;必须将 Pen 对象传递给 DrawLine 类的 Graphics 方法。 Pen 构造函数的参数之一是 Color 对象。 若要绘制不透明的线条&#xff0c;请将颜色的 alpha 分量设置为 255。 若要绘制半透明的线条&#xff0c;请将 alpha 分量设置为从 1 到 254 的任何值。 在…...

L4-Prompt-Delta

Paper List PromptPapers:https://github.com/thunlp/PromptPapersDeltaPapers: https://github.com/thunlp/DeltaPapers Programming Toolkit OpemPrompt: https://github.com/thunlp/OpenPromptOpenDelta: https://github.com/thunlp/OpenDelta 一、传统微调方法&#xff1…...

Qt 自定义控件(Qt绘图)

一、QPaintEvent绘图事件1、QPaintEvent是Qt框架中一个重要的事件类&#xff0c;专门用于处理绘图事件。 2、当Qt视图组件需要重绘自己的一部分时&#xff0c;就会产生QPaintEvent事件。 3、Qt视图组件重绘自己&#xff0c;通常发生在以下情况: (1)、窗口第一次显示时: 当窗…...

electron 上怎么用node 调用 c++ 提供的方法

背景 在 Electron 上调用 C 代码的场景主要出现在需要执行高性能、低延迟的任务&#xff0c;或者需要与现有的本地 C 库集成时。这些场景往往涉及底层系统交互、性能优化或跨平台兼容性需求。 我们都知道c 的性能和安全性都比JavaScript 要高&#xff0c;但我认为在 Electron …...

Chromium 132 编译指南 Windows 篇 - Git 初始化设置 (四)

1. 引言 在 Chromium 编译指南系列的前几篇文章中&#xff0c;我们已经完成了编译环境的基础设置和关键环境变量的配置。本篇将重点介绍 Git 的安装与初始化配置&#xff0c;这是获取和管理 Chromium 源代码的重要前提。 2. 安装 Git 在 Windows 环境下&#xff0c;Git 并不…...

day03-前端Web-Vue3.0基础

目录 前言1. Vue概述2. 快速入门2.1 需求2.2 步骤2.3 实现 3. Vue指令3.1 介绍3.2 v-for3.2.1 介绍3.2.2 演示3.2.3 v-for的key3.2.4 案例-列表渲染 3.3 v-bind3.3.1 介绍3.3.2 演示3.3.3 案例-图片展示 3.4 v-if & v-show3.4.1 介绍3.4.2 案例-性别职位展示 3.6 v-model3.…...

Windows 下Mamba2 / Vim / Vmamba 环境安装问题记录及解决方法终极版(无需绕过triton)

导航 安装教程导航 Mamba 及 Vim 安装问题参看本人博客&#xff1a;Mamba 环境安装踩坑问题汇总及解决方法&#xff08;初版&#xff09;Linux 下Mamba 及 Vim 安装问题参看本人博客&#xff1a;Mamba 环境安装踩坑问题汇总及解决方法&#xff08;重置版&#xff09;Windows …...

GitLab本地服务器配置ssh和克隆项目

1. 本地安装好git git链接&#xff1a;https://git-scm.com/downloads/win 无脑点击下一步安装即可,打开Git Bash命令终端如下&#xff1a; 2. 配置本地用户名和邮箱 git config --global user.name "你的名字" git config --global user.email "你的邮箱&quo…...

网站建设公司十大/小红书关键词搜索量查询

一、首次适应算法&#xff08;First Fit——FF&#xff09; 算法思想&#xff1a; 每次都从低地址查找&#xff0c;找到第一个能满足大小的空闲分区。 如何实现&#xff1a; 空闲分区以地址递增的顺序排列每次分配内存时从低地址顺序查找空闲分区链&#xff08;空闲分区表&…...

时时彩网站建设教程/东莞百度快照优化排名

备个份 最后生成的安装包exe获取位置在&#xff1a;...

黑群晖的做网站文件/seo小白入门

在做算法的过程中经常终端传来的是jpeg图片&#xff0c;需要将jpeg解码为yuv再进行处理。这里使用jpeg-6b交叉编译&#xff0c;然后进行解码&#xff0c;下面是解码的过程&#xff1a;#include <ctype.h> #include <errno.h> #include <unistd.h> #include &…...

常州建站软件/seo推广技术培训

文章目录Java锁synchronized关键字学习系列之偏向锁升级无锁偏向锁原理批量重偏向和批量撤销偏向锁升级偏向锁升级轻量级锁偏向锁升级重量级锁参考源代码Java锁synchronized关键字学习系列之偏向锁升级 前面几篇博文已经简单介绍了偏向锁了。《Java锁synchronized关键字学习系…...

网站建设要注意/网络营销和网络推广

上一篇讲到游戏运作的原理是非常简单的,实现一个五子棋很可能只需要使用操作系统提供的原生开发环境,简单的做一些代码实现即可完成,我自己在大学的时候就找到了一个一步一步教你使用Windows API开发一个五子棋游戏的教程,需要用到的也只需要安装一个visual studio顺便安装…...

在哪个国家做垂直网站好/营业推广的方式

按键精灵将表格录入网页.doc按键精灵将表格录入网页篇一&#xff1a;基于按键精灵的自动输入程序的实现2012.3.1基于按键精灵的自动输入程序的实现高琪琪(无锡职业技术学院 江苏 无锡 214121)摘要&#xff1a;本文讨论如何通过按键精灵读取excel表格中的内容&#xff0c;之后通…...