离线安装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的一些基础用法,后期会继续进行更新。

相关推荐
晴天飛 雪1 天前
Grafana监控PostgreSQL
数据库·postgresql·grafana
大虾别跑1 天前
docker安装zabbix +grafana
docker·zabbix·grafana
菜鸟挣扎史2 天前
grafana+prometheus+windows_exporter实现windows进程资源占用的监控
windows·grafana·prometheus·进程·process
tester Jeffky3 天前
JMeter监听器与压测监控之Grafana
jmeter·eureka·grafana
牙牙7053 天前
Prometheus结合K8s(二)使用
容器·kubernetes·prometheus
牙牙7054 天前
Prometheus结合K8s(一)搭建
容器·kubernetes·prometheus
福大大架构师每日一题4 天前
32.2 prometheus倒排索引统计功能
ios·iphone·prometheus
DB菜鸟6 天前
Grafana Username password invalid
java·服务器·grafana
让生命变得有价值6 天前
使用 Grafana api 查询 Datasource 数据
grafana·prometheus
福大大架构师每日一题6 天前
31.3 XOR压缩和相关的prometheus源码解读
prometheus