离线安装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 prometheus

echo "启动 Grafana..."
systemctl start grafana
systemctl enable grafana

echo "安装完成!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" ]; then
    echo "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; then
    echo "用户 $NODE_EXPORTER_USER 已存在。"
else
    sudo useradd --no-create-home --shell /bin/false $NODE_EXPORTER_USER
    echo "用户 $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_exporter

echo "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的一些基础用法,后期会继续进行更新。
在这里插入图片描述

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓夜残歌

可莉发来一条红包申请!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值