Rocky Linux 9.6 环境下,Prometheus + Grafana 生产级安装手册

Rocky Linux 9.6 环境下,Prometheus + Grafana 生产级安装手册

(适用于 MySQL + sysbench 性能测试场景,可直接照做)。


📌 一、Prometheus + Grafana 简要介绍(摘要版)

Prometheus

开源的监控与告警系统,由 CNCF 维护。

核心特点:

  • 拉取式(pull)采集模型
  • 强大的 PromQL 查询语言
  • 内置 时间序列数据库(TSDB)
  • 生态完善:node_exporter、mysqld_exporter 等丰富插件

非常适合监控系统、MySQL、容器等指标。


Grafana

最流行的可视化工具,可以将 Prometheus 的指标以:

  • 图表
  • 仪表盘
  • 大屏

形式展示,支持告警、分享和权限管理。

Prometheus 负责"收集数据",Grafana 负责"展示数据",两者常搭配构建完整监控平台。


📌 二、安装架构

本教程包含组件:

组件 用途
node_exporter 采集服务器 CPU/内存/磁盘/网络等系统指标
mysqld_exporter 采集 MySQL 指标
Prometheus 汇总并存储 metrics
Grafana 展示监控图表

📌 三、安装 Prometheus(Rocky 9.6)

1. 创建用户

bash 复制代码
sudo useradd --no-create-home --shell /bin/false prometheus

这个命令用于在 Linux 系统中创建一个不可登录的服务专用账户,常用于运行后台服务(如 Prometheus 监控)。各参数含义如下:

  • sudo :以管理员权限执行命令
  • useradd :创建新用户的命令
  • --no-create-home :不为该用户创建 /home/prometheus 主目录(服务账户通常不需要)
  • --shell /bin/false :将登录 Shell 设为 /bin/false,禁止该用户通过终端登录系统(无交互式 shell)
  • prometheus :创建的用户名

实际效果

创建的是一个系统账户(默认 UID < 1000),专门用于运行 Prometheus 服务进程。这样做的好处是:

  • 安全隔离:服务以低权限用户运行,即使被攻击也不会波及整个系统
  • 无法登录:防止恶意者通过该账户登录系统
  • 无个人数据:不占用 home 目录空间

2. 下载 Prometheus 包

bash 复制代码
cd /opt
curl -LO https://github.com/prometheus/prometheus/releases/latest/download/prometheus-*.linux-amd64.tar.gz
tar -xzf prometheus-*.linux-amd64.tar.gz
mv prometheus-*.linux-amd64 prometheus

3. 创建目录

bash 复制代码
mkdir -p /etc/prometheus /var/lib/prometheus

4. 拷贝二进制文件

bash 复制代码
cp /opt/prometheus/prometheus /usr/local/bin/
cp /opt/prometheus/promtool /usr/local/bin/
chown prometheus:prometheus /usr/local/bin/prometheus
chown prometheus:prometheus /usr/local/bin/promtool

5. 拷贝配置文件

bash 复制代码
cp -r /opt/prometheus/consoles /etc/prometheus
cp -r /opt/prometheus/console_libraries /etc/prometheus

📌 四、配置 Prometheus

创建配置文件:

bash 复制代码
nano /etc/prometheus/prometheus.yml

内容:

yaml 复制代码
global:
  scrape_interval: 5s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

  - job_name: 'mysql'
    static_configs:
      - targets: ['localhost:9104']

📌 五、配置 systemd 服务

bash 复制代码
nano /etc/systemd/system/prometheus.service

内容:

ini 复制代码
[Unit]
Description=Prometheus Monitoring
After=network.target

[Service]
User=prometheus
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

启动:

bash 复制代码
systemctl daemon-reload
systemctl enable --now prometheus
systemctl status prometheus

访问:
http://IP:9090


📌 六、安装 Node Exporter(采集系统指标)

bash 复制代码
cd /opt
curl -LO https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-*.linux-amd64.tar.gz
tar -xzf node_exporter-*.linux-amd64.tar.gz
mv node_exporter-*.linux-amd64 node_exporter
cp node_exporter/node_exporter /usr/local/bin/

Systemd 单元:

bash 复制代码
nano /etc/systemd/system/node_exporter.service
ini 复制代码
[Unit]
Description=Node Exporter

[Service]
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

启动:

bash 复制代码
systemctl daemon-reload
systemctl enable --now node_exporter

访问测试:
http://IP:9100/metrics


📌 七、安装 MySQL Exporter(mysqld_exporter)

下载:

bash 复制代码
cd /opt
curl -LO https://github.com/prometheus/mysqld_exporter/releases/latest/download/mysqld_exporter-*.linux-amd64.tar.gz
tar -xzf mysqld_exporter-*.linux-amd64.tar.gz
mv mysqld_exporter-*.linux-amd64 mysqld_exporter
cp mysqld_exporter/mysqld_exporter /usr/local/bin/

1. 创建 MySQL 授权账号

登录 MySQL:

sql 复制代码
CREATE USER 'exporter'@'localhost' IDENTIFIED BY '123456';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
FLUSH PRIVILEGES;

2. 配置账号文件

bash 复制代码
nano /etc/.mysqld_exporter.cnf

内容:

ini 复制代码
[client]
user=exporter
password=123456

权限:

bash 复制代码
chmod 600 /etc/.mysqld_exporter.cnf

3. systemd 服务

bash 复制代码
nano /etc/systemd/system/mysqld_exporter.service

内容:

ini 复制代码
[Unit]
Description=MySQL Exporter

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

[Install]
WantedBy=multi-user.target

启动:

bash 复制代码
systemctl daemon-reload
systemctl enable --now mysqld_exporter

测试:
http://IP:9104/metrics


📌 八、安装 Grafana(官方仓库)

1. 添加 Grafana 仓库

bash 复制代码
sudo tee /etc/yum.repos.d/grafana.repo <<EOF
[grafana]
name=Grafana OSS
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
EOF

2. 安装 Grafana

bash 复制代码
sudo dnf install grafana -y

3. 启动 Grafana

bash 复制代码
systemctl enable --now grafana-server
systemctl status grafana-server

访问:
http://IP:3000

默认账号:admin / admin


📌 九、Grafana 添加 Prometheus 数据源

进入 Grafana → Configuration → Data Sources → Add data source

选择 Prometheus

URL 填:

复制代码
http://localhost:9090

保存。


📌 十、自带 MySQL + Node 完整仪表盘导入

推荐直接导入官方模板:

类型 Grafana Dashboard ID
Node Exporter 全量监控 1860
MySQL Exporter 监控 7362
Percona MySQL 大盘 7371

导入方式:

Grafana → Dashboard → Import → 输入 ID。


📌 结语

至此,你已经完成:

✔ Prometheus 安装

✔ Node Exporter 安装

✔ MySQL Exporter 安装

✔ Grafana 安装

✔ 监控指标接入

✔ 导入成熟 MySQL 监控大盘

相关推荐
HalvmånEver2 小时前
Linux:基础IO(二)
linux·运维·服务器
sunshine~~~2 小时前
mac Ubuntu 下怎么安装中文语言环境 键盘一直切换不到中文
linux·ubuntu·macos·输入法
学不完的路路路2 小时前
解决把驱动编译进内核未生成uImage、zImage镜像的问题
linux·驱动开发·ubuntu
麒qiqi2 小时前
【Linux 系统编程核心】进程的本质、管理与核心操作
java·linux·服务器
Amrf2 小时前
使用bootlin工具链制作交叉编译器
linux
Amrf2 小时前
在ubuntu 20上面编译fakeroot 1.37
linux·运维·ubuntu
weixin_471525782 小时前
【Win11+Ubuntu双系统安装】
linux·运维·ubuntu
林鸿群2 小时前
Android AOSP 15 源码Ubuntu编译
android·linux·ubuntu·aosp
Strugglingler2 小时前
IP 混叠
linux·网络