Prometheus+Grafana 智能监控告警系统(服务器指标采集、mysql指标采集)
目录
- 一. 概述
- 1.1 Grafana介绍
- 1.2 Grafana结构图
- 二、 Grafana监控系统之Prometheus+Grafana+node_exporter监控系统搭建(centos8为例)
- 2.1 Prometheus介绍
- 2.2 [下载安装prometheus](https://github.com/prometheus/prometheus/releases/)
- 2.2.1 网址下载prometheus
- 2.2.2 上传解压
- 2.2.3创建专用运行用户
- 2.2.4 配置systemd服务
- 2.2.5运行Prometheus server
- 2.2.6验证服务是否正常
- 三、安装node_exporter插件(服务器指标采集)
- 3.1 node_exporter介绍
- 3.2.下载安装node_exporter
- 3.2.1 网址下载node_exporter
- 3.2.2 上传解压
- 3.2.3创建专用运行用户
- 3.2.4 配置systemd服务
- 3.2.5运行node_exporter
- 3.2.6验证服务是否正常
- 3.2.7Prometheus配置监控node_exporter
- 3.2.7.1 配置Prometheus抓取任务
- 3.2.7.2 验证配置并重启Prometheus
- 3.2.7.3 查看监控目标状态
- 四、 安装Grafana(监控可视化工具)
- 4.1 网址下载prometheus
- 4.2 上传解压
- 4.3 安装插件
- 4.4创建专用运行用户
- 4.5 配置systemd服务
- 4.6运行Grafana
- 4.7验证grafana服务是否正常
- 4.8grafana页面改为中文
- 4.8.1登录后,点击头像下菜单中->Profile
- 4.8.2在Preferences一栏下面,找到Language一项
- 4.8.3选择中文(简体)后点 Save 按钮即可
- 五、安装mysqld_exporter插件(mysql指标采集)
- 5.1 mysqld_exporter介绍
- 5.2.下载安装mysqld_exporter
- 5.2.1 上传解压并创建 .my.cnf 文件
- 5.2.2创建专用运行用户
- 5.2.3 配置systemd服务
- 5.2.4运行mysqld_exporter
- 5.2.5验证服务是否正常
- 5.2.6Prometheus配置监控mysqld_exporter
- 5.2.6.1 配置Prometheus抓取任务
- 5.2.6.2 验证配置并重启Prometheus
- 5.2.6.3 查看监控目标状态
- 六、Grafana配置Prometheus数据源
- 6.1 添加数据源
- 6.1.1登录Grafana(http://服务器IP:3000),点击左侧菜单l 连接> 数据源。
- 6.1.2在URL字段填写Prometheus的访问地址(如http://192.168.1.100:9090)
- 6.2 导入仪表盘模板
- 6.2.1仪表板---》新建---》新建仪表板
- 6.2.2导入仪表板-----》服务器监控--》8919
- 6.2.3导入仪表板-----》数据库监控--》7362
一. 概述
1.1 Grafana介绍
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
- 展示方式:
快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式; - 数据源:
Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等; - 通知提醒:
以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知; - 混合展示:
在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源; - 注释:
使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记; - 过滤器:
Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
简单来讲,它是一个多用途的监控工具,同时通过邮件等方式进行有效的预警通知,丰富的直观的可视化界面,多种数据源配置是其优点所在;
1.2 Grafana结构图

二、 Grafana监控系统之Prometheus+Grafana+node_exporter监控系统搭建(centos8为例)
2.1 Prometheus介绍
Prometheus作为一个中间点,而Grafana作为可视化展示,后面的exporter作为监控,exporter将需要获取的数据获取并连接到Prometheus,而Prometheus连接到Grafana,直观展示被监控者状态;
2.2 下载安装prometheus
2.2.1 网址下载prometheus
https://github.com/prometheus/prometheus/releases/
或者浏览器直接访问
https://github.com/prometheus/prometheus/releases/download/v3.7.2/prometheus-3.7.2.linux-amd64.tar.gz

2.2.2 上传解压
ll
tar -zvxf prometheus-3.7.2.linux-amd64.tar.gz

2.2.3创建专用运行用户
# 创建prometheus用户组
groupadd prometheus# 创建prometheus用户(-s指定不允许登录系统,-g指定用户组)
useradd -g prometheus -s /sbin/nologin prometheus# 为Prometheus主目录赋予权限(确保用户有权限访问配置和数据)
chown -R prometheus:prometheus /data/jk/prometheus-3.7.2.linux-amd64

2.2.4 配置systemd服务
# 创建服务配置文件
cat > /etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus Monitoring System
Documentation=https://prometheus.io/docs/
# 确保网络启动后再启动服务
After=network.target
[Service]
Type=simple
# 使用专用用户运行
User=prometheus
# 启动命令:指定配置文件和数据存储路径(默认是./data,建议单独目录便于管理)
ExecStart=/data/jk/prometheus-3.7.2.linux-amd64/prometheus --config.file=/data/jk/prometheus-3.7.2.linux-amd64/prometheus.yml --storage.tsdb.path=/data/jk/prometheus-3.7.2.linux-amd64/data
# 失败自动重启
Restart=on-failure
# 重启间隔5秒
RestartSec=5 [Install]
# 加入多用户目标组,实现开机自启
WantedBy=multi-user.target
EOF

注意:–storage.tsdb.path指定的 /data/jk/prometheus-3.7.2.linux-amd64/data目录需要提前创建并赋予权限:
cd /data/jk/prometheus-3.7.2.linux-amd64
mkdir data
chown -R prometheus:prometheus /data/jk/prometheus-3.7.2.linux-amd64


2.2.5运行Prometheus server
# 重新加载systemd配置
systemctl daemon-reload
# 启动服务
systemctl start prometheus.service
# 设置开机自启
systemctl enable prometheus.service
# 检查服务状态(确保Active: active (running))
systemctl status prometheus.service
ps -ef|grep prometheus

2.2.6验证服务是否正常
访问http://服务器IP:9090(默认端口9090),看到Prometheus的Web界面即安装成功


三、安装node_exporter插件(服务器指标采集)
3.1 node_exporter介绍
node_exporter是Prometheus生态中专门用于采集服务器硬件和系统指标(如CPU、内存、磁盘、网络)的代理程序,需要安装到每台被监控的服务器上(包括Prometheus所在服务器)。
3.2.下载安装node_exporter
3.2.1 网址下载node_exporter
https://github.com/prometheus/node_exporter/releases
或者浏览器访问下载
https://github.com/prometheus/node_exporter/releases/download/v1.10.2/node_exporter-1.10.2.linux-amd64.tar.gz

3.2.2 上传解压
ll
tar -zvxf node_exporter-1.10.2.linux-amd64.tar.gz

3.2.3创建专用运行用户
# 创建prometheus用户组
groupadd node_exporter# 创建prometheus用户(-s指定不允许登录系统,-g指定用户组)
useradd -g node_exporter -s /sbin/nologin node_exporter# 为Prometheus主目录赋予权限(确保用户有权限访问配置和数据)
chown -R node_exporter:node_exporter /data/jk/node_exporter-1.10.2.linux-amd64

3.2.4 配置systemd服务
sudo bash -c 'cat <<EOF > /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target[Service]
Type=simple
User=node_exporter
Group=node_exporter
WorkingDirectory=/data/jk/node_exporter-1.10.2.linux-amd64
ExecStart=/data/jk/node_exporter-1.10.2.linux-amd64/node_exporter
Restart=on-failure
RestartSec=5s
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
EOF'

3.2.5运行node_exporter
sudo systemctl daemon-reload # 重新加载配置
sudo systemctl start node_exporter # 启动服务
sudo systemctl enable node_exporter # 开机自启

3.2.6验证服务是否正常
sudo systemctl status node_exporter # 检查状态
curl http://localhost:9100/metrics # 测试指标采集
3.2.7Prometheus配置监控node_exporter
3.2.7.1 配置Prometheus抓取任务
Prometheus通过prometheus.yml配置需要监控的目标(称为“Job”)。我们需要添加对node_exporter的抓取任务:
vim /data/jk/prometheus-3.7.2.linux-amd64/prometheus.yml
3.2.7.2 验证配置并重启Prometheus
http://ip:9090/targets
systemctl restart prometheus
3.2.7.3 查看监控目标状态
访问Prometheus Web界面(http://服务器IP:9090/targets),在“Status”列应看到UP状态,说明Prometheus已成功抓取node_exporter的指标。

四、 安装Grafana(监控可视化工具)
4.1 网址下载prometheus
https://grafana.com/grafana/download?platform=linux&edition=oss
或者浏览器直接访问
wget https://dl.grafana.com/grafana/release/12.2.1/grafana_12.2.1_18655849634_linux_amd64.tar.gz

4.2 上传解压
ll
tar -zvxf grafana_12.2.1_18655849634_linux_amd64.tar.gz

4.3 安装插件
cd /data/jk/grafana-12.2.1/bin
./grafana-server cli plugins install grafana-piechart-panel --pluginsDir /data/jk/grafana-12.2.1/data/plugins
4.4创建专用运行用户
# 创建prometheus用户组
groupadd grafana# 创建prometheus用户(-s指定不允许登录系统,-g指定用户组)
useradd -g grafana -s /sbin/nologin grafana# 为Prometheus主目录赋予权限(确保用户有权限访问配置和数据)
chown -R grafana:grafana /data/jk/grafana-12.2.1

4.5 配置systemd服务
sudo bash -c 'cat <<EOF > /etc/systemd/system/grafana.service
[Unit]
Description=Grafana Server
After=network.target[Service]
Type=simple
User=grafana
Group=grafana
WorkingDirectory=/data/jk/grafana-12.2.1
ExecStart=/data/jk/grafana-12.2.1/bin/grafana-server web
Restart=on-failure
RestartSec=5s
LimitNOFILE=65536
EnvironmentFile=-/etc/default/grafana-server[Install]
WantedBy=multi-user.target
EOF'

4.6运行Grafana
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 启动 Grafana 服务
sudo systemctl start grafana
# 设置开机自启
sudo systemctl enable grafana

4.7验证grafana服务是否正常
浏览器访问http://服务器IP:3000(默认端口3000),初始用户名/密码为admin/admin(首次登录会提示修改密码)。

4.8grafana页面改为中文
4.8.1登录后,点击头像下菜单中->Profile

4.8.2在Preferences一栏下面,找到Language一项

4.8.3选择中文(简体)后点 Save 按钮即可

五、安装mysqld_exporter插件(mysql指标采集)
5.1 mysqld_exporter介绍
mysqld_exporter 是 Prometheus 官方推荐的 MySQL 监控导出器(Exporter),用于将 MySQL 数据库的性能指标暴露为 Prometheus 可以抓取的 HTTP 接口。
用途:采集 MySQL / MariaDB 的各种运行时指标(如连接数、慢查询、InnoDB 状态、缓冲池使用等),并以标准格式暴露给 Prometheus。
5.2.下载安装mysqld_exporter
https://github.com/prometheus/mysqld_exporter/releases
或者浏览器访问下载
https://github.com/prometheus/mysqld_exporter/releases/download/v0.17.2/mysqld_exporter-0.17.2.linux-amd64.tar.gz

5.2.1 上传解压并创建 .my.cnf 文件
ll
tar -zvxf mysqld_exporter-0.17.2.linux-amd64.tar.gz
cd /data/jk/mysqld_exporter-0.17.2.linux-amd64
vim .my.cnf
cat .my.cnf
[clent]
user=root
password=root


注意事项
配置文件路径:
- 确保 .my.cnf 文件存在于 /data/jk/mysqld_exporter-0.17.2.linux-amd64/
目录中。 .my.cnf 内容示例(需包含MySQL连接信息):
[client]
user=mysqld_exporter
password=z4LaaAA11--pa44w0rdhost=127.0.0.1
port=3306
权限控制:确保 .my.cnf 仅对 mysqld_exporter 用户可读:
chmod 600 /data/jk/mysqld_exporter-0.17.2.linux-amd64/.my.cnf
- mysqld_exporter 默认连接 localhost:3306
- 如果你要监控远程 MySQL 或非标准端口,可以通过 命令行参数指定地址,而不是写在 .my.cnf 中
数据库创建连用户
CREATE USER 'mysqld_exporter'@'127.0.0.1' IDENTIFIED BY 'z4LaaAA11--pa44w0rd';GRANT ALL PRIVILEGES ON *.* TO 'mysqld_exporter'@'127.0.0.1' WITH GRANT OPTION;FLUSH PRIVILEGES;
5.2.2创建专用运行用户
# 创建prometheus用户组
groupadd mysqld_exporter# 创建prometheus用户(-s指定不允许登录系统,-g指定用户组)
useradd -g mysqld_exporter -s /sbin/nologin mysqld_exporter# 为Prometheus主目录赋予权限(确保用户有权限访问配置和数据)
chown -R mysqld_exporter:mysqld_exporter /data/jk/mysqld_exporter-0.17.2.linux-amd64

5.2.3 配置systemd服务
sudo bash -c 'cat <<EOF > /etc/systemd/system/mysqld_exporter.service
[Unit]
Description=MySQLd Exporter
After=network.target[Service]
Type=simple
User=mysqld_exporter
Group=mysqld_exporter
WorkingDirectory=/data/jk/mysqld_exporter-0.17.2.linux-amd64
ExecStart=/data/jk/mysqld_exporter-0.17.2.linux-amd64/mysqld_exporter \\--config.my-cnf=/data/jk/mysqld_exporter-0.17.2.linux-amd64/.my.cnf
Restart=on-failure
RestartSec=5s
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF'

5.2.4运行mysqld_exporter
sudo systemctl daemon-reload # 重新加载配置
sudo systemctl start mysqld_exporter # 启动服务
sudo systemctl enable mysqld_exporter # 开机自启

5.2.5验证服务是否正常
sudo systemctl status mysqld_exporter # 检查状态
curl http://localhost:9104/metrics # 测试指标采集(默认端口9104)

5.2.6Prometheus配置监控mysqld_exporter
5.2.6.1 配置Prometheus抓取任务
Prometheus通过prometheus.yml配置需要监控的目标(称为“Job”)。我们需要添加对mysqld_exporter 的抓取任务:
vim /data/jk/prometheus-3.7.2.linux-amd64/prometheus.yml
5.2.6.2 验证配置并重启Prometheus
http://ip:9090/targets
systemctl restart prometheus
5.2.6.3 查看监控目标状态
访问Prometheus Web界面(http://服务器IP:9090/targets),在“Status”列应看到UP状态,说明Prometheus已成功抓取mysqld_exporter 的指标。

六、Grafana配置Prometheus数据源
6.1 添加数据源
6.1.1登录Grafana(http://服务器IP:3000),点击左侧菜单l 连接> 数据源。

6.1.2在URL字段填写Prometheus的访问地址(如http://192.168.1.100:9090)



6.2 导入仪表盘模板
6.2.1仪表板—》新建—》新建仪表板

6.2.2导入仪表板-----》服务器监控–》8919





6.2.3导入仪表板-----》数据库监控–》7362




