grafana-prometheus-mysql部署

准备

准备镜像

1
2
3
docker pull grafana/grafana:10.4.1
docker pull prom/prometheus:v2.52.0
docker pull mysql:8.0.43

准备prometheus.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
global:
scrape_interval: 15s # 默认每 15 秒抓取一次数据
evaluation_interval: 15s # 默认每 15 秒计算一次规则

# Alertmanager 配置(默认注释掉)
# alerting:
# alertmanagers:
# - static_configs:
# - targets:
# # - alertmanager:9093

# 加载规则文件(默认没有)
# rule_files:
# - "first_rules.yml"
# - "second_rules.yml"

scrape_configs:
# Prometheus 自己也当成一个监控目标
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']

docker-compose部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
version: "3.8"

services:
mysql:
image: mysql:8.0.43
container_name: grafana-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: grafana
MYSQL_USER: grafana
MYSQL_PASSWORD: grafana_pass
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql

prometheus:
image: prom/prometheus:v2.52.0
container_name: prometheus
restart: unless-stopped
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml

grafana:
image: grafana/grafana:10.4.1
container_name: grafana
restart: unless-stopped
ports:
- "3000:3000"
environment:
- GF_DATABASE_TYPE=mysql
- GF_DATABASE_HOST=mysql:3306
- GF_DATABASE_NAME=grafana
- GF_DATABASE_USER=grafana
- GF_DATABASE_PASSWORD=grafana_pass
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
depends_on:
- mysql
- prometheus

volumes:
mysql-data:

image-20250916173019539

检查

检查 grafana、prometheus服务

1
2
http://192.168.72.128:3000
http://192.168.72.128:9090

image-20250916173052139

image-20250916173121496

检查数据库连接是否成功,初始化是否成功,库存在说明正常。

image-20250916173226211

案例学习

1. node_exporter

​ 充当 主机监控 Agent 的角色。运行在 Linux 主机上,负责收集操作系统和硬件层面的性能指标。默认通过 HTTP :9100/metrics 暴露数据,Prometheus 会定期抓取这些指标。

1.1 部署node_exporter

1
2
3
4
5
6
7
8
9
# 下载 node_exporter 最新版
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz

# 解压
tar -xvf node_exporter-1.8.2.linux-amd64.tar.gz
cd node_exporter-1.8.2.linux-amd64

# 启动
./node_exporter &

image-20250917095802522

1.2 prometheus连接

​ 编辑Prometheus 配置文件 prometheus.yml,增加一个 scrape job

1
2
3
4
scrape_configs:
- job_name: 'node_exporter'
static_configs:
- targets: ['192.168.72.128:9100']

最后的配置文件:

1
2
3
4
5
6
7
global:
scrape_interval: 15s

scrape_configs:
- job_name: 'node_exporter'
static_configs:
- targets: ['192.168.72.128:9100']

重启后检查Prometheus,node_exporter添加成功

image-20250917100329818

数据获取正常

image-20250916172302767

1.3 grafana创建可视化模版

​ 在 Grafana 添加 Prometheus 数据源:

  1. 打开 Grafana → ConfigurationData Sources → 添加 Prometheus。
  2. URL 填写 http://<Prometheus服务器IP>:9090
  3. 导入官方的 Node Exporter Dashboard(ID: 1860
    • 在 Grafana → DashboardImport → 输入 1860 → 选择数据源。

就能得到一个漂亮的主机监控大盘:

image-20250916172251985