编辑
2025-05-24
普罗米修斯监控
00
请注意,本文编写于 357 天前,最后修改于 356 天前,其中某些信息可能已经过时。

目录

普罗米修斯+grafana的搭建
实验环境
1.系统环境设置
设置阿里源并更新
设置时间同步
设置主机名
1. 安装普罗米修斯
在controller1与controller2上执行以下操作
下载普罗米修斯
创建普罗米修斯systemd服务
设置服务自启
验证Prometheus
2. 安装grafana
在controller1与controller2上执行以下语句
安装依赖
添加grafana的公钥
添加grafana源与指定签名文件
更新源与安装grafana
设置grafana自启
访问web端验证grafana
配置grafana数据源
grafana导入仪表盘
3. 安装Prometheus export
在node1与node2上执行以下操作
4. 配置Prometheus
在controller1与controller2上执行以下操作
创建存放target的目录
修改Prometheus配置文件
5. 搭建完成

普罗米修斯+grafana的搭建

实验环境

本实验以监控端controller1、controller2 被控端node1、node2为实验环境

系统版本 Ubuntu22

1.系统环境设置

设置阿里源并更新

设置时间同步

设置主机名

1. 安装普罗米修斯

在controller1与controller2上执行以下操作

下载普罗米修斯
SHELL
# 下载 wget https://github.com/prometheus/prometheus/releases/download/v2.53.4/prometheus-2.53.4.linux-amd64.tar.gz # 解压 tar -xzf prometheus-2.53.4.linux-amd64.tar.gz cd prometheus-2.53.4.linux-amd64 # 移动主程序 sudo cp prometheus promtool /usr/local/bin/ # 创建配置目录并复制配置 sudo mkdir -p /etc/prometheus /var/lib/prometheus sudo cp -r consoles console_libraries prometheus.yml /etc/prometheus/ # 创建 prometheus 用户(可选) sudo useradd -rs /bin/false prometheus # 设置权限 sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus sudo chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtool
创建普罗米修斯systemd服务
SHELL
sudo tee /etc/systemd/system/prometheus.service > /dev/null <<EOF [Unit] Description=Prometheus Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/prometheus \\ --config.file=/etc/prometheus/prometheus.yml \\ --storage.tsdb.path=/var/lib/prometheus/ \\ --web.console.templates=/etc/prometheus/consoles \\ --web.console.libraries=/etc/prometheus/console_libraries [Install] WantedBy=multi-user.target EOF
设置服务自启
SHELL
sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl enable prometheus sudo systemctl start prometheus
验证Prometheus

如果安装与配置正常,此时访问服务器IP:9090会看到以下页面

image.png

2. 安装grafana

在controller1与controller2上执行以下语句

安装依赖
SHELL
sudo apt-get update sudo apt-get install -y curl gnupg2 software-properties-common
添加grafana的公钥
SHELL
curl -fsSL https://packages.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana.gpg > /dev/null
添加grafana源与指定签名文件
SHELL
echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list > /dev/null
更新源与安装grafana
SHELL
sudo apt-get update sudo apt-get install -y grafana
设置grafana自启
SHELL
sudo systemctl daemon-reexec sudo systemctl enable --now grafana-server
访问web端验证grafana

如果安装与配置正常,此时访问服务器IP:3000会看到以下页面,默认账密admin/admin,记得修改复杂密码

image.png

配置grafana数据源

image.png

image.png

image.png

grafana导入仪表盘

3. 安装Prometheus export

在node1与node2上执行以下操作

SHELL

脚本

SHELL
#!/bin/bash # 定义版本和下载地址 VERSION="1.9.1" DOWNLOAD_URL="https://github.com/prometheus/node_exporter/releases/download/v${VERSION}/node_exporter-${VERSION}.linux-amd64.tar.gz" # 下载并解压 cd /opt || exit 1 wget -O node_exporter.tar.gz "$DOWNLOAD_URL" tar -xzf node_exporter.tar.gz mv node_exporter-${VERSION}.linux-amd64 /usr/local/node_exporter rm -f node_exporter.tar.gz # 创建 systemd 服务 cat <<EOF | sudo tee /etc/systemd/system/node_exporter.service [Unit] Description=Node Exporter After=network.target [Service] User=nobody ExecStart=/usr/local/node_exporter/node_exporter [Install] WantedBy=multi-user.target EOF # 启动并设置开机自启 sudo systemctl daemon-reload sudo systemctl enable --now node_exporter # 显示状态 sudo systemctl status node_exporter --no-pager

如果安装与配置正常,此时访问服务器IP:9100会看到以下页面 image.png

4. 配置Prometheus

在controller1与controller2上执行以下操作

创建存放target的目录
SHELL
mkdir /etc/prometheus/targets
修改Prometheus配置文件
SHELL
sudo nano /etc/prometheus/prometheus.yml

在文件底部增加配置

SHELL
- job_name: "node_exporters_dynamic" file_sd_configs: - files: - /etc/prometheus/targets/*.yml refresh_interval: 30s

在/etc/prometheus/targets文件夹中新增节点配置

SHELL
nano /etc/prometheus/targets/node1.yml

添加

SHELL
# /etc/prometheus/targets/node1.yml - targets: - 192.168.1.103:9100 labels: instance: node1

脚本

SHELL
#!/bin/bash # 检查参数数量 if [ "$#" -ne 2 ]; then echo "用法: $0 <节点名> <IP地址>" echo "示例: $0 node1 192.168.1.101" exit 1 fi # 读取参数 NODE_NAME="$1" IP="$2" TARGET_DIR="/etc/prometheus/targets" FILE_PATH="$TARGET_DIR/${NODE_NAME}.yml" # 创建目标目录(如果不存在) mkdir -p "$TARGET_DIR" # 写入文件内容 cat > "$FILE_PATH" <<EOF # ${FILE_PATH} - targets: - ${IP}:9100 labels: instance: ${NODE_NAME} EOF echo "已生成配置文件: $FILE_PATH"

image.png

5. 搭建完成

结果图如下

image.png

此教程采用双监控,拆分监控配置为单节点对应单文件,降低运维难度 grafana中文面板ID:22869