搭建基于Grafana+Prometheus+Node_exporter的性能监控与分析平台(Linux版)

在现代IT环境中,系统监控与分析是确保应用稳定性和高效性的关键。Prometheus与Grafana的结合,为我们提供了一个强大而灵活的监控解决方案,能够实时地收集、处理并展示系统性能指标。本文将详细介绍如何在Linux环境下搭建基于Grafana、Prometheus和Node_exporter的性能监控与分析平台。

一、平台组件概述

1.Node_exporter

Node_exporter是一个轻量级的数据采集器,专门用于Linux系统,收集CPU、内存、磁盘、网络等硬件和操作系统级别的性能指标。它通过HTTP服务以Prometheus可理解的格式提供这些数据,是Prometheus监控生态系统中的重要一环。

2.Prometheus

Prometheus是一个开源的监控和警报工具,负责从配置的目标(如Node_exporter)中抓取度量指标数据,并将其存储在自己的时间序列数据库中。在性能监控平台中,Prometheus作为数据收集、存储和查询的中心,与Grafana等可视化工具协同工作,提供全面的系统监控能力。

3.Grafana

Grafana是一个开源的监控和数据分析平台,支持多种数据源,并提供了丰富的图表和可视化选项。通过Grafana,我们可以轻松地将Prometheus中的性能测试数据以图表形式展示出来,实现实时监控和数据分析。

二、平台搭建步骤

1. 安装并启动Node_exporter

Node_exporter官网下载地址:https://prometheus.io/download/#node_exporter

选择Linux版本进行下载

# 进入创建的文件夹
cd /opt/performance # 下载 node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz # 解压
tar xvfz node_exporter-1.8.2.linux-amd64.tar.gz # 进入到启动脚本位置
cd node_exporter-1.8.2.linux-amd64/ # node_exporter服务默认运行端口为9100
nohup ./node_exporter & # 若9100端口被占用,使用以下命令指定端口运行服务
nohup ./node_exporter --web.listen-address=:9101 &

我们浏览器访问被监控服务器的9101端口,出现该页面,说明成功

如果浏览器无法访问该端口,可能是该端口的防火墙未开放

# 使用firewalld关闭防火墙

# 永久允许访问9100端口
sudo firewall-cmd --permanent --zone=public --add-port=9100/tcp # 重新加载防火墙配置
sudo firewall-cmd --reload

2. 安装和配置Prometheus

Prometheus官网下载地址:https://prometheus.io/download/#/prometheus

# 进入创建的文件夹
cd /opt/performance # 下载 Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v3.0.0-beta.0/prometheus-3.0.0-beta.0.linux-amd64.tar.gz # 解压
tar -zxvf prometheus-3.0.0-beta.0.linux-amd64.tar.gz # 进入文件夹
cd prometheus-3.0.0-beta.0.linux-amd64/ # 启动prometheus
nohup ./prometheus --config.file=prometheus.yml &

我们浏览器访问9090端口,出现该页面,说明安装成功

将Node_exporter输出配置到Prometheus中

vim prometheus.yml
  • job_name: 任意字符串,可以理解为一个标识符
  • targets: node_exporter服务列表(ip + 端口号),可以多个

重启Prometheus服务

# 查找 Prometheus 进程ID
ps aux | grep prometheus # 强制停止Prometheus进程
kill -9 [PID] # 重新启动Prometheus服务
nohup ./prometheus --config.file=prometheus.yml &

我们浏览器再次访问9090端口,并如下图点击目录,该页面中出现我们配置好的node_exporter,说明配置成功

3. 安装和配置Grafana

Grafana 官网下载地址:https://grafana.com/grafana/download

# 进入创建的文件夹
cd /opt/performance # 下载 grafana
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-11.1.3.linux-amd64.tar.gz # 解压
tar -zxvf grafana-enterprise-11.1.3.linux-amd64.tar.gz # 进入文件夹
cd grafana-v11.1.3 # 修改配置文件,如下图修改启用端口为8990
vim conf/defaults.ini

# 启动服务
./bin/grafana-server &

访问页面,成功显示。用户名 & 密码 均为 admin

4. 创建仪表板和分析视图

I. 添加数据源

点击 Configuration -> Data sources 进入数据源界面,再点击 Add data source 进入新增数据源界面。

点击 Prometheus,创建Prometheus数据源。

根据下面的图片提示,填写表单:

点击 Save & test

II. 创建仪表盘

点击 Dashboards -> Browse 进入仪表盘界面,再点击 New - > import 进入导入仪表盘界面。

仪表盘模板大全:https://grafana.com/grafana/dashboards/

可根据关键字查询想要的一些模板

点击详情可获取id或获取json文件,若配置环境无网络情况下选择json文件。

我这里输入仪表盘ID:12633,点击导入仪表盘。

选择刚刚配置好的数据源,点击 Import 导入仪表盘。

点击 Import 后,展示如下页面。

后续可以在 Dashboards 页面中点击查看该仪表盘。

三、平台应用与优势

  • 应用场景

    • 实时监控:通过Grafana的仪表板,可以实时监控应用的性能指标,及时发现潜在的性能问题。
    • 历史数据分析:利用Prometheus存储的历史数据,可以进行更深入的性能分析,找出性能瓶颈和趋势。
    • 性能调优:基于监控和分析结果,对应用进行性能调优,提升用户体验。
  • 优势
    • 开源免费:Node_exporter、Prometheus和Grafana都是开源软件,可以免费使用,降低了成本。
    • 灵活可扩展:平台支持自定义测试脚本和查询语句,可以根据实际需求进行灵活配置和扩展。
    • 可视化效果好:Grafana提供了丰富的图表和可视化选项,能够直观地展示性能测试数据。

注:安装方法不唯一,且各个教程安装版本也不相同

搭建基于Grafana+Prometheus+Node_exporter的性能监控与分析平台(Linux版)的更多相关文章

  1. web性能监控与分析

    注:原文为:andyguo: <web性能监控与分析> 性能测试需要使用不同的工具,结合系统日志,监控服务器.应用等方面的多项指标.以下阐述监控指标.监控工具.瓶颈分析. 服务端监控指标 ...

  2. Linux性能监控与分析之--- CPU

    Linux性能监控与分析之--- CPU 望月成三人关注 2016.07.25 18:16:12字数 1,576阅读 2,837 CPU性能指标 用户进程使用CPU的比率 系统进程使用CPU的比率 W ...

  3. 视频监控安防平台-GB28181-2016版-移动位置订阅

    视频监控安防平台-GB28181-2016版-移动位置订阅 郑重声明: 本位来自 CSDN博主「沉睡的思绪」,查看原文,请点击下面链接,原文链接:https://blog.csdn.net/songx ...

  4. Grafana+Prometheus+node_exporter监控,Grafana无法显示数据的问题

    环境搭建: 被测linux机器上部署了Grafana,Prometheus,node_exporter,并成功启动了它们. Grafana中已经创建了Prometheus数据源,并测试通过,并且导入了 ...

  5. 硬件监控:grafana+prometheus+node_exporter

    一.前期准备: grafana:前端展示平台,没有数据存储功能,但是,它有不同的展示模板,然后,把后端数据库中提供的数据,进行展示 -->展示数据 prometheus(普罗米修斯):时序数据库 ...

  6. Grafana+Prometheus打造全方位立体监控系统

    前言 本文主要介绍如何使用Grafana和Prometheus以及node_exporter对Linux服务器性能进行监控.下面两张图分别是两台服务器监控信息: 服务器A 服务器B 概述 Promet ...

  7. .Net Core 2.*+ InfluxDB+Grafana+App Metrics实时性能监控

    前言 .net core 2.* 实施性能监控 这个工具其实给运维 大大们用起来是更爽的.但是Grafana现在还没有找到中文版. 本文需要了解的相关技术与内容: InfluxDb(分布式时序数据库, ...

  8. Go 程序的性能监控与分析 pprof

    你有没有考虑过,你的goroutines是如何被go的runtime系统调度的?是否尝试理解过为什么在程序中增加了并发,但并没有给它带来更好的性能?go执行跟踪程序可以帮助回答这些疑问,还有其他和其有 ...

  9. 使用Flask搭建基于unittest的简单用例挑选及执行平台

    在用例组织上,unittest的Test Suite的拥有非常好的灵活性,然而Test Suite一般要提前编制好,添加和组织用例必须使用代码,不方便使用. 本文使用 Flask + unittest ...

  10. 使用 Prometheus + Grafana 对 Kubernetes 进行性能监控的实践

    1 什么是 Kubernetes? Kubernetes 是 Google 开源的容器集群管理系统,其管理操作包括部署,调度和节点集群间扩展等. 如下图所示为目前 Kubernetes 的架构图,由 ...

随机推荐

  1. python之gevent

    gevent 是一个基于协程的 Python 网络库,它使用 Greenlet 库提供了一种高效的协程实现. 协程是一种轻量级的线程,允许并发执行,但没有真正的并行性.协程可 以在遇到 I/O 操作时 ...

  2. 第十四届蓝桥杯省赛C++B组--接龙序列

    接龙序列 我们称序列中\(a_i\)的首位数字恰好是\(a_{i-1}\)的末尾数字,这样的序列叫做接龙序列,比如12 23 35 57,所有长度为1的整数序列都是接龙序列,现在给定一个长度为\(n\ ...

  3. Educational Codeforces Round 102 (Rated for Div

    Educational Codeforces Round 102 (Rated for Div. 2) No More Inversions 给定\(k\),序列\(a\)长度为\(n\):\(1,2 ...

  4. ZCMU-1120

    就这样 #include<cmath> #include<cstdio> #include<iostream> using namespace std; int m ...

  5. 【C++】static 知识整理 【静态与局部静态】

    目录 类外 类内 局部静态 local static 类外 类内 类外 C++的静态可以分为两种情况来讨论:在类外和在类内. 对于静态变量/函数,链接将只在内部 (如果不用static,那么在不同文件 ...

  6. 鸿蒙NEXT开发案例:保质期计算

    [引言] 保质期计算应用是一个基于鸿蒙NEXT框架开发的数字和文本统计组件.用户可以输入商品的生产日期和保质期天数,应用会自动计算并展示相关信息,包括保质状态.剩余天数.生产日期和到期日期. [环境准 ...

  7. 【Mybatis】学习笔记02:实现简单的查

    Mybatis02:简单的查 如果你没先去学 增删改 ,然后直接看这篇记录,我想会有些困难.因为该文写的很粗劣,只是简单的截图.所以没基础的建议先去看 [Mybatis]学习笔记01:连接数据库,实现 ...

  8. Chaincode installation on peer0.org1 has failed

    v1.4 版本执行 ./byfn.sh up时,报如下错误 Error: error getting chaincode deployment spec for mycc: error getting ...

  9. Qt/C++编写视频监控系统83-自定义悬浮条信息

    一.前言 一般视频控件上会给出个悬浮条,这个悬浮条用于显示分辨率或者一些用户期望看到的信息,一般常用的信息除了分辨率以外,还有帧率.封装格式.视频解码器名称.音频解码器名称.实时码率等,由于实际的场景 ...

  10. Qt编写安防视频监控系统62-子模块6预置位

    一.前言 预置位功能,只对带有预置位的球机才起作用,有云台的球机未必有预置位,要仔细查看清楚,不清楚可以询问厂家或者查阅手册,在本模块中,可以获取预置位.添加预置位.调用预置位.删除预置位.调用起始位 ...