离线安装prometheus与Grafana实现可视化监控
简介
prometheus 是一个专为云环境设计的开源系统监控和警报工具,它收集并存储多维度的时间序列数据,通过PromQL查询语言提供强大的数据检索能力,并支持可视化及警报功能。而 Grafana 则是一个开源的数据可视化平台,能够与包括Prometheus在内的多种数据源无缝集成,将复杂的数据转化为直观易懂的图表和仪表板,帮助用户快速洞察系统状态,优化决策过程。
安装部署
步骤 1:准备离线安装包
下载 Prometheus 和 Grafana 的安装包:
需要在一台可以访问互联网的机器上下载 Prometheus 和 Grafana 的二进制文件以及它们的依赖项。
下载所需的 .tar.gz 文件并将其复制到目标机器上。
将下载的文件传输到目标服务器:
使用 SCP 或其他文件传输工具将文件传输到目标 Ubuntu 20.04 服务器。
prometheus下载地址:https://prometheus.io/download/
Grafana下载地址:https://grafana.com/grafana/download
步骤 2:编写离线安装脚本
以下是一个示例 Bash 脚本:
#!/bin/bash# 设置安装目录
PROMETHEUS_VERSION="2.53.2"
GRAFANA_VERSION="10.2.0"INSTALL_DIR="/usr/local"# 解压 Prometheus
echo "解压 Prometheus..."
tar -xzf prometheus-$PROMETHEUS_VERSION.linux-amd64.tar.gz -C $INSTALL_DIR# 创建软链接
ln -s $INSTALL_DIR/prometheus-$PROMETHEUS_VERSION.linux-amd64 $INSTALL_DIR/prometheus# 创建 Prometheus 用户
useradd --no-create-home --shell /bin/false prometheus# 设置权限
chown -R prometheus:prometheus $INSTALL_DIR/prometheus-$PROMETHEUS_VERSION.linux-amd64# 配置 Prometheus 服务
cat <<EOF | tee /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=$INSTALL_DIR/prometheus/prometheus \--config.file=$INSTALL_DIR/prometheus/prometheus.yml \--storage.tsdb.path=$INSTALL_DIR/prometheus/data[Install]
WantedBy=multi-user.target
EOF# 解压 Grafana
echo "解压 Grafana..."
tar -xzf grafana-enterprise-$GRAFANA_VERSION.linux-amd64.tar.gz -C $INSTALL_DIR# 创建软链接
ln -s $INSTALL_DIR/grafana-$GRAFANA_VERSION $INSTALL_DIR/grafana# 配置 Grafana 服务
cat <<EOF | tee /etc/systemd/system/grafana.service
[Unit]
Description=Grafana
Wants=network-online.target
After=network-online.target[Service]
User=root
Group=root
Type=simple
ExecStart=$INSTALL_DIR/grafana/bin/grafana-server \--config=$INSTALL_DIR/grafana/conf/defaults.ini \--homepath=$INSTALL_DIR/grafana[Install]
WantedBy=multi-user.target
EOF# 重新加载 systemd 配置
echo "重新加载 systemd 配置..."
systemctl daemon-reload# 启动并启用 Prometheus 和 Grafana
echo "启动 Prometheus..."
systemctl start prometheus
systemctl enable prometheusecho "启动 Grafana..."
systemctl start grafana
systemctl enable grafanaecho "安装完成!Prometheus 和 Grafana 已启动并配置为开机自启。"
步骤 3:执行脚本
赋予脚本执行权限:
chmod +x install_prometheus_grafana.sh
运行脚本进行安装:
sudo ./install_prometheus_grafana.sh
步骤 4:验证安装
通过浏览器访问 http://<你的服务器IP>:3000 验证 Grafana 是否成功运行。
通过 http://<你的服务器IP>:9090 验证 Prometheus 是否成功运行。

ps:Grafana默认语言为英文,可以设置 Home - 》Administration-》Default preferences,将语言更改为中文,默认账户密码皆为admin。
步骤5:客户端安装
首先将下载的文件传输到目标服务器,本次教程主要演示node_exporter安装,下面是安装脚本:
#!/bin/bash# 设置 Node Exporter 版本号和安装目录
NODE_EXPORTER_VERSION="1.8.2"
INSTALL_DIR="/usr/local/bin"
NODE_EXPORTER_ARCHIVE="node_exporter-$NODE_EXPORTER_VERSION.linux-amd64.tar.gz"
NODE_EXPORTER_USER="node_exporter"# 检查二进制文件是否存在
if [ ! -f "$NODE_EXPORTER_ARCHIVE" ]; thenecho "Node Exporter 二进制文件未找到:$NODE_EXPORTER_ARCHIVE"exit 1
fi# 解压 Node Exporter 文件
echo "解压 Node Exporter..."
tar -xzf "$NODE_EXPORTER_ARCHIVE" -C /tmp/# 移动二进制文件到安装目录
echo "安装 Node Exporter 到 $INSTALL_DIR..."
sudo mv /tmp/node_exporter-$NODE_EXPORTER_VERSION.linux-amd64/node_exporter $INSTALL_DIR/# 创建 node_exporter 用户(如果尚未创建)
if getent passwd "$NODE_EXPORTER_USER" > /dev/null 2>&1; thenecho "用户 $NODE_EXPORTER_USER 已存在。"
elsesudo useradd --no-create-home --shell /bin/false $NODE_EXPORTER_USERecho "用户 $NODE_EXPORTER_USER 已创建。"
fi# 设置二进制文件权限
sudo chown $NODE_EXPORTER_USER:$NODE_EXPORTER_USER $INSTALL_DIR/node_exporter# 创建 systemd 服务文件
echo "创建 Node Exporter 服务..."
sudo tee /etc/systemd/system/node_exporter.service > /dev/null <<EOF
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target[Service]
User=$NODE_EXPORTER_USER
Group=$NODE_EXPORTER_USER
Type=simple
ExecStart=$INSTALL_DIR/node_exporter[Install]
WantedBy=multi-user.target
EOF# 重新加载 systemd 并启动 Node Exporter 服务
echo "启动 Node Exporter 服务..."
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter# 清理临时文件
echo "清理临时文件..."
rm -rf /tmp/node_exporter-$NODE_EXPORTER_VERSION.linux-amd64# 检查服务状态
sudo systemctl status node_exporterecho "Node Exporter 已成功安装并启动。"
脚本运行成功后可以使用“ss -ntulp | grep 9100”来验证程序是否正常启动。
具体操作
1、普罗米修斯服务端配置文件添加监控项
sudo vim /usr/local/prometheus/prometheus.yml
- job_name: "linux"static_configs:- targets: ["192.168.188.148:9100"] # 若需要添加多个节点,需要使用“,”分开

重启prometheus服务:
sudo systemctl restart prometheus.service
打开普罗米修斯自带的监控页面,Status -> Targets 查看:

2、Grafana 展示 Prometheus 数据
首先,在Configuration -> Data Sources ->add data source -> Prometheus这个选项下面添加数据源:


然后,新增Dashboard Linux基础数据展示:

导入模板:


ps:本次测试所使用模板是在https://grafana.com/grafana/dashboards中下载的相应dashboards的id为8919的模板。
仪表板效果图展示:

本次测试只是单独介绍了监控Linux的一些基础用法,后期会继续进行更新。

相关文章:
离线安装prometheus与Grafana实现可视化监控
简介 prometheus 是一个专为云环境设计的开源系统监控和警报工具,它收集并存储多维度的时间序列数据,通过PromQL查询语言提供强大的数据检索能力,并支持可视化及警报功能。而 Grafana 则是一个开源的数据可视化平台,能够与包括Pr…...
【Python学习-UI界面】PyQt5 小部件7-QSpinBox 计数器
样式如下: 一个 QSpinBox 对象向用户呈现一个文本框,右侧有一个上下按钮,显示一个整数。如果按下上下按钮,文本框中的值将增加/减少。 默认情况下,框中的整数从0开始,最高到99,并以步长1变化。对于浮点数…...
[二次元]个人主页搭建
文章目录 域名买一个免费的 框架HexoHexo-Theme-ParticleX Halo 参考 域名 买一个 有钱人玩这个 免费的 github.io 教程在github官方文档有; 框架 Hexo 静态的 Hexo-Theme-ParticleX Argvchsの小窝 Halo 动态的 halo 参考 基于Hexo框架的GitHub个人主页…...
Spring Data JPA 自动创建时间的相关注解和用法
以Springboot项目为例 在实体类上加上注解 EntityListeners(AuditingEntityListener.class)在相应的字段上添加对应的时间注解 LastModifiedDate 和 CreatedDateApplication启动类中添加注解 EnableJpaAuditing...
Java基础之隐式类型转换
类型转换 基本数据类型表示范围大小排序: 在变量赋值及算术运算的过程中,经常会用到数据类型转换,其分为两类: 隐式类型转换 显式类型转换 1 隐式类型转换 情形1:赋值过程中,小数据类型值或变量可以直…...
【数据结构与算法 | 图篇】Dijkstra算法(单源最短路径算法)
1. 前言 由图: 如果我们想要求得节点1到节点5(也可以是其他节点)的最短路径,我们可以使用Dijkstra算法。 2. 步骤与思路 1. 将所有顶点标记为未访问(顶点类的visited属性设置为false)。创建一个未访问顶点的集合。 2. 为每个顶…...
windows c转linux c要做的事情。
写在开头: 最近的copy项目要转到windows版本了,一直在跟进做这个事情。 直入主题说下移植过程中可能涉及以下几个方面的调整: 编译器和工具链的更改:Windows和Linux使用不同的编译器和工具链,因此需要在Windo…...
【高等代数笔记】002.高等代数研究对象(二)
1. 高等代数的研究对象 1.4 一元高次方程的求根 a n x n a n − 1 x n − 1 . . . a 1 x a 0 0 a_{n}x^{n}a_{n-1}x^{n-1}...a_{1}xa_{0}0 anxnan−1xn−1...a1xa00 等式左边是一元多项式。 所有一元多项式组成的集合称为一元多项式环。...
ubuntu服务器部署的mysql本地连不上的问题
试过了网上的所有方法,都连不上,可以执行: SELECT user, host, plugin FROM mysql.user WHERE user root; 查一下:plungin这个连接插件是不是auth_socket, auth_socket是只能本地连接的插件,需要修改: ALTER USER root% IDENTIFIED WITH mysql_native_password BY your_pass…...
python redis安装
python redis安装 #方法1、 sudo apt-get install redis-server python 支持包: (其实就一个文件,搞过来就能用) sudo apt-get install python-redis #方法2、 sudo pip install redis...
YJ0043定制版抖音电商卷抢购系统带回收商城抖音电商优惠卷投资理财系统
系统是基于逍遥商城二开的系统,pc手机端都新增了邀请码验证 手机端重新定制的UI,前端产品不至于抖音卷也可以自行更改其他产品 用户前端下单,后台订单可以直接回收,后台支持设置默认邀请码和抢卷时间限制...
如何选择图片和视频
文章目录 1. 概念介绍2. 方法与细节2.1 实现方法2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何选择视频文件"相关的内容,本章回中将介绍如何混合选择图片和视频文件.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我…...
html+css网页制作 电商华为商城首页 ui还原度100%
htmlcss网页制作 电商华为商城首页 ui还原度100% 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码…...
EDAS(企业级应用服务)
1 :介绍 1:edas 提供了应用,开发,部署,监控,运维。同时支持 spring cloud, dubbo ,HSF 2:Ali-Tomcat 基于tomcat改造的Servlet容器。支持原有功能,它在启动时会自动加载Pandora(潘多拉&#x…...
简单工厂,工厂方法 和 抽象工厂
这三种模式, 都是创建类型的模式, 将对象的创建流程封装起来供客户调用 简单工厂模式 简介: 和策略模式一样,就是针对不通的参数, 返回不通的实例而已 问题: 没有遵循开闭原则, 如果我们想增加一种类, 那…...
python 压力测试脚本
需求: 生成一个12位不重复的随机数将随机数赋值给Json 串中的 orderCode字段将Json用ECB 指定 key为bJXQezYtR4ZSNK4p进行加密并作为值传给{ “data”: “” }设置每秒30个并发持续1分钟调用接口接口输出测试测试报告 代码示例 import json import random import…...
【Linux】多线程7——线程池
1.线程池的概念 1.1.池化技术 池化技术指的是提前准备一些资源,在需要时可以重复使用这些预先准备的资源。 在系统开发过程中,我们经常会用到池化技术。通俗的讲,池化技术就是:把一些资源预先分配好,组织到对象池中…...
Linux Shell实例
1.查空行 答案: awk /^$/{print NR} file1.txt#awk:一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析#处理。 #1)基本语法 #awk [选项参数]/pattern1/{action1} /pattern…...
Linux~MySQL数据库具体操作
一、数据库的字符集编码设置 (一)查看数据库默认的字符集 MariaDB [(none)]> show variables like %character%; ------------------------------------------------------ | Variable_name | Value | ------------…...
Unity WebGL平台Hybrid Generate All报错undefined symbol sendfile
详细报错信息如下: Library\Bee\artifacts\WebGL\build\debug_WebGL_wasm\build.js: undefined symbol: sendfile (referenced by top-level compiled C/C code) UnityEditor.BuildPipeline:BuildPlayer (UnityEditor.BuildPlayerOptions) HybridCLR.Editor.Comman…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
