离线安装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 脚本:

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:执行脚本

赋予脚本执行权限:

bash 复制代码
chmod +x install_prometheus_grafana.sh

运行脚本进行安装:

bash 复制代码
sudo ./install_prometheus_grafana.sh

步骤 4:验证安装

通过浏览器访问 http://<你的服务器IP>:3000 验证 Grafana 是否成功运行。

通过 http://<你的服务器IP>:9090 验证 Prometheus 是否成功运行。

ps:Grafana默认语言为英文,可以设置 Home - 》Administration-》Default preferences,将语言更改为中文,默认账户密码皆为admin。
步骤5:客户端安装

首先将下载的文件传输到目标服务器,本次教程主要演示node_exporter安装,下面是安装脚本:

bash 复制代码
#!/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、普罗米修斯服务端配置文件添加监控项

bash 复制代码
sudo vim /usr/local/prometheus/prometheus.yml
- job_name: "linux"
    static_configs:
      - targets: ["192.168.188.148:9100"] # 若需要添加多个节点,需要使用","分开

重启prometheus服务:

bash 复制代码
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的一些基础用法,后期会继续进行更新。

相关推荐
Alone804621 小时前
prometheus概念
prometheus
研究司马懿3 天前
【云原生监控】Prometheus监控系统
云原生·prometheus·监控系统·promesql·企业级监控·二进制部署
wgc891783 天前
监控系列之-Grafana面板展示及制作
grafana
豆瑞瑞3 天前
压测服务器并使用 Grafana 进行可视化
grafana
研究司马懿3 天前
【云原生监控】Prometheus之PushGateway
云原生·prometheus·云原生监控·企业级监控系统·promesql
Aray12344 天前
Using Prometheus+Grafana+VMware-exporter to monitor VMware EXSi Hosts and VMs
grafana·prometheus
行走的山峰4 天前
在grafana上配置显示全部node资源信息概览
grafana
一瓢一瓢的饮 alanchan4 天前
【运维监控】系列文章汇总索引
java·运维·kafka·grafana·prometheus·influxdb·运维监控
MarkHD4 天前
Prometheus+grafana+kafka_exporter监控kafka运行情况
kafka·grafana·prometheus
MarkHD5 天前
Prometheus+grafana监控flink运行情况
flink·grafana·prometheus