Administrator
Administrator
发布于 2026-10-13 / 8 阅读
0
0

prometheus+node_exporter+grafana物理部署

服务器192.168.10.212(prometheus+node_exporter+grafana)主服务
监视服务器192.168.10.211,192.168.10.212(包括自身)

一、前期准备

1. 环境检查与依赖安装

先安装部署wegt和tar包,确定已经有该包
yum install -y wget tar

2. 规划目录结构

按照要求部署在/home目录下,创建专属工作目录(后续所有文件均存放于此):

# 创建主目录和子目录(存储配置、数据、安装包)

mkdir -p /home/prometheus/{conf,data,download}

cd /home/prometheus/download

二、下载并解压 Prometheus

1.下载prometheus安装包v2.50

wget https://github.com/prometheus/prometheus/releases/download/v2.50.0/prometheus-2.50.0.linux-amd64.tar.gz
或采用附件上传

2.将压缩包解压到/home/prometheus目录,并简化目录名称(方便后续操作):

# 解压到主目录

tar -zxvf prometheus-2.50.0.linux-amd64.tar.gz -C /home/prometheus/

# 重命名解压目录为prometheus-server(简化标识)

mv /home/prometheus/prometheus-2.50.0.linux-amd64 /home/prometheus/prometheus-server

3. 验证解压结果

# 解压完成后,进入服务目录查看核心文件(确保prometheus可执行文件存在):

cd /home/prometheus/prometheus-server

ls -l | grep prometheus

三、配置 Prometheus 监控目标(核心步骤)

Prometheus 通过prometheus.yml配置监控目标,需要添加192.168.10.212(自身)和192.168.10.211(远程服务器),先将默认配置文件迁移到我们提前创建的 conf 目录,方便后续管理

1. 迁移并编辑配置文件

# 迁移默认配置文件到conf目录

mv /home/prometheus/prometheus-server/prometheus.yml /home/prometheus/conf/

# 编辑配置文件(使用vim编辑器) ,以下代替

vim /home/prometheus/conf/prometheus.yml

# 全局配置(采集间隔、超时时间等)

global:

scrape_interval: 15s # 默认每15秒采集一次监控数据

evaluation_interval: 15s # 每15秒评估一次告警规则

# 告警管理器配置(本次暂不启用,保留默认)

alerting:

alertmanagers:

- static_configs:

- targets:

- 'alertmanager:9093'

# 加载告警规则文件(本次暂不启用,保留默认)

rule_files:

# - "first_rules.yml"

# - "second_rules.yml"

# 采集配置(核心:配置监控目标)

scrape_configs:

# 任务1:监控 Prometheus 自身运行状态(9090,可选,不影响系统指标展示)

- job_name: "prometheus-self"

static_configs:

- targets: ["192.168.2.153:9090"]

# 任务2:监控 153 自身系统硬件指标(核心:采集 Node Exporter 9100)

- job_name: "server-153"

static_configs:

- targets: ["192.168.2.153:9100"] # 153 的 Node Exporter 端口

# 任务3:监控 152 服务器系统硬件指标(已正常工作)

- job_name: "server-152"

static_configs:

- targets: ["192.168.2.152:9100"]

# 任务4:监控 151 服务器系统硬件指标(已正常工作)

- job_name: "server-151"

static_configs:

- targets: ["192.168.2.151:9100"]

# 任务5:监控 151 服务器msyql数据库硬件指标

- job_name: '151主数据库mysql8'

static_configs:

- targets: ['192.168.2.151:9104']

# 任务6:监控 152 服务器msyql数据库硬件指标

- job_name: '152从数据库mysql8'

static_configs:

- targets: ['192.168.2.152:9104']

# 保持原有的配置不动,新增下面的 job

- job_name: 'mysql' # 这里的名字必须是 'mysql'

static_configs:

- targets: ['192.168.2.151:9104'] # 指向你的 Exporter 服务器 IP

# 下面这段 relabel 是为了让 Dashboard 12826 能识别实例名

metric_relabel_configs:

- source_labels: [__address__]

target_label: instance


备注执行验证语法命令
/home/prometheus/prometheus-server/promtool check config /home/prometheus/conf/prometheus.yml

四、安装 Node Exporter(获取服务器硬件 / 系统指标)

Prometheus 自身无法直接采集服务器的 CPU、内存、磁盘等硬件指标,需要安装Node Exporter(Prometheus 官方的系统指标采集工具),两台服务器都需要安装(192.168.10.212和192.168.10.211)。
步骤 1:下载并解压 Node Exporter
# 进入/home/prometheus/download目录

mkdir -p /home/prometheus/download && cd /home/prometheus/download

# 下载Node Exporter v1.7.0(稳定版)或者上传附件中node-exporter包

wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz

# 解压到/home/prometheus目录

tar -zxvf node_exporter-1.7.0.linux-amd64.tar.gz -C /home/prometheus/

# 重命名目录简化操作

mv /home/prometheus/node_exporter-1.7.0.linux-amd64 /home/prometheus/node_exporter


步骤 2:验证 Node Exporter 可执行性,出现版本信息即说明文件正常。
/home/prometheus/node_exporter/node_exporter --version

步骤 3:配置 Node Exporter 为系统服务(开机自启、后台运行)

为了方便管理,将 Node Exporter 注册为 systemd 系统服务,两台服务器均执行以下操作:

# 创建系统服务文件

vim /usr/lib/systemd/system/node_exporter.service

# 写入服务配置内容

[Unit]

Description=Prometheus Node Exporter

After=network.target

[Service]

User=root

ExecStart=/home/prometheus/node_exporter/node_exporter

Restart=on-failure

RestartSec=5

[Install]

WantedBy=multi-user.target

重新加载系统服务、启动并设置开机自启

# 重新加载systemd配置

systemctl daemon-reload

# 启动Node Exporter

systemctl start node_exporter

# 设置开机自启

systemctl enable node_exporter

# 验证服务状态(确保active (running))

systemctl status node_exporter

五、启动 Prometheus(192.168.10.212 专属操作)

1. 配置 Prometheus 为系统服务(后台运行 + 开机自启)

# 创建系统服务文件 vim /usr/lib/systemd/system/prometheus.service

[Unit]

Description=Prometheus Monitoring System

After=network.target node_exporter.service

[Service]

User=root

# 指定配置文件路径和数据存储路径(核心参数)

ExecStart=/home/prometheus/prometheus-server/prometheus \

--config.file=/home/prometheus/conf/prometheus.yml \

--storage.tsdb.path=/home/prometheus/data \

--web.listen-address=:9090 \

--web.enable-lifecycle

Restart=on-failure

RestartSec=5

[Install]

WantedBy=multi-user.target

步骤 1:迁移配置文件到正确目录(对齐服务文件配置)

将prometheus.yml从prometheus-server目录迁移到我们提前创建的conf目录(与--config.file参数路径一致):

# 迁移配置文件(覆盖conf目录下可能存在的空文件/旧文件,直接执行即可)

mv /home/prometheus/prometheus-server/prometheus.yml /home/prometheus/conf/

步骤 2:修正配置文件的所属用户和权限(确保 root 可正常读取)

将文件所属用户 / 组改为root,同时确保读取权限正常:

# 更改文件所属用户和组为root

chown root:root /home/prometheus/conf/prometheus.yml

# 确保文件有可读权限(root用户默认有,此命令为兜底)

chmod 644 /home/prometheus/conf/prometheus.yml

步骤 3:验证迁移后的路径正确性(确认对齐服务配置)

执行以下命令,确保配置文件存在于--config.file指定的路径:

# 验证目标路径下的配置文件是否存在

(输出-rw-r--r-- 1 root root 953 1月 13 13:54 /home/prometheus/conf/prometheus.yml即可)

ls -l /home/prometheus/conf/prometheus.yml

#设置prometheus自启动

# 1. 重新加载systemd配置(使service文件修改生效)

systemctl daemon-reload

# 2. 启动prometheus服务

systemctl start prometheus

# 3. 设置开机自启(恢复开机自启功能)

systemctl enable prometheus

# 4. 验证服务状态

systemctl status prometheus

在 192.168.10.212(CentOS 7.6)上部署 Grafana 的完整可执行步骤,全程放在 /home 目录下,和你之前的 Prometheus 保持一致风格

一、下载并安装 Grafana(RPM 方式,最稳定)

Grafana 官方推荐用 RPM 包安装,这样自动配置好 systemd 服务,非常省心。

# 创建下载目录

mkdir -p /home/grafana/download

cd /home/grafana/download

# 下载 Grafana 最新稳定版(v10.2.2)或者使用上传附件包

wget https://dl.grafana.com/oss/release/grafana-10.2.2-1.x86_64.rpm

# 安装(会自动创建 grafana 用户、服务文件、日志目录)

yum install -y grafana-10.2.2-1.x86_64.rpm

安装完成后,Grafana 会自动:

——————————————

  • 安装到 /usr/share/grafana

  • 配置文件在 /etc/grafana

  • 数据在 /var/lib/grafana

  • 日志在 /var/log/grafana

  • 服务名:grafana-server
    ————————————————————————————

  • 二、启动 Grafana 并设置开机自启

  • systemctl daemon-reload

  • systemctl start grafana-server

  • systemctl enable grafana-server

  • systemctl status grafana-server

  • 三、访问 Grafana Web UI

  • Grafana 默认端口是 3000

    打开浏览器访问:

  • http://192.168.10.212:3000

  • 默认账号密码:

    • 用户名:admin

    • 密码:admin

    第一次登录会要求你修改密码

    四、添加 Prometheus 作为数据源

    1. 登录 Grafana 后,点击左侧 Connections → Data sources

    2. 点击 Add data source

    3. 选择 Prometheus

    4. 填写 Prometheus 地址:

    http://192.168.10.212:9090

  1. 点击 Save & test

如果显示 Data source is working,说明 Grafana 已经成功连接 Prometheus。

  • 五、导入经典的 Node Exporter 仪表盘(最常用)

  • Grafana 有一个非常成熟的服务器监控仪表盘,ID 是 1860。

  • 左侧点击 Dashboards → New → Import

  • 输入:1860

  • 点击 Load

  • 选择 Prometheus 数据源

  • 点击 Import

  • 导入成功后,你就能看到:

  • CPU 使用率

  • 内存使用

  • 磁盘 I/O

  • 网络流量

  • 负载

  • 磁盘空间

  • 等完整的服务器监控面板

  • 而且会自动显示 211 和 212 两台服务器 的数据。

  • 部署之后的查看路径

监控mysql方式

进mysql创建账号
CREATE USER 'exporter'@'%' IDENTIFIED BY '123456'; GRANT PROCESS, REPLICATION CLIENT, SELECT ON . TO 'exporter'@'%'; FLUSH PRIVILEGES;

第二步:在宿主机安装 mysqld_exporter
# 下载并解压(适配Linux amd64架构)

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz -O mysqld_exporter.tar.gz或者上传到任意目录,修改名称为mysqld_exporter.tar.gz

#解压

tar xzf mysqld_exporter.tar.gz

sudo cp mysqld_exporter-0.14.0.linux-amd64/mysqld_exporter /usr/local/bin/

# 创建配置文件(替换【你的密码】为第一步设置的密码)

sudo tee /etc/mysqld_exporter.cnf <

[client]

user=exporter

password=【你的密码】

host=127.0.0.1

port=3306

EOF

# 创建systemd服务(允许所有ip监听9104端口 --web.listen-address=:9104)

sudo tee /etc/systemd/system/mysqld_exporter.service <

[Unit]

Description=MySQL Exporter for Docker MySQL

After=network.target

[Service]

User=root

ExecStart=/usr/local/bin/mysqld_exporter --config.my-cnf=/etc/mysqld_exporter.cnf --web.listen-address=:9104

Restart=always

[Install]

WantedBy=multi-user.target

EOF

# 启动并设置自启

sudo systemctl daemon-reload

sudo systemctl enable --now mysqld_exporter

sudo systemctl start mysqld_exporter

# 重启mysql_exporter
systemctl restart mysqld_exporter

# 验证是否采集成功(能看到mysql相关指标就说明OK,ip替换127.0.0.1)

curl http://127.0.0.1:9104/metrics | grep -i "mysql_up"

第三步:配置 Prometheus 采集(假设按上述 Prometheus 已部署,上述放在/home/prometheus/conf/ 目录下)

# 在scrape_configs下添加以下内容(不用改,直接加)

- job_name: 'docker-mysql8'

static_configs:

- targets: ['127.0.0.1:9104'] # 指向宿主机的exporter端口

# 重启Prometheus使配置生效

sudo systemctl restart prometheus

#登录granafa

点击左侧「+」→「Import」;

输入 7362,选择 Prometheus 数据源,点击「Import」;

导入后就能看到这个 docker-mysql8 的全量监控(锁表、QPS/TPS、库表写入等)。


评论